Module Name:    src
Committed By:   lukem
Date:           Sun Jun  4 20:08:22 UTC 2023

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

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.150 -r1.151 src/BUILDING
cvs rdiff -u -r1.139 -r1.140 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.150 src/BUILDING:1.151
--- src/BUILDING:1.150	Fri Jun  2 20:48:41 2023
+++ src/BUILDING	Sun Jun  4 20:08:21 2023
@@ -18,14 +18,8 @@ REQUIREMENTS
 
 FILES
    Source tree layout
-     doc/BUILDING.mdoc
-                    This document (in -mdoc troff format; the original copy).
-
-     BUILDING       This document (in plaintext).
-
-     tools/compat/README
-                    Special notes for cross-hosting a NetBSD build on non-
-                    NetBSD platforms.
+     BUILDING       This document (in plaintext).  Generated from
+                    doc/BUILDING.mdoc.
 
      Makefile       The main Makefile for NetBSD; should only be run for
                     native builds with an appropriately up-to-date version of
@@ -51,18 +45,26 @@ FILES
                     Makefile semantics when building these programs for a
                     native host.
 
+     distrib/, etc/
+                    Sources for items used when making a full release
+                    snapshot, such as files installed in DESTDIR/etc on the
+                    destination system, boot media, and release notes.
+
+     doc/BUILDING.mdoc
+                    This document, in -mdoc troff format; the original copy.
+                    Used to generate BUILDING.
+
      external, sys/external
                     Sources and build infrastructure for components imported
                     (mostly) unchanged from upstream maintainers, sorted by
                     applicable license.  This is (slowly) replacing the
                     crypto/dist, dist, and gnu/dist directories.
 
-     distrib/, etc/
-                    Sources for items used when making a full release
-                    snapshot, such as files installed in DESTDIR/etc on the
-                    destination system, boot media, and release notes.
+     external/mit/xorg/
+                    "Reachover" build structure for modular Xorg; the source
+                    is in X11SRCDIR.
 
-     tests/, regress/
+     regress/, tests/
                     Regression test harness.  Can be cross-compiled, but only
                     run natively.  tests/ uses the atf(7) test framework;
                     regress/ contains older tests that have not yet been
@@ -74,15 +76,15 @@ FILES
                     This has a special method of determining out-of-date
                     status.
 
-     bin/ ... usr.sbin/
+     tools/compat/README
+                    Special notes for cross-hosting a NetBSD build on non-
+                    NetBSD platforms.
+
+     Other directories including bin/ ... usr.sbin/
                     Sources to the NetBSD userland (non-kernel) programs.  If
                     any of these directories are missing, they will be skipped
                     during the build.
 
-     external/mit/xorg/
-                    "Reachover" build structure for modular Xorg; the source
-                    is in X11SRCDIR.
-
    Build tree layout
      The NetBSD build tree is described in hier(7), and the release layout is
      described in release(7).
@@ -91,393 +93,555 @@ CONFIGURATION
    Environment variables
      Several environment variables control the behaviour of NetBSD builds.
 
-     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-
-                       compliant features, and also requires support for the
-                       "local" keyword to declare local variables in shell
-                       functions (which is a widely-implemented but non-
-                       standardised feature).
-
-                       Depending on the host system, a suitable shell may be
-                       /bin/sh, /usr/xpg4/bin/sh, /bin/ksh (provided it is a
-                       variant of ksh that supports the "local" keyword, such
-                       as ksh88, but not ksh93), or /usr/local/bin/bash.
-
-                       Most parts of the build require HOST_SH to be an
-                       absolute path; however, build.sh allows it to be a
-                       simple command name, which will be converted to an
-                       absolute path by searching the PATH.
+     HOST_CC          Path name to C compiler used to create the toolchain.
 
-     HOST_CC           Path name to C compiler used to create the toolchain.
+     HOST_CFLAGS      Flags passed to the host C compiler.
 
-     HOST_CFLAGS       Flags passed to the host C compiler.
+     HOST_CXX         Path name to C++ compiler used to create the toolchain.
 
