Module Name:    src
Committed By:   lukem
Date:           Sun Jun 11 20:34:14 UTC 2023

Modified Files:
        src: BUILDING
        src/doc: BUILDING.mdoc

Log Message:
BUILDING: remove duplication from mk.conf(5)

Remove all "make" variables / mk.conf(5) variables already documented
in mk.conf(5).  The duplication was a maintenance headache, as I've
experienced over recent weeks getting the build documentation up to
date.

Add notes clarifying that manual page references are to the NetBSD
manual pages, not to the host manual pages, and how to format from
source, or find online at https://man.netbsd.org.

Add explicit links to the mdoc(7) in-tree source for mk.conf(5),
hier(7), and release(7) because those are directly relevant to the host
build information in BUILDING.

Note: We don't normally need these notes for native documentation,
but BUILDING is intended for users on host systems which might not
be NetBSD(-current).

Add missing defaults.


To generate a diff of this commit:
cvs rdiff -u -r1.154 -r1.155 src/BUILDING
cvs rdiff -u -r1.143 -r1.144 src/doc/BUILDING.mdoc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/BUILDING
diff -u src/BUILDING:1.154 src/BUILDING:1.155
--- src/BUILDING:1.154	Sun Jun 11 10:49:43 2023
+++ src/BUILDING	Sun Jun 11 20:34:14 2023
@@ -16,6 +16,13 @@ REQUIREMENTS
      the NetBSD build process.  (See the Environment variables section below
      if you need to override or manually select your compilers.)
 
+     Note: Within this document, cross-references to manual pages are to the
+     NetBSD manual pages, not the host system manual pages.  The mdoc(7)
+     source to the NetBSD manual pages can be found within the source tree,
+     and these and can be formatted with mandoc(1) or nroff(1) if those are
+     available on the host system.  The NetBSD manual pages are also available
+     at https://man.netbsd.org
+
 FILES
    Source tree layout
      BUILDING       This document (in plaintext).  Generated from
@@ -51,8 +58,8 @@ FILES
                     destination system, boot media, and release notes.
 
      doc/BUILDING.mdoc
-                    This document, in -mdoc troff format; the original copy.
-                    Used to generate BUILDING.
+                    The source to this document, in mdoc(7) format.  Used to
+                    generate BUILDING.
 
      external, sys/external
                     Sources and build infrastructure for components imported
@@ -86,8 +93,9 @@ FILES
                     during the build.
 
    Build tree layout
-     The NetBSD build tree is described in hier(7), and the release layout is
-     described in release(7).
+     The NetBSD build tree is described in hier(7) (mdoc(7) source in
+     share/man/man7/hier.7), and the release layout is described in release(7)
+     (mdoc(7) source in share/man/man7/release.7).
 
 CONFIGURATION
    Environment variables
@@ -95,12 +103,24 @@ CONFIGURATION
 
      HOST_CC         Path name to C compiler used to create the toolchain.
 
+                     Default: "cc".
+
      HOST_CFLAGS     Flags passed to the host C compiler.
 
+                     Default: "-O".
+
+     HOST_CPPFLAGS   Flags passed to the host C/C++ pre-processor.
+
+                     Default: Unset.
+
      HOST_CXX        Path name to C++ compiler used to create the toolchain.
 
+                     Default: Unset, but defaults to "c++" where required.
+
      HOST_CXXFLAGS   Flags passed to the host C++ compiler.
 
+                     Default: Unset.
+
      HOST_SH         Path name to a shell available on the host system and
                      suitable for use during the build.  The NetBSD build
                      system requires a modern Bourne-like shell with POSIX-
@@ -119,22 +139,32 @@ CONFIGURATION
                      name, which will be converted to an absolute path by
                      searching the PATH.
 
+                     Default: "sh".
+
      INSTALLBOOT_UBOOT_PATHS
                      A colon-separated list of search paths used by
                      installboot(8) to find U-Boot packages.
 
+                     Default: Unset.
+
      MACHINE         Machine type, e.g., "macppc".
 
+                     Default: Unset.
+
      MACHINE_ARCH    Machine architecture, e.g., "powerpc".
 
+                     Default: Unset.
+
      MAKE            Path name to invoke make(1) as.
 
+                     Default: "make".
+
      MAKECONF        The name of the make(1) configuration file.  See "make"
                      variables and mk.conf(5).
 
                      Note: Only settable in the process environment.
 
-                     Default: "/etc/mk.conf"
+                     Default: "/etc/mk.conf".
 
      MAKEFLAGS       Flags to invoke make(1) with.
 
@@ -142,6 +172,9 @@ CONFIGURATION
                      the environment, but allows MAKEFLAGS to be set via the
                      -V option.
 
+                     Default: "-X" on systems with a small ARG_MAX (Cygwin,
+                     Darwin, FreeBSD); otherwise unset.
+
      MAKEOBJDIR      Directory to use as the .OBJDIR for the current
                      directory.  The value is subjected to variable expansion
                      by make(1).  Typical usage is to set this variable to a
@@ -154,6 +187,8 @@ CONFIGURATION
                      or via the -O flag of build.sh; it cannot usefully be set
                      inside a Makefile, including in mk.conf(5) or MAKECONF.
 
+                     Default: Unset.
+
      MAKEOBJDIRPREFIX
                      Top level directory of the object directory tree.  The
                      value is subjected to variable expansion by make(1).
@@ -171,6 +206,8 @@ CONFIGURATION
                      usefully be set inside a Makefile, including in
                      mk.conf(5) or MAKECONF.
 
+                     Default: Unset.
+
      TMPDIR          Top-level directory to store temporary directories used
                      by build.sh before paths to other directories such as
                      .OBJDIR can be determined.
@@ -181,539 +218,12 @@ CONFIGURATION
                      Default: "/tmp".
 
    "make" variables
