Author: alfred
Date: Mon Dec  1 00:45:51 2008
New Revision: 185499
URL: http://svn.freebsd.org/changeset/base/185499

Log:
  Provide a 'tinderbox' target that compiles enough of FreeBSD that
  a developer can rest reasonably assured that the tinderbox will not
  be broken.  This target leverages most of 'universe' but will exit
  non-zero and output a summary at the end.
  
  "make tinderbox"

Modified:
  head/Makefile

Modified: head/Makefile
==============================================================================
--- head/Makefile       Mon Dec  1 00:23:12 2008        (r185498)
+++ head/Makefile       Mon Dec  1 00:45:51 2008        (r185499)
@@ -267,6 +267,10 @@ make: .PHONY
                ${MMAKE} all && \
                ${MMAKE} install DESTDIR=${MAKEPATH} BINDIR=
 
+tinderbox:
+       cd ${.CURDIR} && \
+               DOING_TINDERBOX=YES ${MAKE} ${JFLAG} universe
+
 #
 # universe
 #
@@ -274,14 +278,24 @@ make: .PHONY
 # with a reasonable chance of success, regardless of how old your
 # existing system is.
 #
-.if make(universe)
+.if make(universe) || make(tinderbox)
 TARGETS?=amd64 arm i386 ia64 pc98 powerpc sparc64 sun4v
 
+.if defined(DOING_TINDERBOX)
+FAILFILE=tinderbox.failed
+MAKEFAIL=tee -a ${FAILFILE}
+.else
+MAKEFAIL=cat
+.endif
+
 universe: universe_prologue
 universe_prologue:
        @echo "--------------------------------------------------------------"
        @echo ">>> make universe started on ${STARTTIME}"
        @echo "--------------------------------------------------------------"
+.if defined(DOING_TINDERBOX)
+       rm -f ${FAILFILE}
+.endif
 .for target in ${TARGETS}
 KERNCONFS!=    cd ${.CURDIR}/sys/${target}/conf && \
                find [A-Z]*[A-Z] -type f -maxdepth 0 \
@@ -296,15 +310,15 @@ universe_${target}:
            ${MAKE} ${JFLAG} buildworld \
            TARGET=${target} \
            > _.${target}.buildworld 2>&1 || \
-           echo "${target} world failed," \
-           "check _.${target}.buildworld for details")
+           (echo "${target} world failed," \
+           "check _.${target}.buildworld for details" | ${MAKEFAIL}))
        @echo ">> ${target} buildworld completed on `LC_ALL=C date`"
 .endif
 .if exists(${.CURDIR}/sys/${target}/conf/NOTES)
        @(cd ${.CURDIR}/sys/${target}/conf && env __MAKE_CONF=/dev/null \
            ${MAKE} LINT > ${.CURDIR}/_.${target}.makeLINT 2>&1 || \
-           echo "${target} 'make LINT' failed," \
-           "check _.${target}.makeLINT for details")
+           (echo "${target} 'make LINT' failed," \
+           "check _.${target}.makeLINT for details"| ${MAKEFAIL}))
 .endif
 .for kernel in ${KERNCONFS}
        @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
@@ -312,8 +326,8 @@ universe_${target}:
            TARGET=${target} \
            KERNCONF=${kernel} \
            > _.${target}.${kernel} 2>&1 || \
-           echo "${target} ${kernel} kernel failed," \
-           "check _.${target}.${kernel} for details")
+           (echo "${target} ${kernel} kernel failed," \
+           "check _.${target}.${kernel} for details"| ${MAKEFAIL}))
 .endfor
        @echo ">> ${target} completed on `LC_ALL=C date`"
 .endfor
@@ -323,4 +337,11 @@ universe_epilogue:
        @echo ">>> make universe completed on `LC_ALL=C date`"
        @echo "                      (started ${STARTTIME})"
        @echo "--------------------------------------------------------------"
+.if defined(DOING_TINDERBOX)
+       @if [ -e ${FAILFILE} ] ; then \
+               echo "Tinderbox failed:" ;\
+               cat ${FAILFILE} ;\
+               exit 1 ;\
+       fi
+.endif
 .endif
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to