-     HOST_CXX          Path name to C++ compiler used to create the toolchain.
+     HOST_CXXFLAGS    Flags passed to the host C++ compiler.
 
-     HOST_CXXFLAGS     Flags passed to the host C++ compiler.
+     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-
+                      compliant features, and also requires support for the
+                      "local" keyword to declare local variables in shell
+                      functions (which is a widely-implemented but non-
+                      standardised feature).
+
+                      Depending on the host system, a suitable shell may be
+                      /bin/sh, /usr/xpg4/bin/sh, /bin/ksh (provided it is a
+                      variant of ksh that supports the "local" keyword, such
+                      as ksh88, but not ksh93), or /usr/local/bin/bash.
+
+                      Most parts of the build require HOST_SH to be an
+                      absolute path; however, build.sh allows it to be a
+                      simple command name, which will be converted to an
+                      absolute path by searching the PATH.
 
      INSTALLBOOT_UBOOT_PATHS
-                       A colon-separated list of search paths used by
-                       installboot(8) to find U-Boot packages.
+                      A colon-separated list of search paths used by
+                      installboot(8) to find U-Boot packages.
 
-     MACHINE           Machine type, e.g., "macppc".
+     MACHINE          Machine type, e.g., "macppc".
 
-     MACHINE_ARCH      Machine architecture, e.g., "powerpc".
+     MACHINE_ARCH     Machine architecture, e.g., "powerpc".
 
-     MAKE              Path name to invoke make(1) as.
+     MAKE             Path name to invoke make(1) as.
 
-     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"
-
-     MAKEFLAGS         Flags to invoke make(1) with.  Note that build.sh
-                       ignores the value of MAKEFLAGS passed in the
-                       environment, but allows MAKEFLAGS to be set via the -V
-                       option.
-
-     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 value involving the use of
-                       `${.CURDIR:S...}' or `${.CURDIR:C...}', to derive the
-                       value of .OBJDIR from the value of .CURDIR.  Used only
-                       if MAKEOBJDIRPREFIX is not defined.
-
-                       Note: MAKEOBJDIR can be provided only in the
-                       environment or via the -O flag of build.sh; it cannot
-                       usefully be set inside a Makefile, including in
-                       mk.conf(5) or MAKECONF.
-
-     MAKEOBJDIRPREFIX  Top level directory of the object directory tree.  The
-                       value is subjected to variable expansion by make(1).
-                       build.sh will create the ${MAKEOBJDIRPREFIX} directory
-                       if necessary, but if make(1) is used without build.sh,
-                       then rules in <bsd.obj.mk> will abort the build if the
-                       ${MAKEOBJDIRPREFIX} directory does not exist.  If the
-                       value is defined and valid, then
-                       ${MAKEOBJDIRPREFIX}/${.CURDIR} is used as the .OBJDIR
-                       for the current directory.  The current directory may
-                       be read only.
-
-                       Note: MAKEOBJDIRPREFIX can be provided only in the
-                       environment or via the -M flag of build.sh; it cannot
-                       usefully be set inside a Makefile, including in
-                       mk.conf(5) or MAKECONF.
-
-     TMPDIR            Top-level directory to store temporary directories used
-                       by build.sh before paths to other directories such as
-                       .OBJDIR can be determined.
+     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"
+
+     MAKEFLAGS        Flags to invoke make(1) with.
+
+                      Note: build.sh ignores the value of MAKEFLAGS passed in
+                      the environment, but allows MAKEFLAGS to be set via the
+                      -V option.
+
+     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
+                      value involving the use of `${.CURDIR:S...}' or
+                      `${.CURDIR:C...}', to derive the value of .OBJDIR from
+                      the value of .CURDIR.  Used only if MAKEOBJDIRPREFIX is
+                      not defined.
+
+                      Note: MAKEOBJDIR can be provided only in the environment
+                      or via the -O flag of build.sh; it cannot usefully be
+                      set inside a Makefile, including in mk.conf(5) or
+                      MAKECONF.
+
+     MAKEOBJDIRPREFIX
+                      Top level directory of the object directory tree.  The
+                      value is subjected to variable expansion by make(1).
+                      build.sh will create the ${MAKEOBJDIRPREFIX} directory
+                      if necessary, but if make(1) is used without build.sh,
+                      then rules in <bsd.obj.mk> will abort the build if the
+                      ${MAKEOBJDIRPREFIX} directory does not exist.  If the
+                      value is defined and valid, then
+                      ${MAKEOBJDIRPREFIX}/${.CURDIR} is used as the .OBJDIR
+                      for the current directory.  The current directory may be
+                      read only.
+
+                      Note: MAKEOBJDIRPREFIX can be provided only in the
+                      environment or via the -M flag of build.sh; it cannot
+                      usefully be set inside a Makefile, including in
+                      mk.conf(5) or MAKECONF.
+
+     TMPDIR           Top-level directory to store temporary directories used
+                      by build.sh before paths to other directories such as
+                      .OBJDIR can be determined.
 