-     Several variables control the behavior of NetBSD builds.  Unless
-     otherwise specified, these variables may be set in either the process
-     environment or the make(1) configuration file mk.conf(5) specified by
-     MAKECONF.
-
-     This list is not comprehensive; all supported variables and their
-     defaults are documented in mk.conf(5).
-
-     BSDOBJDIR       The real path to the object directory tree for the NetBSD
-                     source tree.
-
-                     Default: "/usr/obj"
-
-     BSDSRCDIR       The real path to the NetBSD source tree, if NETBSDSRCDIR
-                     isn't defined.
-
-                     Default: "/usr/src"
-
-     BUILDID         Identifier for the build.  If set, this should be a short
-                     string that is suitable for use as part of a file or
-                     directory name.  The identifier will be appended to
-                     object directory names, and can be consulted in the
-                     make(1) configuration file in order to set additional
-                     build parameters, such as compiler flags.  It will also
-                     be used as part of the kernel version string, which can
-                     be shown by "uname -v".
-
-                     Default: Unset.
-
-     BUILDINFO       Optional multi-line string containing information about
-                     the build.  This will appear in DESTDIR/etc/release, and
-                     it will be stored in the buildinfo variable in any
-                     kernels that are built.  When such kernels are booted,
-                     the sysctl(7) kern.buildinfo variable will report this
-                     value.  The string may contain backslash escape
-                     sequences, such as "\\" (representing a backslash
-                     character) and "\n" (representing a newline).
-
-                     Default: Unset.
-
-     BUILDSEED       g++(1) uses random numbers when compiling C++ code.  This
-                     variable seeds the g++(1) random number generator using
-                     -frandom-seed with this value.  By default, it is set to
-                     "NetBSD-(majorversion)".  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 g++(1) documentation of
-                     -frandom-seed.
-
-                     Default: Unset.
-
-     COPTS           Extra options for the C compiler.  Should be appended to
-                     (e.g., COPTS+=-g), rather than explicitly set.
-
-                     Note: CPUFLAGS, not COPTS, should be used for compiler
-                     flags that select CPU-related options.
-
-                     Note: CFLAGS should never be set in mk.conf(5).
-
-     CPUFLAGS        Additional options passed to the compiler/assembler to
-                     select CPU instruction set options, CPU tuning options,
-                     etc.
-
-                     Note: Such options should not be specified in COPTS,
-                     because some parts of the build process need to override
-                     CPU-related compiler options.
-
-                     Default: Unset.
-
-     DESTDIR         Directory to contain the built NetBSD system.  If set,
-                     special options are passed to the compilation tools to
-                     prevent their default use of the host system's
-                     /usr/include, /usr/lib, and so forth.  This pathname must
-                     be an absolute path, and should not end with a slash (/)
-                     character.  (For installation into the system's root
-                     directory, set DESTDIR to an empty string, not to "/").
-                     The directory must reside on a file system which supports
-                     long file names and hard links.
-
-                     Note: build.sh will provide a default of
-                     "destdir.MACHINE" (in the top-level .OBJDIR) unless run
-                     in `expert' mode.
-
-                     Default: Empty string if USETOOLS=yes; unset otherwise.
-
-     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 TOOLCHAIN_MISSING
-                     platform, EXTERNAL_TOOLCHAIN can be used to re-enable the
-                     cross-compile framework.
-
-                     If EXTERNAL_TOOLCHAIN is defined, act as MKGCC=no, since
-                     the external version of the compiler may not be able to
-                     build the library components of the in-tree compiler.
-
-                     This variable should be used in conjunction with an
-                     appropriate HAVE_GCC or HAVE_LLVM setting to control the
-                     compiler flags.
-
-                     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.
-
-                     Default: Unset.
-
-     INSTALLBOOT_BOARDS
-                     A list of evbarm boards to create bootable images for.
-                     If corresponding U-Boot packages are installed, bootable
-                     images are created as part of a release.  See the
-                     -o board=name option of installboot(8).
-
-     INSTALLWORLDDIR
-                     Location for the top-level "make installworld" target to
-                     install to.  If specified, must be an absolute path.
-
-                     Default: "/"
-
-     MAKEVERBOSE     Level of verbosity of status messages.  Supported values:
-
-                     0   No descriptive messages or commands executed by
-                         make(1) are shown.
-
-                     1   Brief messages are shown describing what is being
-                         done, but the actual commands executed by make(1) are
-                         not shown.
-
-                     2   Descriptive messages are shown as above (prefixed
-                         with a `#'), and ordinary commands performed by
-                         make(1) are shown.
-
-                     3   In addition to the above, all commands performed by
-                         make(1) are shown, even if they would ordinarily have
-                         been hidden through use of the "@" prefix in the
-                         relevant makefile.
-
-                     4   In addition to the above, commands executed by
-                         make(1) are traced through use of the sh(1) "-x"
-                         flag.
-
-                     Default: 2
-
-     MKCATPAGES      Can be set to "yes" or "no".  Indicates whether
-                     preformatted plaintext manual pages will be created and
-                     installed.
-
-                     Forced to "no" if MKMAN=no or MKSHARE=no.
-
-                     Default: "no"
-
-     MKCROSSGDB      Can be set to "yes" or "no".  Create a cross-gdb as a
-                     host tool.
-
-                     Default: "no"
-
-     MKDEBUG         Can be set to "yes" or "no".  Indicates whether debug
-                     information should be generated for all userland
-                     binaries.  The result is collected as an additional
-                     debug.tgz and xdebug.tgz set and installed in
-                     DESTDIR/usr/libdata/debug.
-
-                     Forced to "no" if NODEBUG is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Default: "no"
-
-     MKDEBUGKERNEL   Can be set to "yes" or "no".  Indicates whether debugging
-                     symbols will be built for kernels by default; pretend as
-                     if makeoptions DEBUG="-g" is specified in kernel
-                     configuration files.  This will also put the debug kernel
-                     netbsd.gdb in the kernel sets.  See options(4) for
-                     details.  This is useful if a cross-gdb is built as well
-                     (see MKCROSSGDB).
-
-                     Default: "no"
-
-     MKDEBUGLIB      Can be set to "yes" or "no".  Indicates whether debug
-                     libraries (lib*_g.a) will be built and installed.  Debug
-                     libraries are compiled with "-g -DDEBUG".
-
-                     Forced to "no" if NODEBUGLIB is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Default: "no"
-
-     MKDEBUGTOOLS    Can be set to "yes" or "no".  Indicates whether debug
-                     information (lib*_g.a) will be included in the build
-                     toolchain.
-
-                     Default: "no"
-
-     MKDOC           Can be set to "yes" or "no".  Indicates whether system
-                     documentation destined for DESTDIR/usr/share/doc will be
-                     installed.
-
-                     Forced to "no" if NODOC is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKSHARE=no.
-
-                     Default: "yes"
-
-     MKHOSTOBJ       Can be set to "yes" or "no".  If "yes", then for programs
-                     intended to be run on the compile host, the name,
-                     release, and architecture of the host operating system
-                     will be suffixed to the name of the object directory
-                     created by "make obj".  (This allows multiple host
-                     systems to compile NetBSD for a single target
-                     architecture.)  If "no", 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 architecture.
-
-                     Default: "no"
-
-     MKHTML          Can be set to "yes" or "no".  Indicates whether the HTML
-                     manual pages are created and installed.
-
-                     Forced to "no" if NOHTML is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKMAN=no or MKSHARE=no.
-
-                     Default: "yes"
-
-     MKINFO          Can be set to "yes" or "no".  Indicates whether GNU Info
-                     files, used for the documentation for most of the
-                     compilation tools, will be built and installed.
-
-                     Forced to "no" if NOINFO is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKSHARE=no.
-
-                     Default: "yes"
-
-     MKKMOD          Can be set to "yes" or "no".  Indicates whether kernel
-                     modules will be built and installed.
-
-                     Default: "no" on or1k; "yes" on other platforms.
-
-     MKLINKLIB       Can be set to "yes" or "no".  Indicates whether all of
-                     the shared library infrastructure will be built and
-                     installed.
-
-                     If "no", prevents:
-                     -   installation of the *.a libraries
-                     -   installation of the *_pic.a libraries on PIC systems
-                     -   building of *.a libraries on PIC systems
-                     -   installation of .so symlinks on ELF systems
-
-                     I.e, only install the shared library (and the .so.major
-                     symlink on ELF).
-
-                     Forced to "no" if NOLINKLIB is defined, usually in the
-                     Makefile before any make(1) .include directives.
+     Variables control the behavior of NetBSD builds are documented in
+     mk.conf(5) (mdoc(7) source in share/man/man5/mk.conf.5).
 
