BUILDING: update from canonical mk.conf(5)

Incorporate content and styles updates for mk.conf entries
from share/man/man5/mk.conf.5, which is the canonical
reference for mk.conf.

Add: BSDOBJDIR, BSDSRCDIR, EXTERNAL_TOOLCHAIN, MKDEBUGKERNEL,
MKDEBUGTOOLS, MKHTML, MKLINKLIB, MKOBJDIRS, TOOLCHAIN_MISSING,
NETBSDSRCDIR

It's for further study as to whether we just replace the
most of subsection "make" variables with a link to mk.conf(5).

Style:
- Add more .de macros per mk.conf.5.
- Order list items alphabetically. When multiple items are present
  in a list item, sort within the item first.
- More cross-references.
This commit is contained in:
lukem 2023-06-04 20:08:21 +00:00
parent 30ca5a4aab
commit f26a4cc930
2 changed files with 920 additions and 487 deletions

852
BUILDING

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
.\" $NetBSD: BUILDING.mdoc,v 1.139 2023/06/02 20:48:41 lukem Exp $
.\" $NetBSD: BUILDING.mdoc,v 1.140 2023/06/04 20:08:21 lukem Exp $
.\"
.\" Copyright (c) 2001-2023 The NetBSD Foundation, Inc.
.\" All rights reserved.
@ -33,9 +33,11 @@
.\" Toolchain prefix for commands
.ds toolprefix nb
.
.Dd May 18, 2023
.Dd June 4, 2023
.Dt BUILDING 8
.Os NetBSD
.\" turn off hyphenation
.hym 999
.
.\" if this file is processed with real roff (doc.tmac)
.\" now that the tmac files have been lazily read,
@ -86,12 +88,12 @@ to override or manually select your compilers.)
.Ss Source tree layout
.
.Bl -tag -width "BUILDING.mdoc"
.It Pa doc/BUILDING.mdoc
This document (in -mdoc troff format; the original copy).
.
.It Pa BUILDING
This document (in plaintext).
.It Pa tools/compat/README
Special notes for cross-hosting a NetBSD build on non-NetBSD platforms.
Generated from
.Pa doc/BUILDING.mdoc .
.
.It Pa Makefile
The main Makefile for
.Nx ;
@ -104,11 +106,13 @@ it has been superseded by the
.Nm build.sh
shell script as the recommended means for building
.Nx .
.
.It Pa UPDATING
Special notes for updating from an earlier revision of
.Nx .
It is important to read this file before every build of an updated
source tree.
.
.It Pa build.sh
Bourne-compatible shell script used for building the host build tools
and the
@ -119,6 +123,7 @@ Can be used for both native and cross builds, and should be used instead of
as it performs additional checks to prevent common issues going undetected, such
as building with an outdated version of
.Xr make 1 .
.
.It Pa crypto/dist/ , dist/ , gnu/dist/
Sources imported verbatim from third parties, without mangling the
existing build structure.
@ -131,6 +136,18 @@ use the
.Xr make 1
.Dq reachover
Makefile semantics when building these programs for a native host.
.
.It Pa distrib/ , etc/
Sources for items used when making a full release snapshot, such as
files installed in
.Sy DESTDIR Ns Pa /etc
on the destination system, boot media, and release notes.
.
.It Pa doc/BUILDING.mdoc
This document, in -mdoc troff format; the original copy.
Used to generate
.Pa BUILDING .
.
.It Pa external , sys/external
Sources and build infrastructure for components imported (mostly) unchanged
from upstream maintainers, sorted by applicable license.
@ -140,12 +157,13 @@ This is (slowly) replacing the
and
.Pa gnu/dist
directories.
.It Pa distrib/ , etc/
Sources for items used when making a full release snapshot, such as
files installed in
.Sy DESTDIR Ns Pa /etc
on the destination system, boot media, and release notes.
.It Pa tests/ , regress/
.
.It Pa external/mit/xorg/
.Dq Reachover
build structure for modular Xorg; the source is in
.Sy X11SRCDIR .
.
.It Pa regress/ , tests/
Regression test harness.
Can be cross-compiled, but only run natively.
.Pa tests/
@ -155,22 +173,25 @@ test framework;
.Pa regress/
contains older tests that have not yet been migrated to
.Xr atf 7 .
.
.It Pa sys/
.Nx
kernel sources.
.
.It Pa tools/
.Dq Reachover
build structure for the host build tools.
This has a special method of determining out-of-date status.
.It Pa bin/ ... usr.sbin/
.
.It Pa tools/compat/README
Special notes for cross-hosting a NetBSD build on non-NetBSD platforms.
.
.It Other directories including Pa bin/ ... usr.sbin/
Sources to the
.Nx
userland (non-kernel) programs.
If any of these directories are missing, they will be skipped during the build.
.It Pa external/mit/xorg/
.Dq Reachover
build structure for modular Xorg; the source is in
.Sy X11SRCDIR .
.
.El
.
.Ss Build tree layout
@ -186,16 +207,14 @@ and the release layout is described in
.
.Ss Environment variables
.
.de YorN
Can be set to
.Dq yes
or
.Dq no .
..
.de DFLT
.Pp
.Em Default :
..
.de DFLTn
.DFLT
.Dq no
..
.de DFLTu
.DFLT
Unset.
@ -204,16 +223,49 @@ Unset.
.DFLT
.Dq yes
..
.de DFLTn
.DFLT
.de NODEF
.Pp
Forced to
.Dq no
if
.Sy \\$*
is defined,
usually in the Makefile before any
.Xr make 1
.Cm \&.include
directives.
..
.de NOVAR
.Pp
Forced to
.Dq no
if
.Sy \\$* .
..
.de YorN
Can be set to
.Dq yes
or
.Dq no .
..
.
Several environment variables control the behaviour of
.Nx
builds.
.
.Bl -tag -width "MAKEOBJDIRPREFIX"
.Bl -tag -width 15n
.
.It Sy HOST_CC
Path name to C compiler used to create the toolchain.
.
.It Sy HOST_CFLAGS
Flags passed to the host C compiler.
.
.It Sy HOST_CXX
Path name to C++ compiler used to create the toolchain.
.
.It Sy HOST_CXXFLAGS
Flags passed to the host C++ compiler.
.
.It Sy HOST_SH
Path name to a shell available on the host system
@ -246,18 +298,6 @@ allows it to be a simple command name, which will be converted
to an absolute path by searching the
.Sy PATH .
.
.It Sy HOST_CC
Path name to C compiler used to create the toolchain.
.
.It Sy HOST_CFLAGS
Flags passed to the host C compiler.
.
.It Sy HOST_CXX
Path name to C++ compiler used to create the toolchain.
.
.It Sy HOST_CXXFLAGS
Flags passed to the host C++ compiler.
.
.It Sy INSTALLBOOT_UBOOT_PATHS
A colon-separated list of search paths used by
.Xr installboot 8
@ -294,7 +334,8 @@ Only settable in the process environment.
Flags to invoke
.Xr make 1
with.
Note that
.Pp
.Em Note :
.Sy build.sh
ignores the value of
.Sy MAKEFLAGS
@ -398,11 +439,31 @@ configuration file
.Xr mk.conf 5
specified by
.Sy MAKECONF .
.Pp
This list is not comprehensive;
all supported variables and their defaults are documented in
.Xr mk.conf 5 .
.
.Bl -tag -width "MKCATPAGES"
.Bl -tag -width 15n
.
.\" These entries are sorted alphabetically.
.\" Keep in sync with canonical reference share/man/man5/mk.conf.5.
.
.It Sy BSDOBJDIR
The real path to the object directory tree for the
.Nx
source tree.
.DFLT
.Dq Pa /usr/obj
.
.It Sy BSDSRCDIR
The real path to the
.Nx
source tree, if
.Sy NETBSDSRCDIR
isn't defined.
.DFLT
.Dq Pa /usr/src
.
.It Sy BUILDID
Identifier for the build.
@ -419,7 +480,7 @@ which can be shown by
.DFLTu
.
.It Sy BUILDINFO
This may be a multi-line string containing information about the build.
Optional multi-line string containing information about the build.
This will appear in
.Sy DESTDIR Ns Pa /etc/release ,
and it will be stored in the
@ -438,14 +499,22 @@ and
.DFLTu
.
.It Sy BUILDSEED
GCC uses random numbers when compiling C++ code.
This variable seeds the gcc random number generator using
the -frandom-seed flag with this value.
By default, it is set to NetBSD-(majorversion).
.Xr g++ 1
uses random numbers when compiling C++ code.
This variable seeds the
.Xr g++ 1
random number generator using
.Fl frandom-seed
with this value.
By default, it is set to
.Do NetBSD-( Ns Em majorversion ) Dc .
Using a fixed value causes C++ binaries to be the same when
built from the same sources, resulting in identical (reproducible) builds.
Additional information is available in the GCC
documentation of -frandom-seed.
Additional information is available in the
.Xr g++ 1
documentation of
.Fl frandom-seed .
.DFLTu
.
.It Sy CPUFLAGS
Additional flags to the compiler/assembler to select
@ -471,12 +540,6 @@ to an empty string, not to
.Dq / ) .
The directory must reside on a file system which supports long file
names and hard links.
.DFLT
Empty string if
.Sy USETOOLS
is
.Dq yes ;
unset otherwise.
.Pp
.Em Note :
.Sy build.sh
@ -487,11 +550,45 @@ will provide a default of
unless run in
.Sq expert
mode.
.DFLT
Empty string if
.Sy USETOOLS
is
.Dq yes ;
unset otherwise.
.
.It Sy EXTERNAL_TOOLCHAIN
If defined, this variable indicates the root directory of
an external toolchain which will be used to build the tree.
For example, if a platform is a
.Sy TOOLCHAIN_MISSING
platform,
.Sy EXTERNAL_TOOLCHAIN
can be used to re-enable the cross-compile framework.
.Pp
If
.Sy EXTERNAL_TOOLCHAIN
is defined, act as
.Sy MKGCC=no ,
since the external version of the compiler may not be
able to build the library components of the in-tree compiler.
.Pp
This variable should be used in conjunction with an appropriate
.Sy HAVE_GCC
or
.Sy HAVE_LLVM
setting to control the compiler flags.
.Pp
.Em Note :
This variable is not yet used in as many places as it should be.
Expect the exact semantics of this variable to change in the short
term as parts of the cross-compile framework continue to be cleaned up.
.DFLTu
.
.It Sy MAKEVERBOSE
Level of verbosity of status messages.
Supported values:
.Bl -tag -width xxx
.Bl -tag -width 2n
.It 0
No descriptive messages or commands executed by
.Xr make 1
@ -528,7 +625,8 @@ flag.
.It Sy MKCATPAGES
.YorN
Indicates whether preformatted plaintext manual pages will be created
during a build.
and installed.
.NOVAR MKMAN=no No or Sy MKSHARE=no
.DFLTn
.
.It Sy MKCROSSGDB
@ -538,34 +636,57 @@ Create a cross-gdb as a host tool.
.
.It Sy MKDEBUG
.YorN
Indicates whether debug information should be generated for all userland
binaries compiled.
Indicates whether debug information should be generated for
all userland binaries.
The result is collected as an additional
.Sy debug.tgz
and
.Sy xdebug.tgz
set and installed in
.Pa /usr/libdata/debug .
.Sy DESTDIR Ns Pa /usr/libdata/debug .
.NODEF NODEBUG
.DFLTn
.
.It Sy MKDEBUGKERNEL
.YorN
Indicates whether debugging symbols will be built for kernels
by default; pretend as if
.Em makeoptions DEBUG="-g"
is specified in kernel configuration files.
This will also put the debug kernel
.Pa netbsd.gdb
in the kernel sets.
See
.Xr options 4
for details.
This is useful if a cross-gdb is built as well (see
.Sy MKCROSSGDB ) .
.DFLTn
.
.It Sy MKDEBUGLIB
.YorN
Indicates whether debug information (see
.Sy MKDEBUG )
should also be generated for all libraries built.
Indicates whether debug libraries
.Sy ( lib*_g.a )
will be built and installed.
Debug libraries are compiled with
.Dq Li -g -DDEBUG .
.NODEF NODEBUGLIB
.DFLTn
.
.It Sy MKDEBUGTOOLS
.YorN
Indicates whether debug information
.Sy ( lib*_g.a )
will be included in the build toolchain.
.DFLTn
.
.It Sy MKDOC
.YorN
Indicates whether system documentation destined for
.Sy DESTDIR Ns Pa /usr/share/doc
will be installed during a build.
.DFLTy
.
.It Sy MKHTML
.YorN
Indicates whether preformatted HTML manual pages will be built
and installed
will be installed.
.NODEF NODOC
.NOVAR MKSHARE=no
.DFLTy
.
.It Sy MKHOSTOBJ
@ -583,28 +704,61 @@ then programs built to be run on the compile host will use the same
object directory names as programs built to be run on the target.
.DFLTn
.
.It Sy MKHTML
.YorN
Indicates whether the HTML manual pages are created and installed.
and installed
.NODEF NOHTML
.NOVAR MKMAN=no No or Sy MKSHARE=no
.DFLTy
.
.It Sy MKINFO
.YorN
Indicates whether GNU Info files will be created and installed during a build.
GNU Info files are used for providing documentation by most of the compilation
tools.
Indicates whether GNU Info files, used for the documentation for
most of the compilation tools, will be built and installed.
.NODEF NOINFO
.NOVAR MKSHARE=no
.DFLTy
.
.It Sy MKKDEBUG
.YorN
Force generation of full-debug symbol versions of all kernels compiled.
Alongside of the
.Pa netbsd
kernel file, an unstripped version
.Pa netbsd.gdb
is created.
This is useful if a cross-gdb is built as well (see
.Sy MKCROSSGDB ) .
.DFLTn
Deprecated, use
.Sy MKDEBUGKERNEL .
.
.It Sy MKKMOD
.YorN
Indicates whether kernel modules are built and installed.
.DFLTn
on
.Sy or1k ;
.Dq yes
on other platforms.
.
.It Sy MKLINKLIB
.YorN
Indicates whether all of the shared library infrastructure
will be built and installed.
If
.Dq no ,
prevents:
installation of the
.Sy *.a
libraries,
installation of the
.Sy *_pic.a
libraries on PIC systems,
building of
.Sy *.a
libraries on PIC systems,
or
installation of
.Sy .so
symlinks on ELF systems.
.NODEF NOLINKLIB
.Pp
If
.Dq no ,
acts as
.Sy MKLINT=no MKPICINSTALL=no MKPROFILE=no .
.DFLTy
.
.It Sy MKLINT
@ -616,17 +770,28 @@ will be run against portions of the
source code during the build, and whether lint libraries will be
installed into
.Sy DESTDIR Ns Pa /usr/libdata/lint .
.NODEF NOLINT
.NOVAR MKLINKLIB=no
.DFLTn
.
.It Sy MKMAN
.YorN
Indicates whether manual pages will be installed during a build.
Indicates whether manual pages will be installed.
.NODEF NOMAN
.NOVAR MKSHARE=no
.Pp
If
.Dq no ,
acts as
.Sy MKCATPAGES=no MKHTML=no .
.DFLTy
.
.It Sy MKNLS
.YorN
Indicates whether Native Language System locale zone files will be
compiled and installed during a build.
Indicates whether Native Language System (NLS) locale zone files will be
built and installed.
.NODEF NONLS
.NOVAR MKSHARE=no
.DFLTy
.
.It Sy MKOBJ
@ -636,28 +801,49 @@ Indicates whether object directories will be created when running
If set to
.Dq no ,
then all built files will be located inside the regular source tree.
.DFLTy
.NODEF NOOBJ
.Pp
Note that setting
If
.Dq no ,
acts as
.Sy MKOBJDIRS=no .
.Pp
.Em Note :
Setting
.Sy MKOBJ
to
.Dq no
is not recommended and may cause problems when updating the tree with
.Xr cvs 1 .
.DFLTy
.
.It Sy MKOBJDIRS
.YorN
Indicates whether object directories will be created automatically
(via a
.Dq make obj
pass) at the start of a build.
.NOVAR MKOBJ=no
.DFLTn
.
.It Sy MKPIC
.YorN
Indicates whether shared objects and libraries will be created and
installed during a build.
If set to
installed.
If
.Dq no ,
the entire built system will be statically linked.
.DFLT
Platform dependent.
As of this writing, all platforms except
.Sy m68000
default to
.Dq yes .
.NODEF NOPIC
.Pp
If
.Dq no ,
acts as
.Sy MKPICLIB=no .
.DFLTn
on
.Sy m68000 ;
.Dq yes
on other platforms.
.
.It Sy MKPICINSTALL
.YorN
@ -665,26 +851,40 @@ Indicates whether the
.Xr ar 1
format libraries
.Sy ( lib*_pic.a ) ,
used to generate shared libraries, are installed during a build.
.DFLTy
used to generate shared libraries, are installed.
.NODEF NOPICINSTALL
.NOVAR MKLINKLIB=no
.DFLTn
.
.It Sy MKPROFILE
.YorN
Indicates whether profiled libraries
.Sy ( lib*_p.a )
will be built and installed during a build.
.DFLT
.Dq yes ;
however, some platforms turn off
.Sy MKPROFILE
by default at times due to toolchain problems with profiled code.
will be built and installed.
.NODEF NOPROFILE
.NOVAR MKLINKLIB=no
.DFLTn
on
.Sy or1k ,
.Sy riscv32 ,
and
.Sy riscv64
(due to toolchain problems with profiled code);
.Dq yes
on other platforms.
.
.It Sy MKREPRO
.YorN
Create reproducible builds.
This enables different switches to make two builds from the same
source tree result in the same build results.
.DFLTn
Indicates whether builds are to be reproducible.
If
.Dq yes ,
two builds from the same source tree will produce the same build
results.
.Pp
Used as the default for
.Sy MKARZERO .
.Pp
.\" Note: This paragraph is not in share/man/man5/mk.conf.5.
This may be set to
.Dq yes
by giving
@ -692,6 +892,8 @@ by giving
the
.Fl P
option.
.DFLTn
.YorN
.
.It Sy MKREPRO_TIMESTAMP
Unix timestamp.
@ -699,7 +901,8 @@ When
.Sy MKREPRO
is set, the timestamp of all files in the sets will be set
to this value.
.DFLTu
.Pp
.\" Note: This paragraph is not in share/man/man5/mk.conf.5.
This may be set automatically to the latest source tree timestamp
using
.Xr cvslatest 1
@ -708,21 +911,19 @@ by giving
the
.Fl P
option.
.DFLTu
.
.It Sy MKSHARE
.YorN
Indicates whether files destined to reside in
.Sy DESTDIR Ns Pa /usr/share
will be built and installed during a build.
If set to
will be built and installed.
.NODEF NOSHARE
.Pp
If
.Dq no ,
then all of
.Sy MKCATPAGES , MKDOC , MKINFO , MKMAN ,
and
.Sy MKNLS
will be set to
.Dq no
unconditionally.
acts as
.Sy MKCATPAGES=no MKDOC=no MKINFO=no MKHTML=no MKMAN=no MKNLS=no .
.DFLTy
.
.It Sy MKSTRIPIDENT
@ -741,7 +942,7 @@ strip all local symbols from shared libraries;
the affect is equivalent to the
.Fl x
option of
.Xr ld 1 .
.Xr ld 1 .
If
.Dq no ,
strip only temporary local symbols; the affect is equivalent
@ -776,15 +977,50 @@ Indicates whether all install operations intended to write to
.Sy DESTDIR
will compare file timestamps before installing, and skip the install
phase if the destination files are up-to-date.
.Pp
.\" Note: This paragraph is not in share/man/man5/mk.conf.5.
.Em Note :
This also has implications on full builds (see next subsection).
.DFLTn
.
.It Sy MKX11
.YorN
Indicates whether X11 is built from
Indicates whether X11 is built and installed from
.Sy X11SRCDIR .
.DFLTn
.
.It Sy NETBSDSRCDIR
The path to the top level of the
.Nx
sources.
.DFLT
Top level of the
.Nx
source tree (as determined by the presence of
.Pa build.sh
and
.Pa tools/ )
if
.Xr make 1
is run from within that tree;
otherwise
.Sy BSDSRCDIR
will be used.
.
.It Sy TOOLCHAIN_MISSING
.YorN
If not
.Dq no ,
this indicates that the platform
.Dq Sy MACHINE_ARCH
being built does not have a working in-tree toolchain.
.Pp
If not
.Dq no ,
acts as
.Sy MKBINUTILS=no MKGCC=no MKGDB=no .
.DFLTn
.
.It Sy TOOLDIR
Directory to hold the host tools, once built.
If specified, must be an absolute path.
@ -803,6 +1039,7 @@ of
.DFLTu
.
.It Sy USETOOLS
.YorN
Indicates whether the tools specified by
.Sy TOOLDIR
should be used as part of a build in progress.
@ -810,15 +1047,15 @@ Must be set to
.Dq yes
if cross-compiling.
.Bl -tag -width "never"
.It Sy yes
.It yes
Use the tools from
.Sy TOOLDIR .
.It Sy no
.It no
Do not use the tools from
.Sy TOOLDIR ,
but refuse to build native compilation tool components that are
version-specific for that tool.
.It Sy never
.It never
Do not use the tools from
.Sy TOOLDIR ,
even when building native tool components.
@ -832,21 +1069,15 @@ This may cause build or runtime problems when building the whole
.Nx
source tree.
.El
.DFLT
.Dq yes ,
unless
.Sy TOOLCHAIN_MISSING
is set to
.Dq yes .
.Pp
.Sy USETOOLS
is also set to
.Dq no
.DFLTn
when using
.Aq bsd.*.mk
outside the
.Nx
source tree.
source tree (detected automatically) or if
.Sy TOOLCHAIN_MISSING=yes ;
.Dq yes
otherwise.
.
.It Sy X11SRCDIR
Directory containing the modular Xorg source.
@ -868,7 +1099,7 @@ and do not affect manually building subtrees of the
.Nx
source code.
.
.Bl -tag -width "INSTALLWORLDDIR"
.Bl -tag -width 15n
.
.It Sy INSTALLBOOT_BOARDS
A list of boards to create bootable images for.
@ -981,7 +1212,6 @@ If set, specifies the directory to which a
layout will be written at the end of a
.Dq make release .
If specified, must be an absolute path.
.DFLTu
.Pp
.Em Note :
.Sy build.sh
@ -992,6 +1222,7 @@ will provide a default of
unless run in
.Sq expert
mode.
.DFLTu
.
.El
.
@ -1270,7 +1501,8 @@ is attempted, RELEASEDIR must be populated by
.Dq make release
or equivalent.
.Pp
Note that other, smaller, CD-ROM images may be created in the
.Em Note :
Other, smaller, CD-ROM images may be created in the
.Sy RELEASEDIR/RELEASEMACHINEDIR Ns Pa /installation/cdrom
directory by
.Dq "make release" .
@ -1278,7 +1510,8 @@ These smaller images usually contain the same tools as the larger images in
.Sy RELEASEDIR Ns Pa /images ,
but do not contain additional content such as the distribution sets.
.Pp
Note that the mac68k port still uses an older method of creating
.Em Note :
The mac68k port still uses an older method of creating
CD-ROM images.
This requires the
.Xr mkisofs 1
@ -1314,7 +1547,8 @@ is attempted, RELEASEDIR must be populated by
.Dq make sourcesets release
or equivalent.
.Pp
Note that other, smaller, CD-ROM images may be created in the
.Em Note :
Other, smaller, CD-ROM images may be created in the
.Sy RELEASEDIR/RELEASEMACHINEDIR Ns Pa /installation/cdrom
directory by
.Dq make release .
@ -1322,7 +1556,8 @@ These smaller images usually contain the same tools as the larger images in
.Sy RELEASEDIR Ns Pa /images ,
but do not contain additional content such as the distribution sets.
.Pp
Note that the mac68k port still uses an older method of creating
.Em Note :
The mac68k port still uses an older method of creating
CD-ROM images.
This requires the
.Xr mkisofs 1
@ -1406,7 +1641,9 @@ relies on information in
Can only be run after building the regression tests in the directory
.Dq regress .
Runs those compiled regression tests on the local host.
Note that most tests are now managed instead using
.Pp
.Em Note :
Most tests are now managed instead using
.Xr atf 7 ;
this target should probably run those as well but currently does not.
.
@ -1556,7 +1793,9 @@ to
.Ar idir ,
using
.Dq make installworld .
Note that files that are part of the
.Pp
.Em Note :
Files that are part of the
.Dq etc
or
.Dq xetc
@ -1947,7 +2186,8 @@ it is determined by complex rules that are influenced
by the values of several variables and
by the location of the source directory.
.Pp
Note that placing the
.Em Note :
Placing the
.Ar obj
directory location outside of the default source tree hierarchy makes
it easier to manually clear out old files in the event the
@ -1957,7 +2197,8 @@ operation is unable to do so.
.Sx CAVEATS
below.)
.Pp
Note also that use of one of
.Em Note :
The use of one of
.Fl M
or
.Fl O
@ -2055,7 +2296,8 @@ specified by
This allows, for instance, to place the wrapper in
.Sy PATH
automatically.
Note that
.Pp
.Em Note :
.Ar wrapper
is the full name of the file, not just a directory name.
If a relative path is specified, it will be converted to an
@ -2124,13 +2366,13 @@ or called with an absolute path.
.Bl -enum
.
.It
.Li "% ./build.sh [options] tools kernel=GENERIC"
.Li "% ./build.sh [OPTIONS] tools kernel=GENERIC"
.Pp
Build a new toolchain, and use the new toolchain to
configure and build a new GENERIC kernel.
.
.It
.Li "% ./build.sh [options] -U distribution"
.Li "% ./build.sh [OPTIONS] -U distribution"
.Pp
Using unprivileged mode,
build a complete distribution to a
@ -2140,7 +2382,7 @@ directory that
selects (and will show).
.
.It
.Li "# ./build.sh [options] -U install=/"
.Li "# ./build.sh [OPTIONS] -U install=/"
.Pp
As root, install to
.Pa /
@ -2154,7 +2396,7 @@ are correctly applied to the files as they're copied to
.Pa / .
.
.It
.Li "% ./build.sh [options] -U -u release"
.Li "% ./build.sh [OPTIONS] -U -u release"
.Pp
Using unprivileged mode,
build a complete release to
@ -2189,13 +2431,32 @@ To disable, use
.Sy TOOLCHAIN_MISSING=yes .
.El
.Sh SEE ALSO
.Xr ar 1 ,
.Xr config 1 ,
.Xr ctags 1 ,
.Xr cvs 1 ,
.Xr cvslatest 1 ,
.Xr ex 1 ,
.Xr g++ 1 ,
.Xr gzip 1 ,
.Xr ident 1 ,
.Xr ld 1 ,
.Xr lint 1 ,
.Xr make 1 ,
.Xr mkisofs 1 ,
.Xr sh 1 ,
.Xr uname 1 ,
.Xr vi 1 ,
.Xr options 4 ,
.Xr mk.conf 5 ,
.Xr atf 7 ,
.Xr hier 7 ,
.Xr release 7 ,
.Xr sysctl 7 ,
.Xr etcupdate 8 ,
.Xr installboot 8 ,
.Xr mount 8 ,
.Xr mtree 8 ,
.Xr postinstall 8 ,
.Xr sysinst 8 ,
.Pa pkgsrc/sysutils/cdrtools