diff options
author | ru <ru@FreeBSD.org> | 2004-08-18 07:17:01 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2004-08-18 07:17:01 +0000 |
commit | d4d76490aad2a1a7d6a74ed03426550efa1a6415 (patch) | |
tree | c56f624875e3a853c36a52233a7075763915c9a4 /Makefile | |
parent | ae25ac2907d4246b6537fb58df8ed32eddc17b7c (diff) | |
download | FreeBSD-src-d4d76490aad2a1a7d6a74ed03426550efa1a6415.zip FreeBSD-src-d4d76490aad2a1a7d6a74ed03426550efa1a6415.tar.gz |
My take at improving the universe: allow the worlds to be
built in parallel. Examples:
make universe
Build worlds sequentially, each world sequentially.
make universe JFLAG=-j4
Build worlds sequentially, each world in parallel.
make -j4 universe
make -j4 universe JFLAG=-j2
Build four worlds in parallel, each world will be
built in parallel too. World parallelization is
set to four in the first synopsis, and to two in
the second.
make -j4 universe JFLAG=-B
Build worlds in parallel, each world sequentially.
("world" == buildworld followed by buildkernels.)
Prayers: obrien, phk
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -150,10 +150,9 @@ ${TGTS}: # Set a reasonable default .MAIN: all -.if defined(HISTORICAL_MAKE_WORLD) || defined(DESTDIR) -.if make(world) STARTTIME!= LC_ALL=C date -.endif + +.if defined(HISTORICAL_MAKE_WORLD) || defined(DESTDIR) # # world # @@ -248,16 +247,20 @@ make: .PHONY # universe # # Attempt to rebuild *everything* for all supported architectures, -# with reasonable chance of success, regardless of how old your +# with a reasonable chance of success, regardless of how old your # existing system is. # -i386_mach= pc98 -universe: +universe: universe_prologue +universe_prologue: @echo "--------------------------------------------------------------" @echo ">>> make universe started on ${STARTTIME}" @echo "--------------------------------------------------------------" -.for arch in i386 sparc64 alpha ia64 amd64 -.for mach in ${arch} ${${arch}_mach} +.for target in i386 i386:pc98 sparc64 alpha ia64 amd64 +.for arch in ${target:C/:.*$//} +.for mach in ${target:C/^.*://} +universe: universe_${mach} +.ORDER: universe_prologue universe_${mach} universe_epilogue +universe_${mach}: @echo ">> ${mach} started on `LC_ALL=C date`" -cd ${.CURDIR} && ${MAKE} ${JFLAG} buildworld \ TARGET_ARCH=${arch} TARGET=${mach} \ @@ -268,10 +271,13 @@ universe: -cd ${.CURDIR}/sys/${mach}/conf && ${MAKE} LINT \ > ${.CURDIR}/_.${mach}.makeLINT 2>&1 .endif - cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernels TARGET_ARCH=${arch} TARGET=${mach} + cd ${.CURDIR} && ${MAKE} buildkernels TARGET_ARCH=${arch} TARGET=${mach} @echo ">> ${mach} completed on `LC_ALL=C date`" .endfor .endfor +.endfor +universe: universe_epilogue +universe_epilogue: @echo "--------------------------------------------------------------" @echo ">>> make universe completed on `LC_ALL=C date`" @echo " (started ${STARTTIME})" @@ -280,8 +286,6 @@ universe: .if make(buildkernels) KERNCONFS!= cd ${.CURDIR}/sys/${TARGET}/conf && \ find [A-Z]*[A-Z] -type f -maxdepth 0 ! -name NOTES -.endif - buildkernels: .for kernel in ${KERNCONFS} -cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \ @@ -289,3 +293,4 @@ buildkernels: __MAKE_CONF=/dev/null \ > _.${TARGET}.${kernel} 2>&1 .endfor +.endif |