-                     If "no", acts as MKLINT=no MKPICINSTALL=no MKPROFILE=no.
-
-                     Default: "yes"
-
-     MKLINT          Can be set to "yes" or "no".  Indicates whether lint(1)
-                     will be run against portions of the NetBSD source code
-                     during the build, and whether lint libraries will be
-                     installed into DESTDIR/usr/libdata/lint.
-
-                     Forced to "no" if NOLINT is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKLINKLIB=no.
-
-                     Default: "no"
-
-     MKMAN           Can be set to "yes" or "no".  Indicates whether manual
-                     pages will be installed.
-
-                     Forced to "no" if NOMAN is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKSHARE=no.
-
-                     If "no", acts as MKCATPAGES=no MKHTML=no.
-
-                     Default: "yes"
-
-     MKNLS           Can be set to "yes" or "no".  Indicates whether Native
-                     Language System (NLS) locale zone files will be built and
-                     installed.
-
-                     Forced to "no" if NONLS is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKSHARE=no.
-
-                     Default: "yes"
-
-     MKOBJ           Can be set to "yes" or "no".  Indicates whether object
-                     directories will be created when running "make obj".  If
-                     "no", then all built files will be located inside the
-                     regular source tree.
-
-                     Forced to "no" if NOOBJ is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     If "no", acts as MKOBJDIRS=no.
-
-                     Note: Setting MKOBJ to "no" is not recommended and may
-                     cause problems when updating the tree with cvs(1).
-
-                     Default: "yes"
-
-     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.
-
-                     Forced to "no" if MKOBJ=no.
-
-                     Note: If using build.sh, the default is "yes".  This may
-                     be set back to "no" by giving build.sh the -o option.
-
-                     Default: "no"
-
-     MKPIC           Can be set to "yes" or "no".  Indicates whether shared
-                     objects and libraries will be created and installed.  If
-                     "no", the entire built system will be statically linked.
-
-                     Forced to "no" if NOPIC is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     If "no", acts as MKPICLIB=no.
-
-                     Default: "no" on m68000; "yes" on other platforms.
-
-     MKPICINSTALL    Can be set to "yes" or "no".  Indicates whether the ar(1)
-                     format libraries (lib*_pic.a), used to generate shared
-                     libraries, are installed.
-
-                     Forced to "no" if NOPICINSTALL is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKLINKLIB=no.
-
-                     Default: "no"
-
-     MKPROFILE       Can be set to "yes" or "no".  Indicates whether profiled
-                     libraries (lib*_p.a) will be built and installed.
-
-                     Forced to "no" if NOPROFILE is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     Forced to "no" if MKLINKLIB=no.
-
-                     Default: "no" on or1k, riscv32, and riscv64 (due to
-                     toolchain problems with profiled code); "yes" on other
-                     platforms.
-
-     MKREPRO         Can be set to "yes" or "no".  Indicates whether builds
-                     are to be reproducible.  If "yes", two builds from the
-                     same source tree will produce the same build results.
-
-                     Used as the default for MKARZERO.
-
-                     Note: This may be set to "yes" by giving build.sh the -P
-                     option.
-
-                     Default: "no"
-
-     MKREPRO_TIMESTAMP
-                     Unix timestamp.  When MKREPRO is set, the timestamp of
-                     all files in the sets will be set to this value.
-
-                     Note: This may be set automatically to the latest source
-                     tree timestamp using cvslatest(1) by giving build.sh the
-                     -P option.
-
-                     Default: Unset.
-
-     MKSHARE         Can be set to "yes" or "no".  Indicates whether files
-                     destined to reside in DESTDIR/usr/share will be built and
-                     installed.
-
-                     Forced to "no" if NOSHARE is defined, usually in the
-                     Makefile before any make(1) .include directives.
-
-                     If "no", acts as MKCATPAGES=no MKDOC=no MKINFO=no
-                     MKHTML=no MKMAN=no MKNLS=no.
-
-                     Default: "yes"
-
-     MKSTRIPIDENT    Can be set to "yes" or "no".  Indicates whether RCS IDs,
-                     for use with ident(1), should be stripped from program
-                     binaries and shared libraries.
-
-                     Default: "no"
-
-     MKSTRIPSYM      Can be set to "yes" or "no".  Indicates whether all local
-                     symbols should be stripped from shared libraries.  If
-                     "yes", strip all local symbols from shared libraries; the
-                     effect is equivalent to the -x option of ld(1).  If "no",
-                     strip only temporary local symbols; the effect is
-                     equivalent to the -X option of ld(1).  Keeping non-
-                     temporary local symbols such as static function names is
-                     useful on using DTrace for userland libraries and getting
-                     a backtrace from a rump kernel loading shared libraries.
-
-                     Default: "yes"
-
-     MKUNPRIVED      Can be set to "yes" or "no".  Indicates whether an
-                     unprivileged install will occur.  The user, group,
-                     permissions, and file flags, will not be set on the
-                     installed items; instead the information will be appended
-                     to a file called METALOG in DESTDIR.  The METALOG
-                     contents are used during the generation of the
-                     distribution tar files to ensure that the appropriate
-                     file ownership is stored.  This allows a non-root `make
-                     install'.
-
-                     Default: "no"
-
-     MKUPDATE        Can be set to "yes" or "no".  Indicates whether all
-                     install operations intended to write to DESTDIR will
-                     compare file timestamps before installing, and skip the
-                     install phase if the destination files are up-to-date.
-
-                     For top-level builds this this implies the effects of
-                     NOCLEANDIR (i.e., "make cleandir" is avoided).
-
-                     Note: If using build.sh, this may be set by giving the -u
-                     option.
-
-                     Default: "no"
-
-     MKX11           Can be set to "yes" or "no".  Indicates whether X11 will
-                     be built and installed from X11SRCDIR, and whether the X
-                     sets will be created.
-
-                     Note: If "yes", requires MKINET6=yes.
-
-                     Default: "no"
-
-     NETBSDSRCDIR    The path to the top level of the NetBSD sources.
-
-                     Default: Top level of the NetBSD source tree (as
-                     determined by the presence of build.sh and tools/) if
-                     make(1) is run from within that tree; otherwise BSDSRCDIR
-                     will be used.
-
-     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.
-
-                     See also MKUPDATE.
-
-                     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(8) files have not
-                     changed.
-
-                     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 option
-                     should not be used when updating the entire NetBSD source
-                     tree arbitrarily; it is suggested to use MKUPDATE=yes
-                     instead in that case.
-
-                     Default: Unset.
-
-     RELEASEDIR      If set, specifies the directory to which a release(7)
-                     layout will be written at the end of a "make release".
-                     If specified, must be an absolute path.
-
-                     Note: build.sh will provide a default of "releasedir" (in
-                     the top-level .OBJDIR) unless run in `expert' mode.
-
-                     Default: Unset.
-
-     TOOLCHAIN_MISSING
-                     Can be set to "yes" or "no".  If not "no", this indicates
-                     that the platform "MACHINE_ARCH" being built does not
-                     have a working in-tree toolchain.
-
-                     If not "no", acts as MKBINUTILS=no MKGCC=no MKGDB=no.
-
-                     Default: "no"
-
-     TOOLDIR         Directory to hold the host tools, once built.  If
-                     specified, must be an absolute path.  This directory
-                     should be unique to a given host system and NetBSD source
-                     tree.  (However, multiple target architectures may share
-                     the same TOOLDIR; the target-architecture-dependent files
-                     have unique names.)  If unset, a default based on the
-                     uname(1) information of the host platform will be created
-                     in the .OBJDIR of src.
-
-                     Default: Unset.
-
-     USETOOLS        Can be set to "yes" or "no".  Indicates whether the tools
-                     specified by TOOLDIR should be used as part of a build in
-                     progress.  Must be set to "yes" if cross-compiling.
-                     Supported values:
-
-                     yes    Use the tools from TOOLDIR.
-
-                     no     Do not use the tools from TOOLDIR, but refuse to
-                            build native compilation tool components that are
-                            version-specific for that tool.
-
-                     never  Do not use the tools from TOOLDIR, even when
-                            building native tool components.  This is similar
-                            to the traditional NetBSD build method, but does
-                            not verify that the compilation tools in use are
-                            up-to-date enough in order to build the tree
-                            successfully.  This may cause build or runtime
-                            problems when building the whole NetBSD source
-                            tree.
-
-                     Default: "no" when using <bsd.*.mk> outside the NetBSD
-                     source tree (detected automatically) or if
-                     TOOLCHAIN_MISSING=yes; "yes" otherwise.
-
-     X11SRCDIR       Directory containing the modular Xorg source.  If
-                     specified, must be an absolute path.  The main modular
-                     Xorg source is found in X11SRCDIR/external/mit.
-
-                     Default: NETBSDSRCDIR/../xsrc, if that exists; otherwise
-                     /usr/xsrc.
+     Unless otherwise specified, these variables may be set in either the
+     process environment or the make(1) configuration file mk.conf(5)
+     specified by MAKECONF.
 
 BUILDING
    "make" command line options
