20 #
21
22 #
23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright (c) 2012 by Delphix. All rights reserved.
25 #
26
27 #
28 # Makefile.master, global definitions for system source
29 #
30 ROOT= /proto
31
32 #
33 # RELEASE_BUILD should be cleared for final release builds.
34 # NOT_RELEASE_BUILD is exactly what the name implies.
35 #
36 # INTERNAL_RELEASE_BUILD is a subset of RELEASE_BUILD. It mostly controls
37 # identification strings. Enabling RELEASE_BUILD automatically enables
38 # INTERNAL_RELEASE_BUILD.
39 #
40 # EXPORT_RELEASE_BUILD controls whether binaries are built in a form that
41 # can be released for export under a binary license. It is orthogonal to
42 # the other *RELEASE_BUILD settings. ("#" means do an export release
43 # build, "" means do a normal build.)
44 #
45 # CLOSED_BUILD controls whether we try to build files under
46 # usr/closed. ("" means to build closed code, "#" means don't try to
47 # build it.) Skipping the closed code implies doing an export release
48 # build.
49 #
50 # STRIP_COMMENTS toggles comment section striping. Generally the same setting
51 # as INTERNAL_RELEASE_BUILD.
52 #
53 # __GNUC toggles the building of ON components using gcc and related tools.
54 # Normally set to `#', set it to `' to do gcc build.
55 #
56 # The declaration POUND_SIGN is always '#'. This is needed to get around the
57 # make feature that '#' is always a comment delimiter, even when escaped or
58 # quoted. We use this macro expansion method to get POUND_SIGN rather than
59 # always breaking out a shell because the general case can cause a noticable
60 # slowdown in build times when so many Makefiles include Makefile.master.
61 #
62 # While the majority of users are expected to override the setting below
63 # with an env file (via nightly or bldenv), if you aren't building that way
64 # (ie, you're using "ws" or some other bootstrapping method) then you need
65 # this definition in order to avoid the subshell invocation mentioned above.
66 #
67
68 PRE_POUND= pre\#
69 POUND_SIGN= $(PRE_POUND:pre\%=%)
70
71 NOT_RELEASE_BUILD=
72 INTERNAL_RELEASE_BUILD= $(POUND_SIGN)
73 RELEASE_BUILD= $(POUND_SIGN)
74 $(RELEASE_BUILD)NOT_RELEASE_BUILD= $(POUND_SIGN)
75 $(RELEASE_BUILD)INTERNAL_RELEASE_BUILD=
76 PATCH_BUILD= $(POUND_SIGN)
77
78 # If CLOSED_IS_PRESENT is not set, assume the closed tree is present.
79 CLOSED_BUILD_1= $(CLOSED_IS_PRESENT:yes=)
80 CLOSED_BUILD= $(CLOSED_BUILD_1:no=$(POUND_SIGN))
81
82 EXPORT_RELEASE_BUILD= $(POUND_SIGN)
83 $(CLOSED_BUILD)EXPORT_RELEASE_BUILD=
84
85 # SPARC_BLD is '#' for an Intel build.
86 # INTEL_BLD is '#' for a Sparc build.
87 SPARC_BLD_1= $(MACH:i386=$(POUND_SIGN))
88 SPARC_BLD= $(SPARC_BLD_1:sparc=)
89 INTEL_BLD_1= $(MACH:sparc=$(POUND_SIGN))
90 INTEL_BLD= $(INTEL_BLD_1:i386=)
91
92 STRIP_COMMENTS= $(INTERNAL_RELEASE_BUILD)
93
94 # Are we building tonic closedbins? Unless you have used the
95 # -O flag to nightly or bldenv, leave the definition of TONICBUILD
96 # as $(POUND_SIGN).
97 #
98 # IF YOU CHANGE CLOSEDROOT, you MUST change install.bin
99 # to match the new definition.
100 TONICBUILD= $(POUND_SIGN)
101 $(TONICBUILD)CLOSEDROOT= $(ROOT)-closed
102
103
104 # The variables below control the compilers used during the build.
882
883 AS_PICFLAGS= $(C_PICFLAGS)
884 AS_BIGPICFLAGS= $(C_BIGPICFLAGS)
885
886 #
887 # Default label for CTF sections
888 #
889 CTFCVTFLAGS= -i -L VERSION
890
891 #
892 # Override to pass module-specific flags to ctfmerge. Currently used
893 # only by krtld to turn on fuzzy matching.
894 #
895 CTFMRGFLAGS=
896
897 CTFCONVERT_O = $(CTFCONVERT) $(CTFCVTFLAGS) $@
898
899 ELFSIGN_O= $(TRUE)
900 ELFSIGN_CRYPTO= $(ELFSIGN_O)
901 ELFSIGN_OBJECT= $(ELFSIGN_O)
902 $(EXPORT_RELEASE_BUILD)ELFSIGN_O = $(ELFSIGN)
903 $(EXPORT_RELEASE_BUILD)ELFSIGN_CFNAME = SUNWosnetCF
904 $(EXPORT_RELEASE_BUILD)ELFSIGN_KEY = \
905 $(CLOSED)/cmd/cmd-crypto/etc/keys/$(ELFSIGN_CFNAME)
906 $(EXPORT_RELEASE_BUILD)ELFSIGN_CERT= \
907 $(CLOSED)/cmd/cmd-crypto/etc/certs/$(ELFSIGN_CFNAME)
908 $(EXPORT_RELEASE_BUILD)ELFSIGN_SENAME = SUNWosnetSE
909 $(EXPORT_RELEASE_BUILD)ELFSIGN_SEKEY = \
910 $(CLOSED)/cmd/cmd-crypto/etc/keys/$(ELFSIGN_SENAME)
911 $(EXPORT_RELEASE_BUILD)ELFSIGN_SECERT= \
912 $(CLOSED)/cmd/cmd-crypto/etc/certs/$(ELFSIGN_SENAME)
913 $(EXPORT_RELEASE_BUILD)ELFSIGN_CRYPTO= $(ELFSIGN_O) sign \
914 $(ELFSIGN_FORMAT_OPTION) \
915 -k $(ELFSIGN_KEY) -c $(ELFSIGN_CERT) -e $@
916 $(EXPORT_RELEASE_BUILD)ELFSIGN_OBJECT= $(ELFSIGN_O) sign \
917 $(ELFSIGN_FORMAT_OPTION) \
918 -k $(ELFSIGN_SEKEY) -c $(ELFSIGN_SECERT) -e $@
919
920 # Rules (normally from make.rules) and macros which are used for post
921 # processing files. Normally, these do stripping of the comment section
922 # automatically.
923 # RELEASE_CM: Should be editted to reflect the release.
924 # POST_PROCESS_O: Post-processing for `.o' files.
925 # POST_PROCESS_A: Post-processing for `.a' files (currently null).
926 # POST_PROCESS_SO: Post-processing for `.so' files.
927 # POST_PROCESS: Post-processing for executable files (no suffix).
928 # Note that these macros are not completely generalized as they are to be
929 # used with the file name to be processed following.
930 #
931 # It is left as an exercise to Release Engineering to embellish the generation
932 # of the release comment string.
933 #
934 # If this is a standard development build:
935 # compress the comment section (mcs -c)
936 # add the standard comment (mcs -a $(RELEASE_CM))
937 # add the development specific comment (mcs -a $(DEV_CM))
938 #
|
20 #
21
22 #
23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright (c) 2012 by Delphix. All rights reserved.
25 #
26
27 #
28 # Makefile.master, global definitions for system source
29 #
30 ROOT= /proto
31
32 #
33 # RELEASE_BUILD should be cleared for final release builds.
34 # NOT_RELEASE_BUILD is exactly what the name implies.
35 #
36 # INTERNAL_RELEASE_BUILD is a subset of RELEASE_BUILD. It mostly controls
37 # identification strings. Enabling RELEASE_BUILD automatically enables
38 # INTERNAL_RELEASE_BUILD.
39 #
40 # CLOSED_BUILD controls whether we try to build files under
41 # usr/closed. ("" means to build closed code, "#" means don't try to
42 # build it.) Skipping the closed code implies doing an export release
43 # build.
44 #
45 # STRIP_COMMENTS toggles comment section striping. Generally the same setting
46 # as INTERNAL_RELEASE_BUILD.
47 #
48 # __GNUC toggles the building of ON components using gcc and related tools.
49 # Normally set to `#', set it to `' to do gcc build.
50 #
51 # The declaration POUND_SIGN is always '#'. This is needed to get around the
52 # make feature that '#' is always a comment delimiter, even when escaped or
53 # quoted. We use this macro expansion method to get POUND_SIGN rather than
54 # always breaking out a shell because the general case can cause a noticable
55 # slowdown in build times when so many Makefiles include Makefile.master.
56 #
57 # While the majority of users are expected to override the setting below
58 # with an env file (via nightly or bldenv), if you aren't building that way
59 # (ie, you're using "ws" or some other bootstrapping method) then you need
60 # this definition in order to avoid the subshell invocation mentioned above.
61 #
62
63 PRE_POUND= pre\#
64 POUND_SIGN= $(PRE_POUND:pre\%=%)
65
66 NOT_RELEASE_BUILD=
67 INTERNAL_RELEASE_BUILD= $(POUND_SIGN)
68 RELEASE_BUILD= $(POUND_SIGN)
69 $(RELEASE_BUILD)NOT_RELEASE_BUILD= $(POUND_SIGN)
70 $(RELEASE_BUILD)INTERNAL_RELEASE_BUILD=
71 PATCH_BUILD= $(POUND_SIGN)
72
73 # If CLOSED_IS_PRESENT is not set, assume the closed tree is present.
74 CLOSED_BUILD_1= $(CLOSED_IS_PRESENT:yes=)
75 CLOSED_BUILD= $(CLOSED_BUILD_1:no=$(POUND_SIGN))
76
77 # SPARC_BLD is '#' for an Intel build.
78 # INTEL_BLD is '#' for a Sparc build.
79 SPARC_BLD_1= $(MACH:i386=$(POUND_SIGN))
80 SPARC_BLD= $(SPARC_BLD_1:sparc=)
81 INTEL_BLD_1= $(MACH:sparc=$(POUND_SIGN))
82 INTEL_BLD= $(INTEL_BLD_1:i386=)
83
84 STRIP_COMMENTS= $(INTERNAL_RELEASE_BUILD)
85
86 # Are we building tonic closedbins? Unless you have used the
87 # -O flag to nightly or bldenv, leave the definition of TONICBUILD
88 # as $(POUND_SIGN).
89 #
90 # IF YOU CHANGE CLOSEDROOT, you MUST change install.bin
91 # to match the new definition.
92 TONICBUILD= $(POUND_SIGN)
93 $(TONICBUILD)CLOSEDROOT= $(ROOT)-closed
94
95
96 # The variables below control the compilers used during the build.
874
875 AS_PICFLAGS= $(C_PICFLAGS)
876 AS_BIGPICFLAGS= $(C_BIGPICFLAGS)
877
878 #
879 # Default label for CTF sections
880 #
881 CTFCVTFLAGS= -i -L VERSION
882
883 #
884 # Override to pass module-specific flags to ctfmerge. Currently used
885 # only by krtld to turn on fuzzy matching.
886 #
887 CTFMRGFLAGS=
888
889 CTFCONVERT_O = $(CTFCONVERT) $(CTFCVTFLAGS) $@
890
891 ELFSIGN_O= $(TRUE)
892 ELFSIGN_CRYPTO= $(ELFSIGN_O)
893 ELFSIGN_OBJECT= $(ELFSIGN_O)
894
895 # Rules (normally from make.rules) and macros which are used for post
896 # processing files. Normally, these do stripping of the comment section
897 # automatically.
898 # RELEASE_CM: Should be editted to reflect the release.
899 # POST_PROCESS_O: Post-processing for `.o' files.
900 # POST_PROCESS_A: Post-processing for `.a' files (currently null).
901 # POST_PROCESS_SO: Post-processing for `.so' files.
902 # POST_PROCESS: Post-processing for executable files (no suffix).
903 # Note that these macros are not completely generalized as they are to be
904 # used with the file name to be processed following.
905 #
906 # It is left as an exercise to Release Engineering to embellish the generation
907 # of the release comment string.
908 #
909 # If this is a standard development build:
910 # compress the comment section (mcs -c)
911 # add the standard comment (mcs -a $(RELEASE_CM))
912 # add the development specific comment (mcs -a $(DEV_CM))
913 #
|