-                       Note: Must support execution of binaries.  I.e.,
-                       without mount(8)'s -o noexec option.
+                      Note: Must support execution of binaries.  I.e., without
+                      mount(8)'s -o noexec option.
 
-                       Default: "/tmp".
+                      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).
+     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.
+
+     CPUFLAGS         Additional flags to the compiler/assembler to select CPU
+                      instruction set options, CPU tuning options, etc.
+
+                      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 is "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.
+
+     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.
 
-     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: "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"
 
-                 Default: Unset.
+     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 set to "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.)  If
+                      set to "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.
 
-     BUILDINFO   This may be a 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: "no"
 
-                 Default: Unset.
+     MKHTML           Can be set to "yes" or "no".  Indicates whether the HTML
+                      manual pages are created and installed.  and installed
 
-     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).  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.
+                      Forced to "no" if NOHTML is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-     CPUFLAGS    Additional flags to the compiler/assembler to select CPU
-                 instruction set options, CPU tuning options, etc.
+                      Forced to "no" if MKMAN=no or MKSHARE=no.
 
-                 Default: Unset.
+                      Default: "yes"
 
-     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.
+     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.
 
-                 Default: Empty string if USETOOLS is "yes"; unset otherwise.
+                      Forced to "no" if NOINFO is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-                 Note: build.sh will provide a default of destdir.MACHINE (in
-                 the top-level .OBJDIR) unless run in `expert' mode.
+                      Forced to "no" if MKSHARE=no.
 
-     MAKEVERBOSE
-                 Level of verbosity of status messages.  Supported values:
+                      Default: "yes"
 
-                 0    No descriptive messages or commands executed by make(1)
-                      are shown.
+     MKKDEBUG         Deprecated, use MKDEBUGKERNEL.
 
-                 1    Brief messages are shown describing what is being done,
-                      but the actual commands executed by make(1) are not
-                      shown.
+     MKKMOD           Can be set to "yes" or "no".  Indicates whether kernel
+                      modules are built and installed.
 
-                 2    Descriptive messages are shown as above (prefixed with a
-                      `#'), and ordinary commands performed by make(1) are
-                      shown.
+                      Default: "no" on or1k; "yes" on other platforms.
 
-                 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.
+     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, or
+                      installation of .so symlinks on ELF systems.
 
-                 4    In addition to the above, commands executed by make(1)
-                      are traced through use of the sh(1) "-x" flag.
+                      Forced to "no" if NOLINKLIB is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-                 Default: 2
+                      If "no", acts as MKLINT=no MKPICINSTALL=no MKPROFILE=no.
 
-     MKCATPAGES  Can be set to "yes" or "no".  Indicates whether preformatted
-                 plaintext manual pages will be created during a build.
+                      Default: "yes"
 
-                 Default: "no"
+     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.
 
