aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2008-12-01 00:45:51 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2008-12-01 00:45:51 +0000
commit4bb9ca574c823ae8c5e076753e99165d7ff2f106 (patch)
tree51ccaf417a36e208b7a0fdcbf0f6329f8a2333d1
parent6647711279c8c2412cd3797fa68fbb51cc5ff1c3 (diff)
downloadsrc-4bb9ca574c823ae8c5e076753e99165d7ff2f106.tar.gz
src-4bb9ca574c823ae8c5e076753e99165d7ff2f106.zip
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"
Notes
Notes: svn path=/head/; revision=185499
-rw-r--r--Makefile35
1 files changed, 28 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 03ca7357aa76..7305ba7b7dee 100644
--- a/Makefile
+++ b/Makefile
@@ -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