aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2004-08-18 07:17:01 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2004-08-18 07:17:01 +0000
commitd18c990625fd613a7f4063ab1718e5afeed1be4b (patch)
treec56f624875e3a853c36a52233a7075763915c9a4 /Makefile
parent8e244f403d90dc0ecbf9d776849f4986d2c7351f (diff)
downloadsrc-d18c990625fd613a7f4063ab1718e5afeed1be4b.tar.gz
src-d18c990625fd613a7f4063ab1718e5afeed1be4b.zip
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
Notes
Notes: svn path=/head/; revision=133945
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 16 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 67406a7c7089..ce78de46b7a3 100644
--- a/Makefile
+++ b/Makefile
@@ -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