Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/share/mk bsd.README: update to reality, sync from mk.conf(5)



details:   https://anonhg.NetBSD.org/src/rev/1b5014546b5c
branches:  trunk
changeset: 376244:1b5014546b5c
user:      lukem <lukem%NetBSD.org@localhost>
date:      Mon Jun 05 22:36:58 2023 +0000

description:
bsd.README: update to reality, sync from mk.conf(5)

Sync user variables from mk.conf(5), sorted.
(Arguably this could just refer to mk.conf(5)
or share/man/man5/mk.conf.5 and remove the copypasta.)

Document NOxxx overrides in own subsection.

Unexpand tabs, tweak after.

diffstat:

 share/mk/bsd.README |  1729 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 1169 insertions(+), 560 deletions(-)

diffs (truncated from 1915 to 300 lines):

diff -r 8c0eb53fb268 -r 1b5014546b5c share/mk/bsd.README
--- a/share/mk/bsd.README       Mon Jun 05 22:36:17 2023 +0000
+++ b/share/mk/bsd.README       Mon Jun 05 22:36:58 2023 +0000
@@ -1,11 +1,14 @@
-#      $NetBSD: bsd.README,v 1.443 2023/05/24 10:07:16 lukem Exp $
+#      $NetBSD: bsd.README,v 1.444 2023/06/05 22:36:58 lukem Exp $
 #      @(#)bsd.README  8.2 (Berkeley) 4/2/94
 
 This is the README file for the make "include" files for the NetBSD
 source tree.  The files are installed in /usr/share/mk, and are,
 by convention, named with the suffix ".mk".
 
-Note, this file is not intended to replace reading through the .mk
+Other sources of relevant documentation are BUILDING in the top
+level of the NetBSD source tree, and the mk.conf(5) man page.
+
+Note: this file is not intended to replace reading through the .mk
 files for anything tricky.
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -66,32 +69,35 @@ and are tested with  ${VAR} == "no"  and
 
 The basic rule for the variable naming scheme is as follows:
 
-HOST_xxx       A command that runs on the host machine regardless of
+HOST_<cmd>     A command that runs on the host machine regardless of
                whether or not the system is being cross compiled, or
                flags for such a command.
 
-MKxxx          Can be set to "no" to disable functionality, or
-               "yes" to enable it.
+MK<feature>    Can be set to "no" to disable feature <feature>,
+               or "yes" to enable feature <feature>.
                Usually defaults to "yes", although some variables
                default to "no".
                Due to make(1) implementation issues, if a temporary
                command-line override of a mk.conf(5) or <bsd.own.mk>
                setting is required whilst still honoring a particular
-               Makefile's setting of MKxxx, use
-                       env MKxxx=value make
+               Makefile's setting of MK<feature>, use
+                       env MK<feature>=value make
                instead of
-                       make MKxxx=value
-
-NOxxx          If defined, disables a feature.
+                       make MK<feature>=value
+
+NO<feature>    If defined, disables feature <feature>, overriding
+               a user's MK<feature>=yes configuration.
                Not intended for users.
                This is to allow Makefiles to disable functionality
                that they don't support (such as missing man pages).
-               NOxxx variables must be defined before <bsd.own.mk>
-               is included.
-
-TOOL_xxx       A tool that is provided as part of the USETOOLS
+               NO<feature> variables must be defined before <bsd.own.mk>
+               is included, which generally means define before
+               any <*.mk> is included.
+               See "Variables for a Makefile".
+
+TOOL_<tool>    A tool that is provided as part of the USETOOLS
                framework.  When not using the USETOOLS framework,
-               TOOL_xxx variables should refer to tools that are
+               TOOL_<tool> variables should refer to tools that are
                already installed on the host system.
 
 The following variables control how things are made/installed that
@@ -99,530 +105,1094 @@ are not set by default. These should not
 the user to define in MAKECONF (see <bsd.own.mk>, below, or mk.conf(5))
 or on the make(1) command line:
 
