version 1.43, 2003/08/19 12:53:30 |
version 1.44, 2003/09/29 07:58:01 |
|
|
Once this document is completely in sync with reality, this paragraph |
Once this document is completely in sync with reality, this paragraph |
will be removed. |
will be removed. |
|
|
Discrepancies between this documentation and the current reality of im- |
Discrepancies between this documentation and the current reality of |
plementation are noted specially, as with the note below: |
implementation 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 TOOLCHAIN_MISSING in <bsd.own.mk>. |
as indicated by the default setting of TOOLCHAIN_MISSING in <bsd.own.mk>. |
|
|
|
|
BUILDING This document (in plaintext). |
BUILDING This document (in plaintext). |
|
|
Makefile The main Makefile for NetBSD; should only be run for na- |
Makefile The main Makefile for NetBSD; should only be run for |
tive builds with an appropriately up-to-date version of |
native builds with an appropriately up-to-date version of |
NetBSD make(1). (For building from out-of-date systems or |
NetBSD make(1). (For building from out-of-date systems or |
on a non-native host, see the build.sh shell script.) |
on a non-native host, see the build.sh shell script.) |
|
|
|
|
Sources imported verbatim from third parties, without man- |
Sources imported verbatim from third parties, without man- |
gling the existing build structure. Other source trees in |
gling the existing build structure. Other source trees in |
bin through usr.sbin use the NetBSD make(1) ``reachover'' |
bin through usr.sbin use the NetBSD make(1) ``reachover'' |
Makefile semantics when building these programs for a na- |
Makefile semantics when building these programs for a |
tive host. |
native host. |
|
|
distrib/, etc/ |
distrib/, etc/ |
Sources for items used when making a full release snap- |
Sources for items used when making a full release snap- |
|
|
MKCRYPTO Can be set to ``yes'' or ``no''. Indicates whether crypto- |
MKCRYPTO Can be set to ``yes'' or ``no''. Indicates whether crypto- |
graphic code will be included in a build; provided for the |
graphic code will be included in a build; provided for the |
benefit of countries that do not allow strong cryptography. |
benefit of countries that do not allow strong cryptography. |
Will not affect use of the standard low-security password en- |
Will not affect use of the standard low-security password |
cryption system, crypt(3). |
encryption system, crypt(3). |
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
MKDOC Can be set to ``yes'' or ``no''. Indicates whether system |
MKDOC Can be set to ``yes'' or ``no''. Indicates whether system |
documentation destined for DESTDIR/usr/share/doc will be in- |
documentation destined for DESTDIR/usr/share/doc will be |
stalled during a build. |
installed during a build. |
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
MKNLS Can be set to ``yes'' or ``no''. Indicates whether Native |
MKNLS Can be set to ``yes'' or ``no''. Indicates whether Native |
Language System locale zone files will be compiled and in- |
Language System locale zone files will be compiled and |
stalled during a build. |
installed during a build. |
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
|
|
|
|
MKPICINSTALL |
MKPICINSTALL |
Can be set to ``yes'' or ``no''. Indicates whether the ar(1) |
Can be set to ``yes'' or ``no''. Indicates whether the ar(1) |
format libraries (lib*_pic.a), used to generate shared li- |
format libraries (lib*_pic.a), used to generate shared |
braries, are installed during a build. |
libraries, are installed during a build. |
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
|
|
code. |
code. |
|
|
MKSHARE Can be set to ``yes'' or ``no''. Indicates whether files |
MKSHARE Can be set to ``yes'' or ``no''. Indicates whether files |
destined to reside in DESTDIR/usr/share will be built and in- |
destined to reside in DESTDIR/usr/share will be built and |
stalled during a build. If set to ``no'', then all of |
installed during a build. If set to ``no'', then all of |
MKCATPAGES, MKDOC, MKINFO, MKMAN, and MKNLS will be set to |
MKCATPAGES, MKDOC, MKINFO, MKMAN, and MKNLS will be set to |
``no'' unconditionally. |
``no'' unconditionally. |
|
|
Default: ``yes'' |
Default: ``yes'' |
|
|
MKUNPRIVED Can be set to ``yes'' or ``no''. Indicates whether an un- |
MKUNPRIVED Can be set to ``yes'' or ``no''. Indicates whether an |
privileged install will occur. The user, group, permissions, |
unprivileged install will occur. The user, group, permis- |
and file flags, will not be set on the installed item; in- |
sions, and file flags, will not be set on the installed item; |
stead the information will be appended to a file called |
instead the information will be appended to a file called |
METALOG in DESTDIR. The contents of METALOG is used during |
METALOG in DESTDIR. The contents of METALOG is used during |
the generation of the distribution tar files to ensure that |
the generation of the distribution tar files to ensure that |
the appropriate file ownership is stored. |
the appropriate file ownership is stored. |
|
|
Default: ``no'' |
Default: ``no'' |
|
|
MKUPDATE Can be set to ``yes'' or ``no''. Indicates whether all in- |
MKUPDATE Can be set to ``yes'' or ``no''. Indicates whether all |
stall operations intended to write to DESTDIR will compare |
install operations intended to write to DESTDIR will compare |
file timestamps before installing, and skip the install phase |
file timestamps before installing, and skip the install phase |
if the destination files are up-to-date. This also has im- |
if the destination files are up-to-date. This also has |
plications on full builds (see next subsection). |
implications on full builds (see next subsection). |
|
|
Default: ``no'' |
Default: ``no'' |
|
|
|
|
|
|
Default: ``yes'' if building all or part of a whole NetBSD |
Default: ``yes'' if building all or part of a whole NetBSD |
source tree (detected automatically); ``no'' otherwise (to |
source tree (detected automatically); ``no'' otherwise (to |
preserve traditional semantics of the <bsd.*.mk> make(1) in- |
preserve traditional semantics of the <bsd.*.mk> make(1) |
clude files). |
include files). |
|
|
"make" variables for full builds |
"make" variables for full builds |
These variables only affect the top level ``Makefile'' and do not affect |
These variables only affect the top level ``Makefile'' and do not affect |
|
|
|
|
Default: ``/'' |
Default: ``/'' |
|
|
MKOBJDIRS Can be set to ``yes'' or ``no''. Indicates whether ob- |
MKOBJDIRS Can be set to ``yes'' or ``no''. Indicates whether |
ject directories will be created automatically (via a |
object directories will be created automatically (via a |
``make obj'' pass) at the start of a build. |
``make obj'' pass) at the start of a build. |
|
|
Default: ``no'' |
Default: ``no'' |
|
|
|
|
NOINCLUDES If set, avoids the ``make includes'' phase of a full |
NOINCLUDES If set, avoids the ``make includes'' phase of a full |
build. This has the effect of preventing make(1) from |
build. This has the effect of preventing make(1) from |
thinking that some programs are out-of-date simply be- |
thinking that some programs are out-of-date simply |
cause the system include files have changed. However, |
because the system include files have changed. However, |
this option should not be used when updating the entire |
this option should not be used when updating the entire |
NetBSD source tree arbitrarily; it is suggested to use |
NetBSD source tree arbitrarily; it is suggested to use |
MKUPDATE=yes in that case. |
MKUPDATE=yes in that case. |
|
|
used most frequently with NetBSD builds are listed here. |
used most frequently with NetBSD builds are listed here. |
|
|
-j njob Run up to njob make(1) subjobs in parallel. Makefiles should |
-j njob Run up to njob make(1) subjobs in parallel. Makefiles should |
use .WAIT or have explicit dependancies as necessary to en- |
use .WAIT or have explicit dependancies as necessary to |
force build ordering. If you see build failures with -j, |
enforce build ordering. If you see build failures with -j, |
please save complete build logs so the failures can be ana- |
please save complete build logs so the failures can be ana- |
lyzed. |
lyzed. |
|
|
|
|
|
|
clean Remove program and library object code files. |
clean Remove program and library object code files. |
|
|
cleandir Same as clean, but also remove preformatted documentation, de- |
cleandir Same as clean, but also remove preformatted documentation, |
pendency files generated by ``make depend'', and any other |
dependency files generated by ``make depend'', and any other |
files known to be created at build time. ``make distclean'' |
files known to be created at build time. ``make distclean'' |
may be used as a synonym, for familiarity with a similar well- |
may be used as a synonym, for familiarity with a similar well- |
known convention. |
known convention. |
|
|
depend Create dependency files (.depend) containing more detailed in- |
depend Create dependency files (.depend) containing more detailed |
formation about the dependencies of source code on header |
information about the dependencies of source code on header |
files. Allows programs to be recompiled automatically when a |
files. Allows programs to be recompiled automatically when a |
dependency changes. |
dependency changes. |
|
|
|
|
This improves cache locality of the build since both passes |
This improves cache locality of the build since both passes |
read the source files in their entirety. |
read the source files in their entirety. |
|
|
includes Build and install system header files. Typically needed be- |
includes Build and install system header files. Typically needed |
fore any system libraries or programs can be built. |
before 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 DESTDIR/dev, DESTDIR/etc, |
Few files will be installed to DESTDIR/dev, DESTDIR/etc, |
|
|
sourcesets Create source sets of the source tree into |
sourcesets Create source sets of the source tree into |
RELEASEDIR/source/sets. |
RELEASEDIR/source/sets. |
|
|
release Do a ``make distribution'', build kernels, distribution me- |
release Do a ``make distribution'', build kernels, distribution |
dia, and install sets (this as per ``make sets''), and then |
media, and install sets (this as per ``make sets''), and |
package the system into a standard release layout as de- |
then package the system into a standard release layout as |
scribed by release(7). This requires that RELEASEDIR be |
described by release(7). This requires that RELEASEDIR be |
set (see above). |
set (see above). |
|
|
regression-tests |
regression-tests |
|
|
|
|
The following operations are supported by build.sh: |
The following operations are supported by build.sh: |
|
|
build Build the system as per ``make build''. This option im- |
build Build the system as per ``make build''. This option |
plies the obj and tools operations. |
implies the obj and tools operations. |
|
|
distribution Build a full distribution as per ``make distribution''. |
distribution Build a full distribution as per ``make distribution''. |
This option implies the build operation. |
This option implies the build operation. |
|
|
releasekernel=kconf |
releasekernel=kconf |
Install a gzip(1)ed copy of the kernel built by |
Install a gzip(1)ed copy of the kernel built by |
kernel=kconf into RELEASEDIR/MACHINE/binary/kernel, usually |
kernel=kconf into RELEASEDIR/MACHINE/binary/kernel, usually |
as netbsd-kconf.gz, although the ``netbsd'' prefix is de- |
as netbsd-kconf.gz, although the ``netbsd'' prefix is |
termined from the ``config'' directives in kconf. |
determined from the ``config'' directives in kconf. |
|
|
sets Perform ``make sets''. |
sets Perform ``make sets''. |
|
|
|
|
with an absolute path. |
with an absolute path. |
|
|
EXAMPLES |
EXAMPLES |
1. ./build.sh tools kernel=GENERIC |
1. % ./build.sh tools kernel=GENERIC |
|
|
Build a new toolchain, and use the new toolchain to configure and |
Build a new toolchain, and use the new toolchain to configure and |
build a new GENERIC kernel. |
build a new GENERIC kernel. |
|
|
2. ./build.sh -U distribution |
2. % ./build.sh -U distribution |
|
|
Using unprivileged mode, build a complete distribution to a DESTDIR |
Using unprivileged mode, build a complete distribution to a DESTDIR |
directory that build.sh selects (and will display). |
directory that build.sh selects (and will display). |
|
|
sions stored in DESTDIR/METALOG are correctly applied to the files |
sions stored in DESTDIR/METALOG are correctly applied to the files |
as they're copied to /. |
as they're copied to /. |
|
|
4. ./build.sh -U -u release |
4. % ./build.sh -U -u release |
|
|
Using unprivileged mode, build a complete release to DESTDIR and |
Using unprivileged mode, build a complete release to DESTDIR and |
RELEASEDIR directories that build.sh selects (and will display). |
RELEASEDIR directories that build.sh selects (and will display). |