-     MKCROSSGDB  Can be set to "yes" or "no".  Create a cross-gdb as a host
-                 tool.
+                      Forced to "no" if NOLINT is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-                 Default: "no"
+                      Forced to "no" if MKLINKLIB=no.
 
-     MKDEBUG     Can be set to "yes" or "no".  Indicates whether debug
-                 information should be generated for all userland binaries
-                 compiled.  The result is collected as an additional debug.tgz
-                 and xdebug.tgz set and installed in /usr/libdata/debug.
+                      Default: "no"
 
-                 Default: "no"
+     MKMAN            Can be set to "yes" or "no".  Indicates whether manual
+                      pages will be installed.
 
-     MKDEBUGLIB  Can be set to "yes" or "no".  Indicates whether debug
-                 information (see MKDEBUG) should also be generated for all
-                 libraries built.
+                      Forced to "no" if NOMAN is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-                 Default: "no"
+                      Forced to "no" if MKSHARE=no.
 
-     MKDOC       Can be set to "yes" or "no".  Indicates whether system
-                 documentation destined for DESTDIR/usr/share/doc will be
-                 installed during a build.
+                      If "no", acts as MKCATPAGES=no MKHTML=no.
 
-                 Default: "yes"
+                      Default: "yes"
 
-     MKHTML      Can be set to "yes" or "no".  Indicates whether preformatted
-                 HTML manual pages will be built and installed
+     MKNLS            Can be set to "yes" or "no".  Indicates whether Native
+                      Language System (NLS) locale zone files will be built
+                      and installed.
 
-                 Default: "yes"
+                      Forced to "no" if NONLS is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-     MKHOSTOBJ   Can be set to "yes" or "no".  If set to "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.)  If set to "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.
+                      Forced to "no" if MKSHARE=no.
 
-                 Default: "no"
+                      Default: "yes"
 
-     MKINFO      Can be set to "yes" or "no".  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.
+     MKOBJ            Can be set to "yes" or "no".  Indicates whether object
+                      directories will be created when running "make obj".  If
+                      set to "no", then all built files will be located inside
+                      the regular source tree.
 
-                 Default: "yes"
+                      Forced to "no" if NOOBJ is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-     MKKDEBUG    Can be set to "yes" or "no".  Force generation of full-debug
-                 symbol versions of all kernels compiled.  Alongside of the
-                 netbsd kernel file, an unstripped version netbsd.gdb is
-                 created.  This is useful if a cross-gdb is built as well (see
-                 MKCROSSGDB).
+                      If "no", acts as MKOBJDIRS=no.
 
-                 Default: "no"
+                      Note: Setting MKOBJ to "no" is not recommended and may
+                      cause problems when updating the tree with cvs(1).
 
-     MKKMOD      Can be set to "yes" or "no".  Indicates whether kernel
-                 modules are built and installed.
+                      Default: "yes"
 
-                 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.
 
-     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 MKOBJ=no.
 
-                 Default: "no"
+                      Default: "no"
 
-     MKMAN       Can be set to "yes" or "no".  Indicates whether manual pages
-                 will be installed during a build.
+     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.
 
-                 Default: "yes"
+                      Forced to "no" if NOPIC is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-     MKNLS       Can be set to "yes" or "no".  Indicates whether Native
-                 Language System locale zone files will be compiled and
-                 installed during a build.
+                      If "no", acts as MKPICLIB=no.
 
-                 Default: "yes"
+                      Default: "no" on m68000; "yes" on other platforms.
 
-     MKOBJ       Can be set to "yes" or "no".  Indicates whether object
-                 directories will be created when running "make obj".  If set
-                 to "no", then all built files will be located inside the
-                 regular source tree.
+     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.
 
-                 Default: "yes"
+                      Forced to "no" if NOPICINSTALL is defined, usually in
+                      the Makefile before any make(1) .include directives.
 
-                 Note that setting MKOBJ to "no" is not recommended and may
-                 cause problems when updating the tree with cvs(1).
+                      Forced to "no" if MKLINKLIB=no.
 
