Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jan 2010 19:01:51 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r201815 - head
Message-ID:  <201001081901.o08J1pjc062909@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Fri Jan  8 19:01:50 2010
New Revision: 201815
URL: http://svn.freebsd.org/changeset/base/201815

Log:
  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

Modified:
  head/Makefile

Modified: head/Makefile
==============================================================================
--- head/Makefile	Fri Jan  8 19:00:20 2010	(r201814)
+++ head/Makefile	Fri Jan  8 19:01:50 2010	(r201815)
@@ -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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001081901.o08J1pjc062909>