diff options
author | alfred <alfred@FreeBSD.org> | 2008-12-01 00:45:51 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2008-12-01 00:45:51 +0000 |
commit | 4081b776af50ba3c4e12b839e07e7db11120a5dc (patch) | |
tree | 51ccaf417a36e208b7a0fdcbf0f6329f8a2333d1 /Makefile | |
parent | c1d7ffc25e6ad608b9a9fc776fe3b5f97340051f (diff) | |
download | FreeBSD-src-4081b776af50ba3c4e12b839e07e7db11120a5dc.zip FreeBSD-src-4081b776af50ba3c4e12b839e07e7db11120a5dc.tar.gz |
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"
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 35 |
1 files changed, 28 insertions, 7 deletions
@@ -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 |