-     MKPIC       Can be set to "yes" or "no".  Indicates whether shared
-                 objects and libraries will be created and installed during a
-                 build.  If set to "no", the entire built system will be
-                 statically linked.
+                      Default: "no"
 
-                 Default: Platform dependent.  As of this writing, all
-                 platforms except m68000 default to "yes".
+     MKPROFILE        Can be set to "yes" or "no".  Indicates whether profiled
+                      libraries (lib*_p.a) will be built and installed.
 
-     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 during a build.
+                      Forced to "no" if NOPROFILE is defined, usually in the
+                      Makefile before any make(1) .include directives.
 
-                 Default: "yes"
+                      Forced to "no" if MKLINKLIB=no.
 
-     MKPROFILE   Can be set to "yes" or "no".  Indicates whether profiled
-                 libraries (lib*_p.a) will be built and installed during a
-                 build.
+                      Default: "no" on or1k, riscv32, and riscv64 (due to
+                      toolchain problems with profiled code); "yes" on other
+                      platforms.
 
-                 Default: "yes"; however, some platforms turn off MKPROFILE by
-                 default at times due to toolchain problems with profiled
-                 code.
+     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.
 
-     MKREPRO     Can be set to "yes" or "no".  Create reproducible builds.
-                 This enables different switches to make two builds from the
-                 same source tree result in the same build results.
+                      Used as the default for MKARZERO.
 
-                 Default: "no" This may be set to "yes" by giving build.sh the
-                 -P option.
+                      This may be set to "yes" by giving build.sh the -P
+                      option.
+
+                      Default: "no" Can be set to "yes" or "no".
 
      MKREPRO_TIMESTAMP
-                 Unix timestamp.  When MKREPRO is set, the timestamp of all
-                 files in the sets will be set to this value.
+                      Unix timestamp.  When MKREPRO is set, the timestamp of
+                      all files in the sets will be set to this value.
+
+                      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.
 
-                 Default: Unset.  This may be set automatically to the latest
-                 source tree timestamp using cvslatest(1) by giving build.sh
-                 the -P option.
-
-     MKSHARE     Can be set to "yes" or "no".  Indicates whether files
-                 destined to reside in DESTDIR/usr/share will be built and
-                 installed during a build.  If set to "no", then all of
-                 MKCATPAGES, MKDOC, MKINFO, MKMAN, and MKNLS will be set to
-                 "no" unconditionally.
-
-                 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 affect is
-                 equivalent to the -x option of ld(1).  If "no", strip only
-                 temporary local symbols; the affect 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 contents of METALOG are used
-                 during the generation of the distribution tar files to ensure
-                 that the appropriate file ownership is stored.
-
-                 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.  This also has
-                 implications on full builds (see next subsection).
-
-                 Default: "no"
-
-     MKX11       Can be set to "yes" or "no".  Indicates whether X11 is built
-                 from X11SRCDIR.
-
-                 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 targets may share the same TOOLDIR; the target-
-                 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    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.
-
-                 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: "yes", unless TOOLCHAIN_MISSING is set to "yes".
-
-                 USETOOLS is also set to "no" when using <bsd.*.mk> outside
-                 the NetBSD source tree.
-
-     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.
+                      If "no", acts as MKCATPAGES=no MKDOC=no MKINFO=no
+                      MKHTML=no MKMAN=no MKNLS=no.
 
-                 Default: NETBSDSRCDIR/../xsrc, if that exists; otherwise
-                 /usr/xsrc.
+                      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 affect is equivalent to the -x option of ld(1).  If
+                      "no", strip only temporary local symbols; the affect 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
+                      contents of METALOG are used during the generation of
+                      the distribution tar files to ensure that the
+                      appropriate file ownership is stored.
+
+                      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.
+
+                      Note: This also has implications on full builds (see
+                      next subsection).
+
+                      Default: "no"
+
+     MKX11            Can be set to "yes" or "no".  Indicates whether X11 is
+                      built and installed from X11SRCDIR.
+
+                      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.
+
+     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 targets may share the
+                      same TOOLDIR; the target-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.
+
+                      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.
 
    "make" variables for full builds
      These variables only affect the top level "Makefile" and do not affect
