version 1.12.2.1, 2003/12/18 08:25:06 |
version 1.16, 2002/10/20 15:48:40 |
|
|
plementation are noted specially, as with the note below: |
plementation are noted specially, as with the note below: |
|
|
Note: This document applies only to platforms which use the new toolchain |
Note: This document applies only to platforms which use the new toolchain |
as indicated by the default setting of USE_NEW_TOOLCHAIN in <bsd.own.mk>. |
as indicated by the default setting of TOOLCHAIN_MISSING in <bsd.own.mk>. |
Platforms which have not yet been switched to the new toolchain should |
Platforms which have not yet been switched to the new toolchain should |
continue building traditionally, using the notes specified in the file |
continue building traditionally, using the notes specified in the file |
UPDATING. |
UPDATING. |
|
|
fore any system libraries or programs can be built. |
fore any system libraries or programs can be built. |
|
|
install Install programs, libraries, and documentation into DESTDIR. |
install Install programs, libraries, and documentation into DESTDIR. |
|
Few files will be installed to /dev, /etc, /root or /var in |
|
order to prevent user supplied configuration data from being |
|
overwritten. |
|
|
lint Run lint(1) against the C source code, where appropriate, and |
lint Run lint(1) against the C source code, where appropriate, and |
generate system-installed lint libraries. |
generate system-installed lint libraries. |
|
|
-b Bootstrap ``make'' and create a nbmake-MACHINE script (see be- |
-b Bootstrap ``make'' and create a nbmake-MACHINE script (see be- |
low). |
low). |
|
|
-d Build a full distribution. This differs from a normal build in |
-d Build a full distribution. This differs from a default build |
that etc files will also be installed. Note this does not |
in that files will also be installed to /dev, /etc, /root and |
build a ``release''; no release sets are placed in ${RE- |
/var. Note this does not build a ``release''; no release sets |
LEASEDIR}. |
are placed in ${RELEASEDIR}. -d is implied by -R. |
|
|
-j njob Passed through to make(1). Makefiles should use .WAIT or have |
-j njob Passed through to make(1). Makefiles should use .WAIT or have |
explicit dependancies as necessary to enforce build ordering. |
explicit dependancies as necessary to enforce build ordering. |
If you see build failures with -j, please save complete build |
If you see build failures with -j, please save complete build |
logs so the failures can be analyzed. |
logs so the failures can be analyzed. |
|
|
|
-k kernel |
|
Build a new kernel. The kernel argument is the name of a con- |
|
figuration file suitable for use by config(8). If kernel does |
|
not contain any `/' characters, the configuration file is ex- |
|
pected to be found in the KERNCONFDIR directory, which is typi- |
|
cally sys/arch/MACHINE/conf. The new kernel will be built in a |
|
subdirectory of KERNOBJDIR, which is typically |
|
sys/arch/MACHINE/compile or an associated object directory. In |
|
order to ensure that the kernel is built using up-to-date |
|
tools, it is strongly recommended that the tools be rebuilt |
|
(using the -t option) in a separate invocation of build.sh pri- |
|
or to using the -k option, or that the -t and -k options be |
|
used together in a single invocation of build.sh. |
|
|
-m mach Set the value of MACHINE to mach. This will also override any |
-m mach Set the value of MACHINE to mach. This will also override any |
value of MACHINE_ARCH in the process environment with a value |
value of MACHINE_ARCH in the process environment with a value |
deduced from mach, unless -a is specified. All cross builds |
deduced from mach, unless -a is specified. All cross builds |
|
|
|
|
-O obj Create an appropriate transform macro for MAKEOBJDIR that will |
-O obj Create an appropriate transform macro for MAKEOBJDIR that will |
place the built object files under obj. For instance, a set- |
place the built object files under obj. For instance, a set- |
ting of /usr/obj will place build-time files files under |
ting of /usr/obj will place build-time files under |
/usr/obj/bin, /usr/obj/lib, and so forth. |
/usr/obj/bin, /usr/obj/lib, and so forth. |
|
|
-R rel Set the value of RELEASEDIR to rel. Setting this option will |
-R rel Set the value of RELEASEDIR to rel. Setting this option will |
|
|
with an absolute path. |
with an absolute path. |
|
|
EXAMPLES |
EXAMPLES |
1. % ./build.sh -U |
./build.sh -t |
|
Build a new toolchain. |
Using unprivileged mode, build a complete distribution to a DESTDIR |
|
directory that build.sh selects (and will display). |
|
|
|
2. # ./build.sh -U -d -D / |
|
|
|
As root, install to / a complete distribution. Even though this is |
|
run as root, -U is required so that the permissions stored in |
|
DESTDIR/METALOG are correctly applied to the files as they're copied |
|
to /. |
|
|
|
3. % ./build.sh -U -u -R <dir> |
cd ${KERNCONFDIR} ; ${TOOLDIR}/bin/nbconfig GENERIC |
|
Use the new version of config(8) to prepare to build a new |
Using unprivileged mode, build a complete release to a DESTDIR di- |
GENERIC kernel. |
rectory that build.sh selects (and will display), and to a user |
|
specified RELEASEDIR. MKUPDATE=yes (-u) is set to prevent the |
cd ${KERNOBJDIR}/GENERIC ; ${TOOLDIR}/bin/nbmake-${MACHINE} dependall |
``make cleandir'', so that if this is run after example 1, it |
Use the new toolchain to build a new GENERIC kernel. |
doesn't need to redo that portion of the release build. |
|
|
./build.sh -t -k GENERIC |
4. % ./build.sh -t |
Build a new toolchain, and use the new toolchain to configure |
|
and build a new GENERIC kernel. |
Perform a build that builds and installs the cross tools only. These |
|
are installed into a TOOLDIR directory that build.sh selects (and |
./build.sh -U -d |
will display). |
Using unprivileged mode, build a complete distribution in |
|
DESTDIR. |
|
|
|
./build.sh -U -R /some/dir/RELEASE |
|
Using unprivileged mode, build a complete release in the speci- |
|
fied release directory. |
|
|
OBSOLETE VARIABLES |
OBSOLETE VARIABLES |
NBUILDJOBS Now obsolete. Use the make(1) option -j, instead. |
NBUILDJOBS Use the make(1) option -j, instead. |
|
|
|
USE_NEW_TOOLCHAIN |
|
The new toolchain is now the default. To disable, use |
|
TOOLCHAIN_MISSING=yes. |
|
|
SEE ALSO |
SEE ALSO |
make(1), hier(7), release(7) |
make(1), hier(7), release(7) |
|
|
HISTORY |
HISTORY |
The USE_NEW_TOOLCHAIN based build scheme was introduced in the ``NetBSD- |
The build.sh based build scheme was introduced for NetBSD 1.6 as |
current'' development sources between NetBSD 1.5 and NetBSD 1.6. |
USE_NEW_TOOLCHAIN, and re-worked to TOOLCHAIN_MISSING after that. |
|
|
BUGS |
BUGS |
A few platforms are not yet using the USE_NEW_TOOLCHAIN system. |
A few platforms are not yet using this build system. |
|
|
NetBSD May 3, 2002 9 |
NetBSD October 21, 2002 9 |