[PATCH] Add a 'make toolchains' target
John Baldwin
jhb at freebsd.org
Thu Feb 10 15:06:16 UTC 2011
On Thursday, February 10, 2011 8:22:00 am Bjoern A. Zeeb wrote:
> On Thu, 10 Feb 2011, John Baldwin wrote:
>
> > 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)
> > @@ -30,6 +30,7 @@
> > # 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.
>
> Should also go to build(7).
Patch for this. It documents the previously undocumented variables for
'make universe' and also describes UNIVERSE_TARGET:
Index: build.7
===================================================================
--- build.7 (revision 218481)
+++ build.7 (working copy)
@@ -218,13 +218,14 @@ on how to make it start at boot time.
Create the build toolchain needed to build the rest of the system.
For cross-architecture builds, this step creates a cross-toolchain.
.It Cm universe
-Execute a
+For each architecture,
+execute a
.Cm buildworld
-and
+followed by a
.Cm buildkernel
-for all kernels including
-.Pa LINT ,
-for each architecture supported by the build system.
+for all kernels for that architecture,
+including
+.Pa LINT .
This command takes a long time.
.It Cm update
Get updated sources as configured in
@@ -240,6 +241,8 @@ Execute the same targets as
.Cm universe .
In addition print a summary of all failed targets at the end and
exit with an error if there were any.
+.It Cm toolchains
+Create a build toolchain for each architecture supported by the build system.
.El
.Pp
Kernel specific build targets in
@@ -508,6 +511,29 @@ If set, restricts the documentation build to the l
specified as its content.
The default action is to build documentation for all languages.
.El
+.Pp
+Builds using the
+.Cm universe
+target are influenced by the following
+.Xr make 1
+variables:
+.Bl -tag -width ".Va MAKE_JUST_KERNELS"
+.It Va JFLAG
+Pass the value of this variable to each
+.Xr make 1
+invocation used to build worlds and kernels.
+This can be used to enable multiple jobs within a single architecture's build
+while still building each architecture serially.
+.It Va MAKE_JUST_KERNELS
+Only build kernels for each supported architecture.
+.It Va MAKE_JUST_WORLDS
+Only build worlds for each supported architecture.
+.It Va UNIVERSE_TARGET
+Execute the specified
+.Xr make 1
+target for each supported architecture instead of the default action of
+building a world and one or more kernels.
+.El
.Sh FILES
.Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact
.It Pa /usr/doc/Makefile
--
John Baldwin
More information about the freebsd-current
mailing list