@@ -549,11 +713,11 @@ CONFIGURATION
                       layout will be written at the end of a "make release".
                       If specified, must be an absolute path.
 
-                      Default: Unset.
-
                       Note: build.sh will provide a default of releasedir (in
                       the top-level .OBJDIR) unless run in `expert' mode.
 
+                      Default: Unset.
+
 BUILDING
    "make" command line options
      This is not a summary of all the options available to make(1); only the
@@ -690,14 +854,14 @@ BUILDING
                    Before "make iso-image" is attempted, RELEASEDIR must be
                    populated by "make release" or equivalent.
 
-                   Note that other, smaller, CD-ROM images may be created in
-                   the RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom
-                   directory by "make release".  These smaller images usually
-                   contain the same tools as the larger images in
-                   RELEASEDIR/images, but do not contain additional content
-                   such as the distribution sets.
+                   Note: Other, smaller, CD-ROM images may be created in the
+                   RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom directory
+                   by "make release".  These smaller images usually contain
+                   the same tools as the larger images in RELEASEDIR/images,
+                   but do not contain additional content such as the
+                   distribution sets.
 
-                   Note that the mac68k port still uses an older method of
+                   Note: The mac68k port still uses an older method of
                    creating CD-ROM images.  This requires the mkisofs(1)
                    utility, which is not part of NetBSD, but which can be
                    installed from pkgsrc/sysutils/cdrtools.
@@ -719,14 +883,14 @@ BUILDING
                    must be populated by "make sourcesets release" or
                    equivalent.
 
-                   Note that other, smaller, CD-ROM images may be created in
-                   the RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom
-                   directory by "make release".  These smaller images usually
-                   contain the same tools as the larger images in
-                   RELEASEDIR/images, but do not contain additional content
-                   such as the distribution sets.
+                   Note: Other, smaller, CD-ROM images may be created in the
+                   RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom directory
+                   by "make release".  These smaller images usually contain
+                   the same tools as the larger images in RELEASEDIR/images,
+                   but do not contain additional content such as the
+                   distribution sets.
 
-                   Note that the mac68k port still uses an older method of
+                   Note: The mac68k port still uses an older method of
                    creating CD-ROM images.  This requires the mkisofs(1)
                    utility, which is not part of NetBSD, but which can be
                    installed from pkgsrc/sysutils/cdrtools.
@@ -769,9 +933,11 @@ BUILDING
      regression-tests
                    Can only be run after building the regression tests in the
                    directory "regress".  Runs those compiled regression tests
-                   on the local host.  Note that most tests are now managed
-                   instead using atf(7); this target should probably run those
-                   as well but currently does not.
+                   on the local host.
+
+                   Note: Most tests are now managed instead using atf(7); this
+                   target should probably run those as well but currently does
+                   not.
 
    The "build.sh" script
      This script file is a shell script designed to build the entire NetBSD
@@ -838,9 +1004,11 @@ BUILDING
                    (respectively) are given.
 
      install=idir  Install the contents of DESTDIR to idir, using "make
-                   installworld".  Note that files that are part of the "etc"
-                   or "xetc" sets will not be installed, unless overridden by
-                   the INSTALLSETS environment variable.
+                   installworld".
+
+                   Note: Files that are part of the "etc" or "xetc" sets will
+                   not be installed, unless overridden by the INSTALLSETS
+                   environment variable.
 
      kernel=kconf  Build a new kernel.  The kconf argument is the name of a
                    configuration file suitable for use by config(1).  If kconf
@@ -1023,15 +1191,15 @@ BUILDING
                by the values of several variables and by the location of the
                source directory.
 
-               Note that placing the obj directory location outside of the
-               default source tree hierarchy makes it easier to manually clear
-               out old files in the event the "make cleandir" operation is
-               unable to do so.  (See CAVEATS below.)
-
-               Note also that use of one of -M or -O is the only means of
-               building multiple machine architecture userlands from the same
-               source tree without cleaning between builds (in which case, one
-               would specify distinct obj locations for each).
+               Note: Placing the obj directory location outside of the default
+               source tree hierarchy makes it easier to manually clear out old
+               files in the event the "make cleandir" operation is unable to
+               do so.  (See CAVEATS below.)
+
+               Note: The use of one of -M or -O is the only means of building
+               multiple machine architecture userlands from the same source
+               tree without cleaning between builds (in which case, one would
+               specify distinct obj locations for each).
 
      -o        Set the value of MKOBJDIRS to "no".  Otherwise, it will be
                automatically set to "yes".  This default is opposite to the
@@ -1067,10 +1235,11 @@ BUILDING
      -w wrapper
                Create the nbmake wrapper script (see below) in a custom
                location, specified by wrapper.  This allows, for instance, to
-               place the wrapper in PATH automatically.  Note that 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 absolute
-               path before being used.
+               place the wrapper in PATH automatically.
+
+               Note: 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 absolute path before being used.
 
      -X x11src
                Set the value of X11SRCDIR to x11src.  If a relative path is
@@ -1099,24 +1268,24 @@ BUILDING
      with an absolute path.
 
 EXAMPLES
-     1.   % ./build.sh [options] tools kernel=GENERIC
+     1.   % ./build.sh [OPTIONS] tools kernel=GENERIC
 
           Build a new toolchain, and use the new toolchain to configure and
           build a new GENERIC kernel.
 
-     2.   % ./build.sh [options] -U distribution
+     2.   % ./build.sh [OPTIONS] -U distribution
 
           Using unprivileged mode, build a complete distribution to a DESTDIR
           directory that build.sh selects (and will show).
 
-     3.   # ./build.sh [options] -U install=/
+     3.   # ./build.sh [OPTIONS] -U install=/
 
           As root, install to / the distribution that was built by example 2.
           Even though this is run as root, -U is required so that the
           permissions stored in DESTDIR/METALOG are correctly applied to the
           files as they're copied to /.
 
-     4.   % ./build.sh [options] -U -u release
+     4.   % ./build.sh [OPTIONS] -U -u release
 
           Using unprivileged mode, build a complete release to DESTDIR and
           RELEASEDIR directories that build.sh selects (and will show).
@@ -1132,8 +1301,11 @@ OBSOLETE VARIABLES
                  TOOLCHAIN_MISSING=yes.
 
 SEE ALSO
-     make(1), mk.conf(5), hier(7), release(7), etcupdate(8), installboot(8),
-     mount(8), postinstall(8), sysinst(8), pkgsrc/sysutils/cdrtools
+     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),
+     sysinst(8), pkgsrc/sysutils/cdrtools
 
 HISTORY
      The build.sh based build scheme was introduced for NetBSD 1.6 as
@@ -1145,4 +1317,4 @@ CAVEATS
      in object directories.  Instead, one may have to manually remove the
      files.  Consult the UPDATING file for notices concerning this.
 
-NetBSD                           May 18, 2023                           NetBSD
+NetBSD                           June 4, 2023                           NetBSD

Index: src/doc/BUILDING.mdoc
diff -u src/doc/BUILDING.mdoc:1.139 src/doc/BUILDING.mdoc:1.140
--- src/doc/BUILDING.mdoc:1.139	Fri Jun  2 20:48:41 2023
+++ src/doc/BUILDING.mdoc	Sun Jun  4 20:08:21 2023
@@ -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 comp
 .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 bu
 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, w
 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 com
 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 wil
 If set to
 .Dq no ,
 then all built files will be located inside the regular source tree.
-.DFLTy
+.NODEF NOOBJ
+.Pp
+If
+.Dq no ,
+acts as
+.Sy MKOBJDIRS=no .
 .Pp
-Note that setting
+.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 libr
 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
 .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
 .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 subt
 .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
 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 populat
 .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
 .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 populat
 .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
 .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 a
 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 th
 .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

Reply via email to