-BUILD          If defined, 'make install' checks that the targets in the
-               source directories are up-to-date and remakes them if they
-                are out of date, instead of blindly trying to install
-                out of date or non-existent targets.
-
-MAKEVERBOSE    Control how "verbose" the standard make(1) rules are.
+BUILD          If defined, 'make install' checks that the targets in the
+               source directories are up-to-date and re-makes them if
+               they are out of date, instead of blindly trying to
+               install out of date or non-existent targets.
+
+               Default: Unset.
+
+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.
+
+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 displayed.
+
+               2   Descriptive messages are shown as above (prefixed
+                   with a `#'), and ordinary commands performed by
+                   make(1) are displayed.
+
+               3   In addition to the above, all commands performed by
+                   make(1) are displayed, 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
-               Supported values:
-                   0   Minimal output ("quiet")
-                   1   Describe what is occurring
-                   2   Describe what is occurring and echo the actual command
-                   3   Ignore the effect of the "@" prefix in make commands
-                   4   Trace shell commands using the shell's -x flag
-
-MKARGON2       If "no", don't build support for Argon2 into libcrypt.
-               Default: yes
-
-MKATF          If "no", don't build the Automated Testing Framework (ATF),
-               which includes the libatf-c, libatf-c++ and libatf-sh libraries
-               and the various command line tools.  Also, because the build of
-               the libraries is disabled, don't build the NetBSD test suite
-               either.
-               Default: yes
-
-MKBFD          Obsolete, use MKBINUTILS
-
-MKBINUTILS     If "no", don't build binutils (gas, ld, etc and libbfd,
-               libopcodes)
-               Default: yes
-
-MKBSDTAR       If "yes", use the libarchive based cpio and tar instead of
-               the pax frontends.
-               Default: yes
-
-MKCATPAGES     If "no", don't build or install the catman pages.
-               Default: no
-
-MKCOMPAT       If "no", don't build or install the src/compat.
-               Default: yes on amd64, mips64 and sparc64, no elsewhere.
-
-MKCOMPATTESTS          If "yes", build and install the NetBSD test suite when
-               building and installing src/compat.
-               Default: no
-
-MKCOMPATX11    If "yes", build and install the X11 libraries when
-               building and installing src/compat.
-               Default: no
-
-MKCOMPATMODULES        If "no", don't build compat modules (xen, etc.)
-               Default: yes
-
-MKCOMPLEX      If "no", don't build libm support for <complex.h>
-               Default: yes
-
-MKCTF          If "no", do not build and install CTF tools, and also
-               don't generate and manipulate CTF data of ELF binaries
-               during build.
-               Default: no
-
-NETBSD_OFFICIAL_RELEASE
-               If defined and set to "yes", the build targets an official
-               NetBSD release which is going to be available from
-               ftp.NetBSD.org / cdn.NetBSD.org. This modifies a few
-               default paths in the installer and also creates different
-               links in the install documentation.
-               The auto-build cluster uses this variable to distinguish
-               "daily" builds from real releases.
-               Default: undefined (no)
-
-NOCTF          Don't generate and manipulate CTF data of ELF binaries
-               during build. It is set internally for standalone programs.
-
-MKCVS          If "no", don't build or install cvs(1).
-               Default: yes
-
-MKDEBUG                If "no", don't build and install separate debugging symbols
-               into /usr/libdata/debug.
-               Default: no
-
-NODEBUG                Don't compile with debugging symbols during build.
-               It is set internally for standalone programs.
-
-MKDEBUGLIB     Build *_g.a debugging libraries, which are compiled
-               with -DDEBUG.
-               Default: no
-
-MKDEBUGKERNEL  If "yes", force building of kernel symbol info and creation
-               of netbsd.gdb in all kernel builds, independently of the
-               settings for "makeoptions DEBUG" in the kernel config file.
-               The .gdb kernels will be included with the kernel sets.
-               Default: no
-
-MKDEBUGTOOLS   If "yes" build the tools with debugging symbols.
-               Default: no
-
-MKDEPINCLUDES  If "yes" issue .include statements in the .depend file
-               instead of inlining the contents of the .d files. Useful
+
+MKAMDGPUFIRMWARE
+               Can be set to "yes" or "no".  Indicates whether to
+               install the /libdata/firmware/amdgpu directory, which is
+               necessary for the amdgpu(4) AMD RADEON GPU video driver.
+
+               Default: "yes" on i386 and x86_64; "no" on other
+               platforms.
+
+MKARGON2       Can be set to "yes" or "no".  Indicates whether the
+               Argon2 hash is enabled in libcrypt.
+
+               Default: "yes"
+
+MKARZERO       Can be set to "yes" or "no".  Indicates whether ar(1)
+               should zero the timestamp, uid, and gid in the archive
+               for reproducible builds.
+
+               Default: The value of MKREPRO (if defined), otherwise
+               "no".
+
+MKATF          Can be set to "yes" or "no".  Indicates whether the
+               Automated Testing Framework (ATF) will be built and
+               installed.  This also controls whether the NetBSD test
+               suite will be built and installed, as the tests rely on
+               ATF and cannot be built without it.
+
+               Forced to "no" if MKCXX=no.
+
+               Default: "yes"
+
+MKBFD          Obsolete, use MKBINUTILS.
+
+MKBINUTILS     Can be set to "yes" or "no".  Indicates whether any of
+               the binutils tools or libraries will be built and
+               installed.  That is, the libraries libbfd, libiberty, or
+               any of the things that depend upon them, e.g.  as(1),
+               ld(1), dbsym(8), or mdsetimage(8).
+
+               Forced to "no" if TOOLCHAIN_MISSING!=no.
+
+               Default: "yes"
+
+MKBSDGREP      Can be set to "yes" or "no".  Determines which
+               implementation of grep(1) will be built and installed.
+               If "yes", use the BSD implementation.  If "no", use the
+               GNU implementation.
+
+               Default: "no"
+
+MKBSDTAR       Can be set to "yes" or "no".  Determines which
+               implementation of cpio(1) and tar(1) will be built and
+               installed.  If "yes", use the libarchive-based
+               implementations.  If "no", use the pax(1) based
+               implementations.
+
+               Default: "yes"
+
+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"
+
+MKCLEANSRC     Can be set to "yes" or "no".  Indicates whether `make
+               clean' and `make cleandir' will delete file names in



Home | Main Index | Thread Index | Old Index