[PATCH] Add a 'make toolchains' target

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 10 Feb 2011 08:13:13 -0500
This patch adds a 'make toolchains' target that invokes 'make toolchain' for 
each target.  The use case I want it for is a cheaper way to just test kernels 
via make tinderbox so I can do:

  make toolchains
  make MAKE_JUST_KERNELS=yes tinderbox

It is implemented by adding a new frob to tweak the target that make universe 
builds for the world stage of universe (UNIVERSE_TARGET).  If that frob is 
set, then the kernel build step for a universe is skipped.  With this, the 
toolchains target is a simple wrapper for:

  make UNIVERSE_TARGET=toolchains universe

Index: Makefile
===================================================================
--- Makefile	(revision 218481)
+++ Makefile	(working copy)
_at__at_ -30,6 +30,7 _at__at_
 # delete-old-libs     - Delete obsolete libraries.
 # targets             - Print a list of supported TARGET/TARGET_ARCH pairs
 #                       for world and kernel targets.
+# toolchains          - Build a toolchain for all world and kernel targets.
 #
 # This makefile is simple by design. The FreeBSD make automatically reads
 # the /usr/share/mk/sys.mk unless the -m argument is specified on the
_at__at_ -307,9 +308,11 _at__at_ make: .PHONY
 		${MMAKE} install DESTDIR=${MAKEPATH} BINDIR=
 
 tinderbox:
-	_at_cd ${.CURDIR} && \
-		DOING_TINDERBOX=YES ${MAKE} JFLAG=${JFLAG} universe
+	_at_cd ${.CURDIR} && ${MAKE} DOING_TINDERBOX=YES universe
 
+toolchains:
+	_at_cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=toolchain universe
+
 #
 # universe
 #
_at__at_ -328,6 +331,12 _at__at_ TARGET_ARCHES_sun4v?=	sparc64
 TARGET_ARCHES_${target}?= ${target}
 .endfor
 
+.if defined(UNIVERSE_TARGET)
+MAKE_JUST_WORLDS=	YES
+.else
+UNIVERSE_TARGET?=	buildworld
+.endif
+
 targets:
 	_at_echo "Supported TARGET/TARGET_ARCH pairs for world and kernel targets"
 .for target in ${TARGETS}
_at__at_ -361,16 +370,16 _at__at_ universe_${target}_prologue:
 .for target_arch in ${TARGET_ARCHES_${target}}
 universe_${target}: universe_${target}_${target_arch}
 universe_${target}_${target_arch}: universe_${target}_prologue
-	_at_echo ">> ${target}.${target_arch} buildworld started on `LC_ALL=C date`"
+	_at_echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} started on `LC_ALL=C 
date`"
 	_at_(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
-	    ${MAKE} ${JFLAG} buildworld \
+	    ${MAKE} ${JFLAG} ${UNIVERSE_TARGET} \
 	    TARGET=${target} \
 	    TARGET_ARCH=${target_arch} \
-	    > _.${target}.${target_arch}.buildworld 2>&1 || \
-	    (echo "${target}.${target_arch} world failed," \
-	    "check _.${target}.${target_arch}.buildworld for details" | \
+	    > _.${target}.${target_arch}.${UNIVERSE_TARGET} 2>&1 || \
+	    (echo "${target}.${target_arch} ${UNIVERSE_TARGET} failed," \
+	    "check _.${target}.${target_arch}.${UNIVERSE_TARGET} for details" | \
 	    ${MAKEFAIL}))
-	_at_echo ">> ${target}.${target_arch} buildworld completed on `LC_ALL=C 
date`"
+	_at_echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} completed on 
`LC_ALL=C date`"
 .endfor
 .endif
 .if !defined(MAKE_JUST_WORLDS)

-- 
John Baldwin
Received on Thu Feb 10 2011 - 12:13:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:11 UTC