@@ -1290,22 +800,15 @@ EXAMPLES
           this is run after example 2, it doesn't need to redo that portion of
           the release build.
 
-OBSOLETE VARIABLES
-     MKKDEBUG    Use MKDEBUGKERNEL.
-
-     NBUILDJOBS  Use the build.sh and make(1) option -j instead.
-
-     USE_NEW_TOOLCHAIN
-                 The new toolchain is now the default.  To disable, use
-                 TOOLCHAIN_MISSING=yes.
-
 SEE ALSO
-     ar(1), config(1), ctags(1), cvs(1), cvslatest(1), ex(1), g++(1), gzip(1),
-     ident(1), ld(1), lint(1), make(1), mkisofs(1), sh(1), uname(1), vi(1),
-     options(4), mk.conf(5), atf(7), hier(7), release(7), sysctl(7),
-     etcupdate(8), installboot(8), mount(8), mtree(8), postinstall(8),
+     config(1), ctags(1), ex(1), gzip(1), lint(1), make(1), mandoc(1),
+     mkisofs(1), nroff(1), vi(1), mk.conf(5), atf(7), hier(7), mdoc(7),
+     release(7), etcupdate(8), installboot(8), mount(8), postinstall(8),
      sysinst(8), pkgsrc/sysutils/cdrtools
 
