Author: bdrewery
Date: Fri Jun 23 18:26:54 2017
New Revision: 320283
URL: https://svnweb.freebsd.org/changeset/base/320283

Log:
  packages: Allow actually building individual world packages in parallel.
  
  MFC after:    2 weeks
  Sponsored by: Dell EMC Isilon

Modified:
  head/Makefile.inc1

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1  Fri Jun 23 18:26:51 2017        (r320282)
+++ head/Makefile.inc1  Fri Jun 23 18:26:54 2017        (r320283)
@@ -1570,24 +1570,34 @@ create-world-packages:  _pkgbootstrap .PHONY
                awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk \
                ${WSTAGEDIR}/METALOG
        @for plist in ${WSTAGEDIR}/*.plist; do \
-               plist=$${plist##*/} ; \
-               pkgname=$${plist%.plist} ; \
-               sh ${SRCDIR}/release/packages/generate-ucl.sh -o $${pkgname} \
-                       -s ${SRCDIR} -u ${WSTAGEDIR}/$${pkgname}.ucl ; \
-       done
-       @for plist in ${WSTAGEDIR}/*.plist; do \
-               plist=$${plist##*/} ; \
-               pkgname=$${plist%.plist} ; \
-               awk -F\" ' \
-                       /^name/ { printf("===> Creating %s-", $$2); next } \
-                       /^version/ { print $$2; next } \
-                       ' ${WSTAGEDIR}/$${pkgname}.ucl ; \
-               ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o 
ALLOW_BASE_SHLIBS=yes \
-                       create -M ${WSTAGEDIR}/$${pkgname}.ucl \
-                       -p ${WSTAGEDIR}/$${pkgname}.plist \
-                       -r ${WSTAGEDIR} \
-                       -o ${REPODIR}/$$(${PKG_CMD} -o 
ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} ; \
-       done
+         plist=$${plist##*/} ; \
+         pkgname=$${plist%.plist} ; \
+         echo "_PKGS+= $${pkgname}" ; \
+       done > ${WSTAGEDIR}/packages.mk
+       ${_+_}@cd ${.CURDIR}; \
+               ${MAKE} -f Makefile.inc1 create-world-packages-jobs \
+               .MAKE.JOB.PREFIX=
+
+.if make(create-world-packages-jobs)
+.include "${WSTAGEDIR}/packages.mk"
+.endif
+
+create-world-packages-jobs: .PHONY
+.for pkgname in ${_PKGS}
+create-world-packages-jobs: create-world-package-${pkgname}
+create-world-package-${pkgname}: .PHONY
+       @sh ${SRCDIR}/release/packages/generate-ucl.sh -o ${pkgname} \
+               -s ${SRCDIR} -u ${WSTAGEDIR}/${pkgname}.ucl
+       @awk -F\" ' \
+               /^name/ { printf("===> Creating %s-", $$2); next } \
+               /^version/ { print $$2; next } \
+               ' ${WSTAGEDIR}/${pkgname}.ucl ; \
+       ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \
+               create -M ${WSTAGEDIR}/${pkgname}.ucl \
+               -p ${WSTAGEDIR}/${pkgname}.plist \
+               -r ${WSTAGEDIR} \
+               -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh 
config ABI)/${PKG_VERSION}
+.endfor
 
 create-kernel-packages:        _pkgbootstrap .PHONY
 .if exists(${KSTAGEDIR}/kernel.meta)
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to