improve parallel build
authorNorm Jacobs <Norm.Jacobs@Sun.COM>
Fri, 26 Nov 2010 14:46:14 -0600
changeset 49 13d31a6d756e
parent 48 1bb7f3eccdd6
child 50 dc11f95a7150
improve parallel build add incorporation generation
Makefile
components/a2ps/a2ps.p5m
incorporations/Makefile
incorporations/userland/Makefile
incorporations/userland/userland.p5m
make-rules/ips.mk
make-rules/shared-macros.mk
transforms/print-consolidation-depend
--- a/Makefile	Wed Nov 10 11:52:54 2010 -0600
+++ b/Makefile	Fri Nov 26 14:46:14 2010 -0600
@@ -23,7 +23,7 @@
 
 include make-rules/shared-macros.mk
 
-SUBDIRS += components
+SUBDIRS += components incorporations
 
 download:	TARGET = download
 prep:		TARGET = prep
@@ -40,6 +40,8 @@
 download setup prep build install publish validate clean clobber: $(SUBDIRS)
 
 $(SUBDIRS):	FORCE
-	cd $@ ; echo "$(TARGET) \c" ; pwd ; $(GMAKE) $(TARGET)
+	+echo "$(TARGET) $@" ; $(GMAKE) -C $@ $(TARGET)
+
+incorporations:	components
 
 FORCE:
--- a/components/a2ps/a2ps.p5m	Wed Nov 10 11:52:54 2010 -0600
+++ b/components/a2ps/a2ps.p5m	Fri Nov 26 14:46:14 2010 -0600
@@ -393,3 +393,5 @@
 	hotline="Please contact your local service provider" \
 	pkg=SUNWa2psu variant.arch=$(ARCH) vendor="Oracle Corporation" \
 	version=11.11.0,REV=2010.09.30.04.23
+
+set name=variant.opensolaris.zone value=global value=nonglobal
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/incorporations/Makefile	Fri Nov 26 14:46:14 2010 -0600
@@ -0,0 +1,42 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or it's affiliates.  All rights reserved.
+#
+
+include ../make-rules/shared-macros.mk
+
+SUBDIRS =	userland
+
+publish:		TARGET = publish-incorporation
+clean:			TARGET = clean
+clobber:		TARGET = clobber
+
+# No action:
+download prep build install install-packages validate:
+
+.DEFAULT:	publish
+
+publish clean clobber: $(SUBDIRS)
+
+$(SUBDIRS):	FORCE
+	gmake -C $@ $(TARGET)
+
+FORCE:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/incorporations/userland/Makefile	Fri Nov 26 14:46:14 2010 -0600
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or it's affiliates.  All rights reserved.
+#
+
+include $(WS_TOP)/make-rules/shared-macros.mk
+include $(WS_TOP)/make-rules/ips.mk
+
+FRAGMENTS=	$(wildcard *.fragment)
+
+userland.mogrified:	userland.p5m
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $< $(PUBLISH_TRANSFORMS) | \
+                sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
+	
+userland.published:	userland.mogrified $(FRAGMENTS)
+	cat userland.mogrified $(FRAGMENTS) >$@
+	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest -d . $@
+
+install:
+
+publish-incorporation:	userland.published
+
+clean::
+	$(RM) userland.mogrified userland.published
+
+clobber::	clean
+	$(RM) $(FRAGMENTS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/incorporations/userland/userland.p5m	Fri Nov 26 14:46:14 2010 -0600
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or it's affiliates.  All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/consolidation/userland/userland-incorporation@0.$(OS_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="userland consolidation incorporation "
+set name=pkg.description value="This incorporation constrains packages from the userland consolidation. "
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+set variant.arch=$(ARCH)
+set name=variant.opensolaris.zone value=global value=nonglobal
--- a/make-rules/ips.mk	Wed Nov 10 11:52:54 2010 -0600
+++ b/make-rules/ips.mk	Fri Nov 26 14:46:14 2010 -0600
@@ -136,6 +136,7 @@
 	$(PKGMOGRIFY) $(@:%.resolved=%.mogrified) \
 		$(WS_TOP)/transforms/drop-unresolved-dependencies | \
 		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@
+	echo "depend fmri=consolidation/$(CONSOLIDATION)/$(CONSOLIDATION)-incorporation type=require">>$@
 	$(PKGDEPEND) resolve -o $< | sed -e '1d' >>$@
 
 # lint the manifest before we publish with it.
@@ -149,6 +150,9 @@
 	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest \
 		-d $(PROTO_DIR) -d $(@D) -d . $<
 	$(PKGFMT) <$< >$@
+	$(PKGMOGRIFY) $(PKG_OPTIONS) $@ \
+			$(WS_TOP)/transforms/print-consolidation-depend | \
+ 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u > $(WS_INCORPORATIONS)/userland/$(@:$(MANIFEST_BASE)-%.published=%.fragment)
 
 $(COMPONENT_SRC)/.published:	$(PUBLISHED)
 	$(TOUCH) $@
--- a/make-rules/shared-macros.mk	Wed Nov 10 11:52:54 2010 -0600
+++ b/make-rules/shared-macros.mk	Fri Nov 26 14:46:14 2010 -0600
@@ -49,6 +49,7 @@
 WS_TOOLS =	$(WS_TOP)/tools
 WS_MAKE_RULES =	$(WS_TOP)/make-rules
 WS_COMPONENTS =	$(WS_TOP)/components
+WS_INCORPORATIONS =	$(WS_TOP)/incorporations
 
 BASS_O_MATIC =	$(WS_TOOLS)/bass-o-matic
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/transforms/print-consolidation-depend	Fri Nov 26 14:46:14 2010 -0600
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+
+#
+# These transforms print only the package name from the manifest.
+#
+
+<transform set name=pkg.fmri value=pkg:/(.+) -> print depend fmri=%<1> type=require >
+<transform -> drop>