+     Note: The NetBSD manual pages are also available at
+     https://man.netbsd.org
+
 HISTORY
      The build.sh based build scheme was introduced for NetBSD 1.6 as
      USE_NEW_TOOLCHAIN, and re-worked to TOOLCHAIN_MISSING after that.

Index: src/doc/BUILDING.mdoc
diff -u src/doc/BUILDING.mdoc:1.143 src/doc/BUILDING.mdoc:1.144
--- src/doc/BUILDING.mdoc:1.143	Sun Jun 11 10:49:44 2023
+++ src/doc/BUILDING.mdoc	Sun Jun 11 20:34:14 2023
@@ -1,4 +1,4 @@
-.\"	$NetBSD: BUILDING.mdoc,v 1.143 2023/06/11 10:49:44 lukem Exp $
+.\"	$NetBSD: BUILDING.mdoc,v 1.144 2023/06/11 20:34:14 lukem Exp $
 .\"
 .\" Copyright (c) 2001-2023 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -82,6 +82,26 @@ build process.
 .Sx Environment variables
 section below if you need
 to override or manually select your compilers.)
+.Pp
+.Em Note :
+Within this document, cross-references to manual pages are to the
+.Nx
+manual pages, not the host system manual pages.
+The
+.Xr mdoc 7
+source
+to the
+.Nx
+manual pages can be found within the source tree,
+and these and can be formatted with
+.Xr mandoc 1
+or
+.Xr nroff 1
+if those are available on the host system.
+The
+.Nx
+manual pages are also available at
+.Lk https://man.netbsd.org
 .
 .Sh FILES
 .
@@ -144,7 +164,9 @@ files installed in
 on the destination system, boot media, and release notes.
 .
 .It Pa doc/BUILDING.mdoc
-This document, in -mdoc troff format; the original copy.
+The source to this document, in
+.Xr mdoc 7
+format.
 Used to generate
 .Pa BUILDING .
 .
@@ -199,9 +221,15 @@ If any of these directories are missing,
 The
 .Nx
 build tree is described in
-.Xr hier 7 ,
+.Xr hier 7
+.Xr ( mdoc 7
+source in
+.Pa share/man/man7/hier.7 ) ,
 and the release layout is described in
-.Xr release 7 .
+.Xr release 7
+.Xr ( mdoc 7
+source in
+.Pa share/man/man7/release.7 ) .
 .
 .Sh CONFIGURATION
 .
@@ -213,7 +241,7 @@ and the release layout is described in
 ..
 .de DFLTn
 .DFLT
-.Dq no
+.Dq no .
 ..
 .de DFLTu
 .DFLT
@@ -221,7 +249,7 @@ Unset.
 ..
 .de DFLTy
 .DFLT
-.Dq yes
+.Dq yes .
 ..
 .de NODEF
 .Pp
@@ -259,15 +287,28 @@ builds.
 .
 .It Sy HOST_CC
 Path name to C compiler used to create the toolchain.
+.DFLT
+.Dq cc .
 .
 .It Sy HOST_CFLAGS
 Flags passed to the host C compiler.
+.DFLT
+.Dq \&-O .
+.
+.It Sy HOST_CPPFLAGS
+Flags passed to the host C/C++ pre-processor.
+.DFLTu
 .
 .It Sy HOST_CXX
 Path name to C++ compiler used to create the toolchain.
+.DFLT
+Unset, but defaults to
+.Dq c++
+where required.
 .
 .It Sy HOST_CXXFLAGS
 Flags passed to the host C++ compiler.
+.DFLTu
 .
 .It Sy HOST_SH
 Path name to a shell available on the host system
@@ -298,25 +339,32 @@ to be an absolute path; however,
 .Nm build.sh
 allows it to be a simple command name, which will be converted
 to an absolute path by searching the
-.Sy PATH .
+.Ev PATH .
+.DFLT
+.Dq sh .
 .
 .It Sy INSTALLBOOT_UBOOT_PATHS
 A colon-separated list of search paths used by
 .Xr installboot 8
 to find U-Boot packages.
+.DFLTu
 .
 .It Sy MACHINE
 Machine type, e.g.,
 .Dq macppc .
+.DFLTu
 .
 .It Sy MACHINE_ARCH
 Machine architecture, e.g.,
 .Dq powerpc .
+.DFLTu
 .
 .It Sy MAKE
 Path name to invoke
 .Xr make 1
 as.
+.DFLT
+.Dq make .
 .
 .It Sy MAKECONF
 The name of the
@@ -330,7 +378,7 @@ and
 .Em Note :
 Only settable in the process environment.
 .DFLT
-.Dq /etc/mk.conf
+.Dq Pa /etc/mk.conf .
 .
 .It Sy MAKEFLAGS
 Flags to invoke
@@ -346,6 +394,12 @@ passed in the environment, but allows
 to be set via the
 .Fl V
 option.
+.DFLT
+.Dq \&-X
+on systems with a small
+.Dv ARG_MAX
+(Cygwin, Darwin, FreeBSD);
+otherwise unset.
 .
 .It Sy MAKEOBJDIR
 Directory to use as the
