Makefile revision 92
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# CDDL HEADER START
7a42357217528037bdfedcb17eeebfe96ae4266aAutomatic Updater# The contents of this file are subject to the terms of the
1167fc7904c5f0a472f8df207ac46dd52c7f1ec8Automatic Updater# Common Development and Distribution License (the "License").
0c39b3ed9409ecb277d5e32fa763a4e4d6598df8Automatic Updater# You may not use this file except in compliance with the License.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fe84edc17e0d582cf7b4270f8df9d4742a107b1cAutomatic Updater# or http://www.opensolaris.org/os/licensing.
79b273c187a4aa1016a62181983dfdd0521681aeMark Andrews# See the License for the specific language governing permissions
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# and limitations under the License.
b253dcf9668f95e141bce9556dc88e30d3305a1dTinderbox User# When distributing Covered Code, include this CDDL HEADER in each
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# If applicable, add the following below this CDDL HEADER, with the
bbde8dc56605130058a1540609264fa109da3b63Automatic Updater# fields enclosed by brackets "[]" replaced with your own identifying
bbde8dc56605130058a1540609264fa109da3b63Automatic Updater# information: Portions Copyright [yyyy] [name of copyright owner]
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater# CDDL HEADER END
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# for now, the assumption is we build any directory with a Makefile. This may
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews# not always be the case. If we build a new make-like tool to drive the upper
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# level build, it may make different decisions and will need to include
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# appropriate dependency information.
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# components.mk is auto-generated by the build tools. It populates the
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# COMPONENT_DIRS macro with a list of all directories in the workspace that
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# contain a component.
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox Usercomponents.mk: # Makefile # $(WS_TOP)/components
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User @echo "Generating component list..."
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt @$(BASS_O_MATIC) --workspace=$(WS_TOP) --components=paths \
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater | sed -e 's;^$(shell pwd)/;COMPONENT_DIRS += ;g' >$@
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updaterprep build install publish test: TEMPLATE_ZONE=$(ZONE)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterprep build install publish test: LOG = >$(WS_LOGS)/$@.$(TARGET).log 2>&1
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater# turn off pkglint for the individual component builds.
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox Userdownload prep build install publish install-packages validate \
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic UpdaterCOMPONENT_DIRS.nosetup = $(COMPONENT_DIRS:%=%.nosetup)
930f6069e5aa157cf6987cdafd412f5757a5a558Automatic Updaterclobber: $(COMPONENT_DIRS:%=%.nosetup) clean
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater $(RM) -r $(WS_REPO) $(WS_LOGS) $(WS_LINT_CACHE)
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updatersetup: $(WS_LOGS) $(WS_REPO) tools $(WS_LINT_CACHE)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson $(PKGSEND) -s $(PKG_REPO) create-repository \
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater --set-property publisher.prefix=$(PUBLISHER)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson @echo "Generating pkglint(1) cache from $(CANONICAL_REPO)..."
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater @(echo "set name=fmri value=pkg:/dummy" | $(PKGLINT) \
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater -c $(WS_LINT_CACHE) -r $(CANONICAL_REPO) /dev/fd/0 \
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson >$(WS_LOGS)/naughty-canonical-repo-actions 2>&1 ; exit 0)
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User @cd ../tools ; echo "building tools..." ; $(GMAKE) setup
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# $(WS_COMPONENTS) is the home directory for the zone user, so create a profile
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# to pass a few things on to zone based builds
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User echo "export PATH WS_TOP" >>$@
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater $(BASS_O_MATIC) $(TEMPLATE_ZONE:%=--template-zone %) \
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater $(@:%=--component %) --make $(TARGET) $(LOG)
7500521cecdff3c00e594ec41d3a17292332ffbcTinderbox User# pkglint all of the published manifests in one batch.
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews @echo 'pkglinting all package manifests...'
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews @$(ENV) PYTHONPATH=$(WS_TOOLS)/python $(PKGLINT) \
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews @cd $(@:%.nosetup=%) && echo "$(TARGET) $(@:%.nosetup=%)" && \
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews $(BASS_O_MATIC) $(TEMPLATE_ZONE:%=--template-zone %) \
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews $(@:%.nosetup=--component %) --make $(TARGET) $(LOG)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# depends.mk is auto-generated by the build tools, bass-o-matic.py in particular
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater @echo "Generating component dependencies..."