31
32 #
33 # Adjunct root, containing an additional proto area to be used for headers
34 # and libraries.
35 #
36 ADJUNCT_PROTO=
37
38 #
39 # Adjunct for building things that run on the build machine.
40 #
41 NATIVE_ADJUNCT= /usr
42
43 #
44 # RELEASE_BUILD should be cleared for final release builds.
45 # NOT_RELEASE_BUILD is exactly what the name implies.
46 #
47 # INTERNAL_RELEASE_BUILD is a subset of RELEASE_BUILD. It mostly controls
48 # identification strings. Enabling RELEASE_BUILD automatically enables
49 # INTERNAL_RELEASE_BUILD.
50 #
51 # CLOSED_BUILD controls whether we try to build files under
52 # usr/closed. ("" means to build closed code, "#" means don't try to
53 # build it.) Skipping the closed code implies doing an export release
54 # build.
55 #
56 # STRIP_COMMENTS toggles comment section striping. Generally the same setting
57 # as INTERNAL_RELEASE_BUILD.
58 #
59 # __GNUC toggles the building of ON components using gcc and related tools.
60 # Normally set to `#', set it to `' to do gcc build.
61 #
62 # The declaration POUND_SIGN is always '#'. This is needed to get around the
63 # make feature that '#' is always a comment delimiter, even when escaped or
64 # quoted. We use this macro expansion method to get POUND_SIGN rather than
65 # always breaking out a shell because the general case can cause a noticable
66 # slowdown in build times when so many Makefiles include Makefile.master.
67 #
68 # While the majority of users are expected to override the setting below
69 # with an env file (via nightly or bldenv), if you aren't building that way
70 # (ie, you're using "ws" or some other bootstrapping method) then you need
71 # this definition in order to avoid the subshell invocation mentioned above.
72 #
73
74 PRE_POUND= pre\#
75 POUND_SIGN= $(PRE_POUND:pre\%=%)
76
77 NOT_RELEASE_BUILD=
78 INTERNAL_RELEASE_BUILD= $(POUND_SIGN)
79 RELEASE_BUILD= $(POUND_SIGN)
80 $(RELEASE_BUILD)NOT_RELEASE_BUILD= $(POUND_SIGN)
81 $(RELEASE_BUILD)INTERNAL_RELEASE_BUILD=
82 PATCH_BUILD= $(POUND_SIGN)
83
84 # If CLOSED_IS_PRESENT is not set, assume the closed tree is present.
85 CLOSED_BUILD_1= $(CLOSED_IS_PRESENT:yes=)
86 CLOSED_BUILD= $(CLOSED_BUILD_1:no=$(POUND_SIGN))
87
88 # SPARC_BLD is '#' for an Intel build.
89 # INTEL_BLD is '#' for a Sparc build.
90 SPARC_BLD_1= $(MACH:i386=$(POUND_SIGN))
91 SPARC_BLD= $(SPARC_BLD_1:sparc=)
92 INTEL_BLD_1= $(MACH:sparc=$(POUND_SIGN))
93 INTEL_BLD= $(INTEL_BLD_1:i386=)
94
95 STRIP_COMMENTS= $(INTERNAL_RELEASE_BUILD)
96
97 # Are we building tonic closedbins? Unless you have used the
98 # -O flag to nightly or bldenv, leave the definition of TONICBUILD
99 # as $(POUND_SIGN).
100 #
101 # IF YOU CHANGE CLOSEDROOT, you MUST change install.bin
102 # to match the new definition.
103 TONICBUILD= $(POUND_SIGN)
104 $(TONICBUILD)CLOSEDROOT= $(ROOT)-closed
105
106
107 # The variables below control the compilers used during the build.
108 # There are a number of permutations.
109 #
110 # __GNUC and __SUNC control (and indicate) the primary compiler. Whichever
111 # one is not POUND_SIGN is the primary, with the other as the shadow. They
112 # may also be used to control entirely compiler-specific Makefile assignments.
113 # __SUNC and Sun Studio are the default.
114 #
115 # __GNUC64 indicates that the 64bit build should use the GNU C compiler.
116 # There is no Sun C analogue.
117 #
118 # The following version-specific options are operative regardless of which
119 # compiler is primary, and control the versions of the given compilers to be
120 # used. They also allow compiler-version specific Makefile fragments.
121 #
122
123 __GNUC= $(POUND_SIGN)
124 $(__GNUC)__SUNC= $(POUND_SIGN)
125 __GNUC64= $(__GNUC)
126
230 JSTYLE= $(ONBLD_TOOLS)/bin/jstyle
231
232 DOT_H_CHECK= \
233 @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL); \
234 $(HDRCHK) $< $(HDRCHK_TAIL)
235
236 DOT_X_CHECK= \
237 @$(ECHO) "checking $<"; $(RPCGEN) -C -h $< | $(CSTYLE) $(CSTYLE_TAIL); \
238 $(RPCGEN) -C -h $< | $(HDRCHK) $< $(HDRCHK_TAIL)
239
240 DOT_C_CHECK= \
241 @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL)
242
243 MANIFEST_CHECK= \
244 @$(ECHO) "checking $<"; \
245 SVCCFG_DTD=$(SRC)/cmd/svc/dtd/service_bundle.dtd.1 \
246 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
247 SVCCFG_CONFIGD_PATH=$(SRC)/cmd/svc/configd/svc.configd-native \
248 $(SRC)/cmd/svc/svccfg/svccfg-native validate $<
249
250 #
251 # IMPORTANT:: If you change any of INS.file, INS.dir, INS.rename,
252 # INS.link or INS.symlink here, then you must also change the
253 # corresponding override definitions in $CLOSED/Makefile.tonic.
254 # If you do not do this, then the closedbins build for the OpenSolaris
255 # community will break. PS, the gatekeepers will be upset too.
256 INS.file= $(RM) $@; $(INS) -s -m $(FILEMODE) -f $(@D) $<
257 INS.dir= $(INS) -s -d -m $(DIRMODE) $@
258 # installs and renames at once
259 #
260 INS.rename= $(INS.file); $(MV) $(@D)/$(<F) $@
261
262 # install a link
263 INSLINKTARGET= $<
264 INS.link= $(RM) $@; $(LN) $(INSLINKTARGET) $@
265 INS.symlink= $(RM) $@; $(SYMLINK) $(INSLINKTARGET) $@
266
267 #
268 # Python bakes the mtime of the .py file into the compiled .pyc and
269 # rebuilds if the baked-in mtime != the mtime of the source file
270 # (rather than only if it's less than), thus when installing python
271 # files we must make certain to not adjust the mtime of the source
272 # (.py) file.
273 #
274 INS.pyfile= $(INS.file); $(TOUCH) -r $< $@
275
|
31
32 #
33 # Adjunct root, containing an additional proto area to be used for headers
34 # and libraries.
35 #
36 ADJUNCT_PROTO=
37
38 #
39 # Adjunct for building things that run on the build machine.
40 #
41 NATIVE_ADJUNCT= /usr
42
43 #
44 # RELEASE_BUILD should be cleared for final release builds.
45 # NOT_RELEASE_BUILD is exactly what the name implies.
46 #
47 # INTERNAL_RELEASE_BUILD is a subset of RELEASE_BUILD. It mostly controls
48 # identification strings. Enabling RELEASE_BUILD automatically enables
49 # INTERNAL_RELEASE_BUILD.
50 #
51 # STRIP_COMMENTS toggles comment section striping. Generally the same setting
52 # as INTERNAL_RELEASE_BUILD.
53 #
54 # __GNUC toggles the building of ON components using gcc and related tools.
55 # Normally set to `#', set it to `' to do gcc build.
56 #
57 # The declaration POUND_SIGN is always '#'. This is needed to get around the
58 # make feature that '#' is always a comment delimiter, even when escaped or
59 # quoted. We use this macro expansion method to get POUND_SIGN rather than
60 # always breaking out a shell because the general case can cause a noticable
61 # slowdown in build times when so many Makefiles include Makefile.master.
62 #
63 # While the majority of users are expected to override the setting below
64 # with an env file (via nightly or bldenv), if you aren't building that way
65 # (ie, you're using "ws" or some other bootstrapping method) then you need
66 # this definition in order to avoid the subshell invocation mentioned above.
67 #
68
69 PRE_POUND= pre\#
70 POUND_SIGN= $(PRE_POUND:pre\%=%)
71
72 NOT_RELEASE_BUILD=
73 INTERNAL_RELEASE_BUILD= $(POUND_SIGN)
74 RELEASE_BUILD= $(POUND_SIGN)
75 $(RELEASE_BUILD)NOT_RELEASE_BUILD= $(POUND_SIGN)
76 $(RELEASE_BUILD)INTERNAL_RELEASE_BUILD=
77 PATCH_BUILD= $(POUND_SIGN)
78
79 # SPARC_BLD is '#' for an Intel build.
80 # INTEL_BLD is '#' for a Sparc build.
81 SPARC_BLD_1= $(MACH:i386=$(POUND_SIGN))
82 SPARC_BLD= $(SPARC_BLD_1:sparc=)
83 INTEL_BLD_1= $(MACH:sparc=$(POUND_SIGN))
84 INTEL_BLD= $(INTEL_BLD_1:i386=)
85
86 STRIP_COMMENTS= $(INTERNAL_RELEASE_BUILD)
87
88 # The variables below control the compilers used during the build.
89 # There are a number of permutations.
90 #
91 # __GNUC and __SUNC control (and indicate) the primary compiler. Whichever
92 # one is not POUND_SIGN is the primary, with the other as the shadow. They
93 # may also be used to control entirely compiler-specific Makefile assignments.
94 # __SUNC and Sun Studio are the default.
95 #
96 # __GNUC64 indicates that the 64bit build should use the GNU C compiler.
97 # There is no Sun C analogue.
98 #
99 # The following version-specific options are operative regardless of which
100 # compiler is primary, and control the versions of the given compilers to be
101 # used. They also allow compiler-version specific Makefile fragments.
102 #
103
104 __GNUC= $(POUND_SIGN)
105 $(__GNUC)__SUNC= $(POUND_SIGN)
106 __GNUC64= $(__GNUC)
107
211 JSTYLE= $(ONBLD_TOOLS)/bin/jstyle
212
213 DOT_H_CHECK= \
214 @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL); \
215 $(HDRCHK) $< $(HDRCHK_TAIL)
216
217 DOT_X_CHECK= \
218 @$(ECHO) "checking $<"; $(RPCGEN) -C -h $< | $(CSTYLE) $(CSTYLE_TAIL); \
219 $(RPCGEN) -C -h $< | $(HDRCHK) $< $(HDRCHK_TAIL)
220
221 DOT_C_CHECK= \
222 @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL)
223
224 MANIFEST_CHECK= \
225 @$(ECHO) "checking $<"; \
226 SVCCFG_DTD=$(SRC)/cmd/svc/dtd/service_bundle.dtd.1 \
227 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
228 SVCCFG_CONFIGD_PATH=$(SRC)/cmd/svc/configd/svc.configd-native \
229 $(SRC)/cmd/svc/svccfg/svccfg-native validate $<
230
231 INS.file= $(RM) $@; $(INS) -s -m $(FILEMODE) -f $(@D) $<
232 INS.dir= $(INS) -s -d -m $(DIRMODE) $@
233 # installs and renames at once
234 #
235 INS.rename= $(INS.file); $(MV) $(@D)/$(<F) $@
236
237 # install a link
238 INSLINKTARGET= $<
239 INS.link= $(RM) $@; $(LN) $(INSLINKTARGET) $@
240 INS.symlink= $(RM) $@; $(SYMLINK) $(INSLINKTARGET) $@
241
242 #
243 # Python bakes the mtime of the .py file into the compiled .pyc and
244 # rebuilds if the baked-in mtime != the mtime of the source file
245 # (rather than only if it's less than), thus when installing python
246 # files we must make certain to not adjust the mtime of the source
247 # (.py) file.
248 #
249 INS.pyfile= $(INS.file); $(TOUCH) -r $< $@
250
|