@@ -375,6 +429,7 @@ it cannot usefully be set inside a Makef
 .Xr mk.conf 5
 or
 .Sy MAKECONF .
+.DFLTu
 .
 .It Sy MAKEOBJDIRPREFIX
 Top level directory of the object directory tree.
@@ -409,8 +464,9 @@ it cannot usefully be set inside a Makef
 .Xr mk.conf 5
 or
 .Sy MAKECONF .
+.DFLTu
 .
-.It Sy TMPDIR
+.It Ev TMPDIR
 Top-level directory to store temporary directories used by
 .Sy build.sh
 before paths to other directories such as
@@ -425,15 +481,20 @@ I.e., without
 .Sy noexec
 option.
 .DFLT
-.Dq /tmp .
+.Dq Pa /tmp .
 .
 .El
 .
 .Ss \*qmake\*q variables
 .
-Several variables control the behavior of
+Variables control the behavior of
 .Nx
-builds.
+builds are documented in
+.Xr mk.conf 5
+.Xr ( mdoc 7
+source in
+.Pa share/man/man5/mk.conf.5 ) .
+.Pp
 Unless otherwise specified, these variables may be set in
 either the process environment or the
 .Xr make 1
@@ -441,800 +502,6 @@ 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 14n
-.
-.\" These entries are sorted alphabetically.
-.\" Keep in sync with canonical reference share/man/man5/mk.conf.5
-.\" and with share/mk/bsd.README.
-.
-.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.
-If set, this should be a short string that is suitable for use as
-part of a file or directory name.
-The identifier will be appended to
-object directory names, and can be consulted in the
-.Xr make 1
-configuration file in order to set additional build parameters,
-such as compiler flags.
-It will also be used as part of the kernel version string,
-which can be shown by
-.Dq Li uname \-v .
-.DFLTu
-.
-.It Sy BUILDINFO
-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
-.Va buildinfo
-variable in any kernels that are built.
-When such kernels are booted, the
-.Xr sysctl 7
-.Va kern.buildinfo
-variable will report this value.
-The string may contain backslash escape sequences, such as
-.Dq "\e\e"
-(representing a backslash character)
-and
-.Dq "\en"
-(representing a newline).
-.DFLTu
-.
-.It Sy BUILDSEED
-.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
-.Xr g++ 1
-documentation of
-.Fl frandom-seed .
-.DFLTu
-.
-.It Sy COPTS
-Extra options for the C compiler.
-Should be appended to (e.g.,
-.Sy COPTS+=-g ) ,
-rather than explicitly set.
-.Pp
-.Em Note :
-.Sy CPUFLAGS ,
-not
-.Sy COPTS ,
-should be used for
-compiler flags that select CPU-related options.
-.Pp
-.Em Note :
-.Sy CFLAGS
-should never be set in
-.Xr mk.conf 5 .
-.
-.It Sy CPUFLAGS
-Additional options passed to the compiler/assembler to select
-CPU instruction set options, CPU tuning options, etc.
-.Pp
-.Em Note :
-Such options should not be specified in
-.Sy COPTS ,
-because some parts of the build process need to override
-CPU-related compiler options.
-.DFLTu
-.
-.It Sy DESTDIR
-Directory to contain the built
-.Nx
-system.
-If set, special options are passed to the compilation tools to
-prevent their default use of the host system's
-.Pa /usr/include , /usr/lib ,
-and so forth.
-This pathname must be an absolute path, and should
-.Em not
-end with a slash
-.Pq /
-character.
-(For installation into the system's root directory, set
-.Sy DESTDIR
-to an empty string, not to
-.Dq / ) .
-The directory must reside on a file system which supports long file
-names and hard links.
-.Pp
-.Em Note :
-.Sy build.sh
-will provide a default of
-.Dq Pa destdir . Ns Sy MACHINE
-(in the top-level
-.Sy .OBJDIR )
-unless run in
-.Sq expert
-mode.
-.DFLT
-Empty string if
-.Sy USETOOLS=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 INSTALLBOOT_BOARDS
-A list of
-.Sy evbarm
-boards to create bootable images for.
-If corresponding U-Boot packages are installed,
-bootable images are created as part of a release.
-See the
-.Bk -words
-.Fl o Sy board= Ns Ar name
-.Ek
-option of
-.Xr installboot 8 .
-.
-.It Sy INSTALLWORLDDIR
-Location for the top-level
-.Dq make installworld
-target to install to.
-If specified, must be an absolute path.
-.DFLT
-.Dq /
-.
-.It Sy MAKEVERBOSE
-Level of verbosity of status messages.
-Supported values:
-.Bl -tag -width 2n
-.It 0
-No descriptive messages or commands executed by
-.Xr make 1
-are shown.
-.It 1
-Brief messages are shown describing what is being done,
-but the actual commands executed by
-.Xr make 1
-are not shown.
-.It 2
-Descriptive messages are shown as above (prefixed with a
-.Sq # ) ,
-and ordinary commands performed by
-.Xr make 1
-are shown.
-.It 3
-In addition to the above, all commands performed by
-.Xr make 1
-are shown, even if they would ordinarily have been hidden
-through use of the
-.Dq \&@
-prefix in the relevant makefile.
-.It 4
-In addition to the above, commands executed by
-.Xr make 1
-are traced through use of the
-.Xr sh 1
-.Dq Fl x
-flag.
-.El
-.DFLT
-2
-.
-.It Sy MKCATPAGES
-.YorN
-Indicates whether preformatted plaintext manual pages will be created
-and installed.
-.NOVAR MKMAN=no No or Sy MKSHARE=no
-.DFLTn
-.
-.It Sy MKCROSSGDB
-.YorN
-Create a cross-gdb as a host tool.
-.DFLTn
-.
-.It Sy MKDEBUG
-.YorN
-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
-.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 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.
-.NODEF NODOC
-.NOVAR MKSHARE=no
-.DFLTy
-.
-.It Sy MKHOSTOBJ
-.YorN
-If
-.Dq yes ,
-then for programs intended to be run on the compile host,
-the name, release, and architecture of the host operating system
-will be suffixed to the name of the object directory created by
-.Dq make obj .
-(This allows multiple host systems to compile
-.Nx
-for a single target architecture.)
-If
-.Dq no ,
-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
-architecture.
-.DFLTn
-.
-.It Sy MKHTML
-.YorN
-Indicates whether the HTML manual pages are created and installed.
-.NODEF NOHTML
-.NOVAR MKMAN=no No or Sy MKSHARE=no
-.DFLTy
-.
-.It Sy MKINFO
-.YorN
-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 MKKMOD
-.YorN
-Indicates whether kernel modules will be 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.
-.Pp
-If
-.Dq no ,
-prevents:
-.Bl -dash -compact
-.It
-installation of the
-.Sy *.a
-libraries
-.It
-installation of the
-.Sy *_pic.a
-libraries on PIC systems
-.It
-building of
-.Sy *.a
-libraries on PIC systems
-.It
-installation of
-.Sy .so
-symlinks on ELF systems
-.El
-.Pp
-I.e, only install the shared library (and the
-.Pa .so.major
-symlink on ELF).
-.NODEF NOLINKLIB
-.Pp
-If
-.Dq no ,
-acts as
-.Sy MKLINT=no MKPICINSTALL=no MKPROFILE=no .
-.DFLTy
-.
-.It Sy MKLINT
-.YorN
-Indicates whether
-.Xr lint 1
-will be run against portions of the
-.Nx
-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.
-.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 (NLS) locale zone files will be
-built and installed.
-.NODEF NONLS
-.NOVAR MKSHARE=no
-.DFLTy
-.
-.It Sy MKOBJ
-.YorN
-Indicates whether object directories will be created when running
-.Dq make obj .
-If
-.Dq no ,
-then all built files will be located inside the regular source tree.
-.NODEF NOOBJ
-.Pp
-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
-.Pp
-.Em Note :
-If using
-.Sy build.sh ,
-the default is
-.Dq yes .
-This may be set back to
-.Dq no
-by giving
-.Sy build.sh
-the
-.Fl o
-option.
-.DFLTn
-.
-.It Sy MKPIC
-.YorN
-Indicates whether shared objects and libraries will be created and
-installed.
-If
-.Dq no ,
-the entire built system will be statically linked.
-.NODEF NOPIC
-.Pp
-If
-.Dq no ,
-acts as
-.Sy MKPICLIB=no .
-.DFLTn
-on
-.Sy m68000 ;
-.Dq yes
-on other platforms.
-.
-.It Sy MKPICINSTALL
-.YorN
-Indicates whether the
-.Xr ar 1
-format libraries
-.Sy ( lib*_pic.a ) ,
-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.
-.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
-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
-.Em Note :
-This may be set to
-.Dq yes
-by giving
-.Sy build.sh
-the
-.Fl P
-option.
-.DFLTn
-.
-.It Sy MKREPRO_TIMESTAMP
-Unix timestamp.
-When
-.Sy MKREPRO
-is set, the timestamp of all files in the sets will be set
-to this value.
-.Pp
-.Em Note :
-This may be set automatically to the latest source tree timestamp
-using
-.Xr cvslatest 1
-by giving
-.Sy build.sh
-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.
-.NODEF NOSHARE
-.Pp
-If
-.Dq no ,
-acts as
-.Sy MKCATPAGES=no MKDOC=no MKINFO=no MKHTML=no MKMAN=no MKNLS=no .
-.DFLTy
-.
-.It Sy MKSTRIPIDENT
-.YorN
-Indicates whether RCS IDs, for use with
-.Xr ident 1 ,
-should be stripped from program binaries and shared libraries.
-.DFLTn
-.
-.It Sy MKSTRIPSYM
-.YorN
-Indicates whether all local symbols should be stripped from shared libraries.
-If
-.Dq yes ,
-strip all local symbols from shared libraries;
-the effect is equivalent to the
-.Fl x
-option of
-.Xr ld 1 .
-If
-.Dq no ,
-strip only temporary local symbols; the effect is equivalent
-to the
-.Fl X
-option of
-.Xr ld 1 .
-Keeping non-temporary local symbols
-such as static function names is useful on using DTrace for
-userland libraries and getting a backtrace from a rump kernel
-loading shared libraries.
-.DFLTy
-.
-.It Sy MKUNPRIVED
-.YorN
-Indicates whether an unprivileged install will occur.
-The user, group, permissions, and file flags, will not be set on
-the installed items; instead the information will be appended to
-a file called
-.Pa METALOG
-in
-.Sy DESTDIR .
-The
-.Pa METALOG
-contents are used during the generation of the distribution
-tar files to ensure that the appropriate file ownership is stored.
-This allows a non-root
-.Sq "make install" .
-.DFLTn
-.
-.It Sy MKUPDATE
-.YorN
-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
-For top-level builds this this implies the effects of
-.Sy NOCLEANDIR
-(i.e.,
-.Dq make cleandir
-is avoided).
-.Pp
-.Em Note :
-If using
-.Sy build.sh ,
-this may be set by giving the
-.Fl u
-option.
-.DFLTn
-.
-.It Sy MKX11
-.YorN
-Indicates whether X11 will be built and installed from
-.Sy X11SRCDIR ,
-and whether the X sets will be created.
-.Pp
-.Em Note :
-If
-.Dq yes ,
-requires
-.Sy MKINET6=yes .
-.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 NOCLEANDIR
-If set, avoids the
-.Dq 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.
-.Pp
-See also
-.Sy MKUPDATE .
-.DFLTu
-.
-.It Sy NODISTRIBDIRS
-If set, avoids the
-.Dq make distrib-dirs
-phase of a full build.
-This skips running
-.Xr mtree 8
-on
-.Sy DESTDIR ,
-useful on systems where building as an unprivileged user, or where it is
-known that the system-wide
-.Xr mtree 8
-files have not changed.
-.DFLTu
-.
-.It Sy NOINCLUDES
-If set, avoids the
-.Dq make includes
-phase of a full build.
-This has the effect of preventing
-.Xr make 1
-from thinking that some programs are out-of-date simply because the
-system include files have changed.
-However, this option should not be used when updating the entire
-.Nx
-source tree arbitrarily; it is suggested to use
-.Sy MKUPDATE=yes
-instead in that case.
-.DFLTu
-.
-.It Sy RELEASEDIR
-If set, specifies the directory to which a
-.Xr release 7
-layout will be written at the end of a
-.Dq make release .
-If specified, must be an absolute path.
-.Pp
-.Em Note :
-.Sy build.sh
-will provide a default of
-.Dq Pa releasedir
-(in the top-level
-.Sy .OBJDIR )
-unless run in
-.Sq expert
-mode.
-.DFLTu
-.
-.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.
-This directory should be unique to a given host system and
-.Nx
-source tree.
-(However, multiple target architectures may share the same
-.Sy TOOLDIR ;
-the target-architecture-dependent files have unique names.)
-If unset, a default based
-on the
-.Xr uname 1
-information of the host platform will be created in the
-.Sy .OBJDIR
-of
-.Pa src .
-.DFLTu
-.
-.It Sy USETOOLS
-.YorN
-Indicates whether the tools specified by
-.Sy TOOLDIR
-should be used as part of a build in progress.
-Must be set to
-.Dq yes
-if cross-compiling.
-Supported values:
-.Bl -tag -width "never"
-.It yes
-Use the tools from
-.Sy TOOLDIR .
-.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 never
-Do not use the tools from
-.Sy TOOLDIR ,
-even when building native tool components.
-This is similar to the traditional
-.Nx
-build method, but does
-.Em not
-verify that the compilation tools in use are up-to-date enough in order
-to build the tree successfully.
-This may cause build or runtime problems when building the whole
-.Nx
-source tree.
-.El
-.DFLTn
-when using
-.Aq bsd.*.mk
-outside the
-.Nx
-source tree (detected automatically) or if
-.Sy TOOLCHAIN_MISSING=yes ;
-.Dq yes
-otherwise.
-.
-.It Sy X11SRCDIR
-Directory containing the modular Xorg source.
-If specified, must be an absolute path.
-The main modular Xorg source is found in
-.Sy X11SRCDIR Ns Pa /external/mit .
-.DFLT
-.Sy NETBSDSRCDIR Ns Pa /../xsrc ,
-if that exists; otherwise
-.Pa /usr/xsrc .
-.
-.El
 .
 .Sh BUILDING
 .
@@ -1703,7 +970,7 @@ is executed (if that can be determined),
 or using the first copy of
 .Pa sh
 found in
-.Sy PATH .
+.Ev PATH .
 .Pp
 All cross-compile builds, and most native builds, of the entire system
 should make use of
@@ -1768,7 +1035,7 @@ Show a help message, and exit.
 .
 .It Sy makewrapper
 Create the
-.Sy \*[toolprefix]make-MACHINE
+.Sy \*[toolprefix]make- Ns Sy MACHINE
 wrapper.
 This operation is automatically performed for any of the other
 operations.
@@ -1830,7 +1097,7 @@ directory, which is typically
 The new kernel will be built in a subdirectory of
 .Sy KERNOBJDIR ,
 which is typically
-.Pa sys/arch/MACHINE/compile
+.Pa sys/arch/ Ns Sy MACHINE Ns Pa /compile
 or an associated object directory.
 .Pp
 This command does
@@ -1877,7 +1144,7 @@ Install a
 copy of the kernel previously built by
 .Sy kernel Ns = Ns Ar kconf
 into
-.Sy RELEASEDIR/RELEASEMACHINEDIR Ns Pa /binary/kernel ,
+.Sy RELEASEDIR Ns Pa / Ns Sy RELEASEMACHINEDIR Ns Pa /binary/kernel ,
 usually as
 .Pa netbsd- Ns Ar kconf Ns Pa .gz ,
 although the
@@ -1974,7 +1241,7 @@ to
 This will also append the build identifier to the name of the
 .Dq make
 wrapper script so that the resulting name is of the form
-.Dq Sy \*[toolprefix]make-MACHINE-BUILDID .
+.Dq Sy \*[toolprefix]make- Ns Sy MACHINE Ns Sy -BUILDID .
 .
 .It Fl C Ar cdextras
 Append
@@ -2304,7 +1571,7 @@ wrapper script (see below) in a custom l
 specified by
 .Ar wrapper .
 This allows, for instance, to place the wrapper in
-.Sy PATH
+.Ev PATH
 automatically.
 .Pp
 .Em Note :
@@ -2368,7 +1635,7 @@ and unset variables specified with
 .Fl Z .
 .Pp
 This script can be symlinked into a directory listed in
-.Sy PATH ,
+.Ev PATH ,
 or called with an absolute path.
 .
 .Sh EXAMPLES
@@ -2424,58 +1691,34 @@ so that if this is run after example 2, 
 portion of the release build.
 .El
 .
-.Sh OBSOLETE VARIABLES
-.
-.Bl -tag -width "NBUILDJOBS"
-.
-.It Sy MKKDEBUG
-Use
-.Sy MKDEBUGKERNEL .
-.
-.It Sy NBUILDJOBS
-Use the
-.Nm build.sh
-and
-.Xr make 1
-option
-.Fl j
-instead.
-.
-.It Sy USE_NEW_TOOLCHAIN
-The new toolchain is now the default.
-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 mandoc 1 ,
 .Xr mkisofs 1 ,
-.Xr sh 1 ,
-.Xr uname 1 ,
+.Xr nroff 1 ,
 .Xr vi 1 ,
-.Xr options 4 ,
 .Xr mk.conf 5 ,
 .Xr atf 7 ,
 .Xr hier 7 ,
+.Xr mdoc 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
+.Pp
+.Em Note :
+The
+.Nx
+manual pages are also available at
+.Lk https://man.netbsd.org
 .
 .Sh HISTORY
 .

Reply via email to