5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
25 #
26
27 include $(SRC)/Makefile.master
28 include $(SRC)/Makefile.buildnum
29
30 #
31 # Make sure we're getting a consistent execution environment for the
32 # embedded scripts.
33 #
34 SHELL= /usr/bin/ksh93
35
36 #
37 # To suppress package dependency generation on any system, regardless
38 # of how it was installed, set SUPPRESSPKGDEP=true in the build
39 # environment.
40 #
41 SUPPRESSPKGDEP= false
42
43 #
44 # Comment this line out or set "PKGDEBUG=" in your build environment
193 'ISALIST=sparcv9' \
194 'ISALIST=sparc'
195 PKGDEP_TOKENS= $(PKGDEP_TOKENS_$(PKGMACH))
196
197 #
198 # The package lists are generated with $(PKGDEP_TYPE) as their
199 # dependency types, so that they can be included by either an
200 # incorporation or a group package.
201 #
202 $(PDIR)/osnet-redist.mog := PKGDEP_TYPE= require
203 $(PDIR)/osnet-incorporation.mog:= PKGDEP_TYPE= incorporate
204
205 PKGDEP_INCORP= \
206 depend fmri=consolidation/osnet/osnet-incorporation type=require
207
208 #
209 # All packaging build products should go into $(PDIR), so they don't
210 # need to be included separately in CLOBBERFILES.
211 #
212 CLOBBERFILES= $(PDIR) proto_list_$(PKGMACH) install-$(PKGMACH).out \
213 license-list
214
215 #
216 # By default, PKGS will list all manifests. To build and/or publish a
217 # subset of packages, override this on the command line or in the
218 # build environment and then reference (implicitly or explicitly) the all
219 # or install targets. Using ls -1 (that's a one) or print or echo to
220 # get the list of manifests is a little hackish, but avoids having a
221 # 900+ line file to explicitly list them all.
222 #
223 # We want some manifests to optionally built based on environment
224 # options, so those are excluded and optionally added back in.
225 # We also want a relatively easy way to add files to the list of
226 # manifests given special treatment. Add any other special ones
227 # to the SPECIAL_MANIFESTS vaiable. It can contain wildcards in
228 # regexp form, i.e. SUNW.* as one useful example.
229 #
230 SPECIAL_MANIFESTS = print-lp-ipp-ipp-listener.mf
231 LIST_MANIFESTS_CMD = (cd manifests ; /usr/bin/ls -1 *.mf |\
232 $(SED) $(SPECIAL_MANIFESTS:%=-e '/^%$$/d') )
233 MANIFESTS = $(LIST_MANIFESTS_CMD:sh)
234
235 # Conditionally add back lp-ipp
236 $(ENABLE_IPP_PRINTING) MANIFESTS += print-lp-ipp-ipp-listener.mf
237
238 PKGS= $(MANIFESTS:%.mf=%)
239 DEP_PKGS= $(PKGS:%=$(PDIR)/%.dep)
240 PROC_PKGS= $(PKGS:%=$(PDIR)/%.mog)
241
242 #
243 # Track the synthetic manifests separately so we can properly express
244 # build rules and dependencies. The synthetic and real packages use
245 # different sets of transforms and macros for pkgmogrify.
246 #
247 SYNTH_PKGS= osnet-incorporation osnet-redist
248 DEP_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.dep)
249 PROC_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.mog)
250
251 #
252 # Root of pkg image to use for dependency resolution
253 # Normally / on the machine used to build the binaries
254 #
255 PKGDEP_RESOLVE_IMAGE = /
256
257 #
348 #
349 # repository metadata (catalogs and search indices)
350 # |
351 # | pkgrepo refresh
352 # |
353 # published packages
354 # | |
355 # | | pkgsend publish
356 # | |
357 # repositories resolved dependencies
358 # | |
359 # pkgsend | | pkgdepend resolve
360 # create-repository |
361 # | generated dependencies
362 # repo directories |
363 # | pkgdepend
364 # |
365 # processed manifests
366 #
367
368 ALL_TARGETS= $(PROC_SYNTH_PKGS) proto_list_$(PKGMACH)
369
370 all: $(ALL_TARGETS)
371
372 #
373 # This will build the directory to contain the processed manifests
374 # and the metadata symlinks.
375 #
376 $(PDIR):
377 @print "Creating $(@)"
378 $(PKGDEBUG)$(INS.dir)
379
380 #
381 # This rule resolves dependencies across all published manifests.
382 #
383 # We shouldn't have to ignore the error from pkgdepend, but until
384 # 16012 and its dependencies are resolved, pkgdepend will always exit
385 # with an error.
386 #
387 $(PDIR)/gendeps: $(DEP_SYNTH_PKGS) $(DEP_PKGS)
388 -$(PKGDEBUG)if [ "$(SUPPRESSPKGDEP)" = "true" ]; then \
389 print "Suppressing dependency resolution"; \
390 for p in $(DEP_PKGS:%.dep=%); do \
391 $(CP) $$p.dep $$p.res; \
392 done; \
|
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
25 # Copyright 2016 Gary Mills
26 #
27
28 include $(SRC)/Makefile.master
29 include $(SRC)/Makefile.buildnum
30
31 #
32 # Make sure we're getting a consistent execution environment for the
33 # embedded scripts.
34 #
35 SHELL= /usr/bin/ksh93
36
37 #
38 # To suppress package dependency generation on any system, regardless
39 # of how it was installed, set SUPPRESSPKGDEP=true in the build
40 # environment.
41 #
42 SUPPRESSPKGDEP= false
43
44 #
45 # Comment this line out or set "PKGDEBUG=" in your build environment
194 'ISALIST=sparcv9' \
195 'ISALIST=sparc'
196 PKGDEP_TOKENS= $(PKGDEP_TOKENS_$(PKGMACH))
197
198 #
199 # The package lists are generated with $(PKGDEP_TYPE) as their
200 # dependency types, so that they can be included by either an
201 # incorporation or a group package.
202 #
203 $(PDIR)/osnet-redist.mog := PKGDEP_TYPE= require
204 $(PDIR)/osnet-incorporation.mog:= PKGDEP_TYPE= incorporate
205
206 PKGDEP_INCORP= \
207 depend fmri=consolidation/osnet/osnet-incorporation type=require
208
209 #
210 # All packaging build products should go into $(PDIR), so they don't
211 # need to be included separately in CLOBBERFILES.
212 #
213 CLOBBERFILES= $(PDIR) proto_list_$(PKGMACH) install-$(PKGMACH).out \
214 $(DYN_MANI) license-list
215
216 #
217 # By default, PKGS will list all manifests. To build and/or publish a
218 # subset of packages, override this on the command line or in the
219 # build environment and then reference (implicitly or explicitly) the all
220 # or install targets. Using ls -1 (that's a one) or print or echo to
221 # get the list of manifests is a little hackish, but avoids having a
222 # 900+ line file to explicitly list them all.
223 #
224
225 #
226 # Special manifests are symbolic links to real manifests with
227 # either *.mf.obs or *.mf.cur names, depending on the value of
228 # the ENABLE_IPP_PRINTING macro. They are excluded from the
229 # MANIFESTS macro because they may not exist when it is set,
230 # but are added unconditionally on the next line.
231 #
232
233 SPECIAL_MANIFESTS = SUNWippl.mf print-lp-ipp-ipp-listener.mf
234 DYN_MANI = $(SPECIAL_MANIFESTS:%=manifests/%)
235 LIST_MANIFESTS_CMD = (cd manifests ; /usr/bin/ls -1 *.mf |\
236 $(SED) $(SPECIAL_MANIFESTS:%=-e '/^%$$/d') )
237 MANIFESTS = $(LIST_MANIFESTS_CMD:sh)
238 MANIFESTS += $(SPECIAL_MANIFESTS)
239
240 PKGS= $(MANIFESTS:%.mf=%)
241 DEP_PKGS= $(PKGS:%=$(PDIR)/%.dep)
242 PROC_PKGS= $(PKGS:%=$(PDIR)/%.mog)
243
244 #
245 # Track the synthetic manifests separately so we can properly express
246 # build rules and dependencies. The synthetic and real packages use
247 # different sets of transforms and macros for pkgmogrify.
248 #
249 SYNTH_PKGS= osnet-incorporation osnet-redist
250 DEP_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.dep)
251 PROC_SYNTH_PKGS= $(SYNTH_PKGS:%=$(PDIR)/%.mog)
252
253 #
254 # Root of pkg image to use for dependency resolution
255 # Normally / on the machine used to build the binaries
256 #
257 PKGDEP_RESOLVE_IMAGE = /
258
259 #
350 #
351 # repository metadata (catalogs and search indices)
352 # |
353 # | pkgrepo refresh
354 # |
355 # published packages
356 # | |
357 # | | pkgsend publish
358 # | |
359 # repositories resolved dependencies
360 # | |
361 # pkgsend | | pkgdepend resolve
362 # create-repository |
363 # | generated dependencies
364 # repo directories |
365 # | pkgdepend
366 # |
367 # processed manifests
368 #
369
370 ALL_TARGETS= $(DYN_MANI) $(PROC_SYNTH_PKGS) proto_list_$(PKGMACH)
371
372 all: $(ALL_TARGETS)
373
374 #
375 # Rule to create symlinks to *.mf.obs or *.mf.cur for special manifests
376 # Also removes the previous special manifest
377 #
378 DYN_TYP = obs
379 $(ENABLE_IPP_PRINTING) DYN_TYP = cur
380 $(DYN_MANI): $$(@).$(DYN_TYP)
381 $(RM) $(@)
382 $(SYMLINK) $(@F).$(DYN_TYP) $(@)
383
384 #
385 # This will build the directory to contain the processed manifests
386 # and the metadata symlinks.
387 #
388 $(PDIR):
389 @print "Creating $(@)"
390 $(PKGDEBUG)$(INS.dir)
391
392 #
393 # This rule resolves dependencies across all published manifests.
394 #
395 # We shouldn't have to ignore the error from pkgdepend, but until
396 # 16012 and its dependencies are resolved, pkgdepend will always exit
397 # with an error.
398 #
399 $(PDIR)/gendeps: $(DEP_SYNTH_PKGS) $(DEP_PKGS)
400 -$(PKGDEBUG)if [ "$(SUPPRESSPKGDEP)" = "true" ]; then \
401 print "Suppressing dependency resolution"; \
402 for p in $(DEP_PKGS:%.dep=%); do \
403 $(CP) $$p.dep $$p.res; \
404 done; \
|