aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2010-01-08 19:01:50 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2010-01-08 19:01:50 +0000
commit3c55ed7092e869cf0b84155462485dba2821069b (patch)
treefb9a99dc92a8a3e7cb3378bf86fd1aa0996ca0fb /Makefile
parentfbeee127197c293113e3f36c751213bf9e5a5fcf (diff)
downloadsrc-3c55ed7092e869cf0b84155462485dba2821069b.tar.gz
src-3c55ed7092e869cf0b84155462485dba2821069b.zip
To avoid hardcoding further kernel configuration names for
make universe, split the logic into two parts: - 1st to build worlds and generate kernel configs like LINT. - 2nd to build kernels for a given TARGET architecture correctly finding all newly generated configs, not knowing anything about LINT anymore. (*) (*) If you know better/cleaner/... ways to do this, let me know. Discussed on/with: arch, jhb, rwatson MFC after: 1 month
Notes
Notes: svn path=/head/; revision=201815
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 16 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index ebaeb6d49c68..e7c4c5fe0860 100644
--- a/Makefile
+++ b/Makefile
@@ -278,7 +278,7 @@ tinderbox:
# with a reasonable chance of success, regardless of how old your
# existing system is.
#
-.if make(universe) || make(tinderbox)
+.if make(universe) || make(universe_kernels) || make(tinderbox)
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v
.if defined(DOING_TINDERBOX)
@@ -297,10 +297,6 @@ universe_prologue:
rm -f ${FAILFILE}
.endif
.for target in ${TARGETS}
-KERNCONFS!= cd ${.CURDIR}/sys/${target}/conf && \
- find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
- ! -name DEFAULTS ! -name LINT
-KERNCONFS:= ${KERNCONFS:S/^NOTES$/LINT/}
universe: universe_${target}
.ORDER: universe_prologue universe_${target} universe_epilogue
universe_${target}:
@@ -320,16 +316,25 @@ universe_${target}:
(echo "${target} 'make LINT' failed," \
"check _.${target}.makeLINT for details"| ${MAKEFAIL}))
.endif
+ @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} TARGET=${target} \
+ universe_kernels
+ @echo ">> ${target} completed on `LC_ALL=C date`"
+.endfor
+universe_kernels: universe_kernconfs
+BUILD_ARCH!= uname -p
+TARGET?= ${BUILD_ARCH}
+KERNCONFS!= cd ${.CURDIR}/sys/${TARGET}/conf && \
+ find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
+ ! -name DEFAULTS ! -name NOTES
+universe_kernconfs:
.for kernel in ${KERNCONFS}
@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
${MAKE} ${JFLAG} buildkernel \
- TARGET=${target} \
+ TARGET=${TARGET} \
KERNCONF=${kernel} \
- > _.${target}.${kernel} 2>&1 || \
- (echo "${target} ${kernel} kernel failed," \
- "check _.${target}.${kernel} for details"| ${MAKEFAIL}))
-.endfor
- @echo ">> ${target} completed on `LC_ALL=C date`"
+ > _.${TARGET}.${kernel} 2>&1 || \
+ (echo "${TARGET} ${kernel} kernel failed," \
+ "check _.${TARGET}.${kernel} for details"| ${MAKEFAIL}))
.endfor
universe: universe_epilogue
universe_epilogue: