From 1c855902af88e7dec7d3be1db7af25bcf4419b9b Mon Sep 17 00:00:00 2001 From: lukem Date: Wed, 25 Dec 2002 00:58:00 +0000 Subject: [PATCH] Document: * build.sh -i idir * top level targets: distribution, buildworld, installworld * top level variables: INSTALLWORLDDIR --- BUILDING | 106 ++++++++++++++++++++++++++++------------------ doc/BUILDING.mdoc | 52 +++++++++++++++++++++-- 2 files changed, 113 insertions(+), 45 deletions(-) diff --git a/BUILDING b/BUILDING index aac56ec38ea6..dfbb65849296 100644 --- a/BUILDING +++ b/BUILDING @@ -282,49 +282,54 @@ CONFIGURATION These variables only affect the top level ``Makefile'' and do not affect manually building subtrees of the NetBSD source code. - MKOBJDIRS Can be set to ``yes'' or ``no''. Indicates whether object - directories will be created automatically (via a ``make - obj'' pass) at the start of a build. + INSTALLWORLDDIR Location for the ``make installworld'' target to install + to. - Default: ``yes'' + Default: ``/'' - NBUILDJOBS Now obsolete. Use the make(1) option -j, instead (see be- - low) + MKOBJDIRS Can be set to ``yes'' or ``no''. Indicates whether ob- + ject directories will be created automatically (via a + ``make obj'' pass) at the start of a build. - Default: Unset. + Default: ``yes'' - NOCLEANDIR If set, avoids the ``make cleandir'' phase of a full - build. This has the effect of allowing only changed files - in a source tree to be recompiled. This can speed up - builds when updating only a few files in the tree. + NBUILDJOBS Now obsolete. Use the make(1) option -j, instead (see + below) - Default: Unset. + Default: Unset. - NODISTRIBDIRS If set, avoids the ``make distrib-dirs'' phase of a full - build. This skips running mtree(8) on DESTDIR, useful on - systems where building as an unprivileged user, or where - it is known that the system-wide mtree files have not - changed. + NOCLEANDIR If set, avoids the ``make cleandir'' phase of a full + build. This has the effect of allowing only changed + files in a source tree to be recompiled. This can speed + up builds when updating only a few files in the tree. - Default: Unset. + Default: Unset. - NOINCLUDES If set, avoids the ``make includes'' phase of a full - build. This has the effect of preventing make(1) from - thinking that some programs are out-of-date simply because - the system include files have changed. However, this op- - tion should not be used when updating the entire NetBSD - source tree arbitrarily; it is suggested to use UPDATE in - that case. + NODISTRIBDIRS If set, avoids the ``make distrib-dirs'' phase of a full + build. This skips running mtree(8) on DESTDIR, useful + on systems where building as an unprivileged user, or + where it is known that the system-wide mtree files have + not changed. - Default: Unset. + Default: Unset. - RELEASEDIR If set, specifies the directory to which a release(7) lay- - out will be written at the end of a ``make release''. + NOINCLUDES If set, avoids the ``make includes'' phase of a full + build. This has the effect of preventing make(1) from + thinking that some programs are out-of-date simply be- + cause the system include files have changed. However, + this option should not be used when updating the entire + NetBSD source tree arbitrarily; it is suggested to use + UPDATE in that case. - Default: Unset. + Default: Unset. - UPDATE If set, then in addition to the effects described for UP- - DATE above, this implies the effects of NOCLEANDIR. + RELEASEDIR If set, specifies the directory to which a release(7) + layout will be written at the end of a ``make release''. + + Default: Unset. + + UPDATE If set, then in addition to the effects described for + UPDATE above, this implies the effects of NOCLEANDIR. BUILDING "make" command line options @@ -400,18 +405,32 @@ BUILDING Additional make(1) targets are usable specifically from the top source level to facilitate building the entire NetBSD source tree. - build Build the entire NetBSD system. This orders portions of the - source tree such that prerequisites will be built in the prop- - er order. + build Build the entire NetBSD system. This orders portions of + the source tree such that prerequisites will be built in + the proper order. - release Do a ``make build'', then package the system into a standard - release layout as described by release(7). This requires that - RELEASEDIR be set (see above). + distribution Do a ``make build'', and then install a full distribution + into DESTDIR. + + buildworld As per ``make distribution'', except that it ensures that + DESTDIR is not the root directory. + + installworld Install the distribution from DESTDIR to INSTALLWORLDDIR + (which defaults to the root directory). Ensures that + INSTALLWORLDDIR is the not root directory if cross compil- + ing. + + Note: It is highly recommended that you upgrade your kernel + and reboot before performing this operation. + + release Do a ``make build'', then package the system into a stan- + dard release layout as described by release(7). This re- + quires that RELEASEDIR be set (see above). regression-tests - Can only be run after building the regression tests in the di- - rectory ``regress''. Runs the compiled regression tests on - the local host. + Can only be run after building the regression tests in the + directory ``regress''. Runs the compiled regression tests + on the local host. The "build.sh" script This script file is a Bourne shell script designed to build the entire @@ -454,6 +473,11 @@ BUILDING -E Set `expert' mode; DESTDIR does not have to be set to a non- root path for builds when this is set. + -i installworlddir + Install the contents of DESTDIR to installworlddir after all + other operations have completed, using the top level + ``installworld'' target. + -j njob Passed through to make(1). Makefiles should use .WAIT or have explicit dependancies as necessary to enforce build ordering. If you see build failures with -j, please save complete build @@ -568,4 +592,4 @@ HISTORY BUGS A few platforms are not yet using this build system. -NetBSD December 8, 2002 9 +NetBSD December 25, 2002 9 diff --git a/doc/BUILDING.mdoc b/doc/BUILDING.mdoc index 8bc35e55bbf8..5376b1f297cd 100644 --- a/doc/BUILDING.mdoc +++ b/doc/BUILDING.mdoc @@ -1,4 +1,4 @@ -.\" $NetBSD: BUILDING.mdoc,v 1.6 2002/12/18 19:46:48 wiz Exp $ +.\" $NetBSD: BUILDING.mdoc,v 1.7 2002/12/25 00:58:01 lukem Exp $ .\" .\" Copyright (c) 2001, 2002 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -38,7 +38,7 @@ .\" NOTE: After changing this file, run "make build-docs" to generate the .\" proper plaintext versions, and check in all BUILDING.* files! .\" -.Dd December 8, 2002 +.Dd December 25, 2002 .Dt BUILDING 8 .Os NetBSD . @@ -517,7 +517,14 @@ and do not affect manually building subtrees of the .Nx source code. . -.Bl -tag -width "NODISTRIBDIRS" +.Bl -tag -width "INSTALLWORLDDIR" +. +.It Sy INSTALLWORLDDIR +Location for the +.Dq make installworld +target to install to. +.DFLT +.Dq / . .It Sy MKOBJDIRS .YorN @@ -734,7 +741,7 @@ building the entire .Nx source tree. . -.Bl -tag -width "dependall" +.Bl -tag -width "distribution" . .It Sy build Build the entire @@ -743,6 +750,34 @@ system. This orders portions of the source tree such that prerequisites will be built in the proper order. . +.It Sy distribution +Do a +.Dq make build , +and then install a full distribution into +.Sy DESTDIR . +. +.It Sy buildworld +As per +.Dq make distribution , +except that it ensures that +.Sy DESTDIR +is not the root directory. +. +. +.It Sy installworld +Install the distribution from +.Sy DESTDIR +to +.Sy INSTALLWORLDDIR +(which defaults to the root directory). +Ensures that +.Sy INSTALLWORLDDIR +is the not root directory if cross compiling. +.Pp +.Em Note : +It is highly recommended that you upgrade your kernel and reboot +before performing this operation. +. .It Sy release Do a .Dq make build , @@ -851,6 +886,15 @@ mode; .Sy DESTDIR does not have to be set to a non-root path for builds when this is set. . +.It Fl i Ar installworlddir +Install the contents of +.Dv DESTDIR +to +.Ar installworlddir +after all other operations have completed, using the top level +.Dq installworld +target. +. .It Fl j Ar njob Passed through to .Xr make 1 .