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:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to