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: sync with mk.conf(5), deduping entries



details:   https://anonhg.NetBSD.org/src/rev/35d42f21c409
branches:  trunk
changeset: 378145:35d42f21c409
user:      lukem <lukem%NetBSD.org@localhost>
date:      Sat Jul 22 18:50:31 2023 +0000

description:
bsd.README: sync with mk.conf(5), deduping entries

Remove most duplication of variables already documented in mk.conf(5).
Add lists of supported and obsolete mk.conf(5) variables
so that searches in this document at least find them
(as per BUILDING).

Sync text from mk.conf(5) for entries that remain.
Explicitly document DESTDIR and RELEASEDIR.

Replace MKMAN=no antipattern with NOMAN=.

Consistently use "option" versus "flag"; option is more generic,
and may include a flag with an argument.

diffstat:

 share/mk/bsd.README |  1379 +++++++-------------------------------------------
 1 files changed, 192 insertions(+), 1187 deletions(-)

diffs (truncated from 1651 to 300 lines):

diff -r 95ef958921dc -r 35d42f21c409 share/mk/bsd.README
--- a/share/mk/bsd.README       Sat Jul 22 18:50:04 2023 +0000
+++ b/share/mk/bsd.README       Sat Jul 22 18:50:31 2023 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.README,v 1.444 2023/06/05 22:36:58 lukem Exp $
+#      $NetBSD: bsd.README,v 1.445 2023/07/22 18:50:31 lukem Exp $
 #      @(#)bsd.README  8.2 (Berkeley) 4/2/94
 
 This is the README file for the make "include" files for the NetBSD
@@ -71,7 +71,7 @@ The basic rule for the variable naming s
 
 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.
+               options for such a command.
 
 MK<feature>    Can be set to "no" to disable feature <feature>,
                or "yes" to enable feature <feature>.
@@ -100,1100 +100,77 @@ TOOL_<tool>     A tool that is provided as p
                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
-are not set by default. These should not be set by Makefiles; they're for
-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 re-makes them if
-               they are out of date, instead of blindly trying to
-               install out of date or non-existent targets.
+Various mk.conf(5) variables control the NetBSD system build.
+These should not be set by Makefiles; they're for the user to define
+in MAKECONF (see mk.conf(5) or <bsd.own.mk> documented below) or on
+the make(1) command line.
 
-               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".
+The supported mk.conf(5) make variables are:
 
-               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).
+       BSDOBJDIR, BSDSRCDIR, BUILD, BUILDID, BUILDINFO, BUILDSEED,
+       CDEXTRA, CONFIGOPTS, COPTS, CPUFLAGS, DESTDIR, EXTERNAL_TOOLCHAIN,
+       INSTALLBOOT_BOARDS, INSTALLWORLDDIR, KERNARCHDIR, KERNCONFDIR,
+       KERNEL_DIR, KERNOBJDIR, KERNSRCDIR, LOCALTIME, MAKEVERBOSE,
+       MKAMDGPUFIRMWARE, MKARGON2, MKARZERO, MKATF, MKBINUTILS, MKBSDGREP,
+       MKBSDTAR, MKCATPAGES, MKCLEANSRC, MKCLEANVERIFY, MKCOMPAT,
+       MKCOMPATMODULES, MKCOMPATTESTS, MKCOMPATX11, MKCOMPLEX, MKCROSSGDB,
+       MKCTF, MKCVS, MKCXX, MKDEBUG, MKDEBUGKERNEL, MKDEBUGLIB,
+       MKDEBUGTOOLS, MKDEPINCLUDES, MKDOC, MKDTB, MKDTC, MKDTRACE,
+       MKDYNAMICROOT, MKFIRMWARE, MKGCC, MKGCCCMDS, MKGDB, MKGROFF,
+       MKGROFFHTMLDOC, MKHESIOD, MKHOSTOBJ, MKHTML, MKIEEEFP, MKINET6,
+       MKINFO, MKIPFILTER, MKISCSI, MKKERBEROS, MKKMOD, MKKYUA, MKLDAP,
+       MKLIBCSANITIZER, MKLIBCXX, MKLIBSTDCXX, MKLINKLIB, MKLINT, MKLLVM,
+       MKLLVMRT, MKLVM, MKMAKEMANDB, MKMAN, MKMANDOC, MKMANZ, MKMDNS,
+       MKNLS, MKNOUVEAUFIRMWARE, MKNPF, MKNSD, MKOBJ, MKOBJDIRS, MKPAM,
+       MKPCC, MKPF, MKPIC, MKPICINSTALL, MKPICLIB, MKPIE, MKPIGZGZIP,
+       MKPOSTFIX, MKPROFILE, MKRADEONFIRMWARE, MKRELRO, MKREPRO,
+       MKREPRO_TIMESTAMP, MKRUMP, MKSANITIZER, MKSHARE, MKSKEY, MKSLJIT,
+       MKSOFTFLOAT, MKSTATICLIB, MKSTATICPIE, MKSTRIPIDENT, MKSTRIPSYM,
+       MKTEGRAFIRMWARE, MKTPM, MKUNBOUND, MKUNPRIVED, MKUPDATE, MKX11,
+       MKX11FONTS, MKX11MOTIF, MKXORG_SERVER, MKYP, MKZFS, NETBSDSRCDIR,
+       NETBSD_OFFICIAL_RELEASE, NOCLEANDIR, NODISTRIBDIRS, NOINCLUDES,
+       OBJMACHINE, RELEASEDIR, RUMPUSER_THREADS, RUMP_CURLWP, RUMP_DEBUG,
+       RUMP_DIAGNOSTIC, RUMP_KTRACE, RUMP_LOCKDEBUG, RUMP_LOCKS_UP,
+       RUMP_NBCOMPAT, RUMP_VIRTIF, RUMP_VNODE_LOCKDEBUG,
+       TOOLCHAIN_MISSING, TOOLDIR, USETOOLS, USE_FORT, USE_HESIOD,
+       USE_INET6, USE_JEMALLOC, USE_KERBEROS, USE_LDAP, USE_LIBCSANITIZER,
+       USE_PAM, USE_PIGZGZIP, USE_SANITIZER, USE_SKEY, USE_SSP,
+       USE_XZ_SETS, USE_YP, X11MOTIFPATH, X11SRCDIR.
 
-               Default: Unset.
+The obsolete mk.conf(5) make variables are:
+
+       EXTSRCSRCDIR, MKBFD, MKCRYPTO, MKEXTSRC, MKKDEBUG, MKKERBEROS4,
+       MKLLD, MKLLDB, MKMCLINKER, MKPERFUSE, MKTOOLSDEBUG, NBUILDJOBS,
+       SHAREDSTRINGS, USE_COMBINE, USE_NEW_TOOLCHAIN.
+
+Notable variables documented in mk.conf(5) and duplicated here:
 
-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.
+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 with the -E option.
+
+               Default: Empty string if USETOOLS=yes; otherwise unset.
+
+RELEASEDIR     If set, specifies the directory to which a release(7)
+               layout will be written at the end of a "make release".
+               If specified, must be an absolute path.
+
+               Note: build.sh will provide a default of "releasedir" (in
+               the top-level .OBJDIR) unless run in `expert' mode with
+               the -E option.
 
                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
-
-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
-               CLEANFILES or CLEANDIRFILES from both the object
-               directory, .OBJDIR, and the source directory, .SRCDIR.
-
-               If "yes", then these file names will be deleted relative
-               to both .OBJDIR and .CURDIR.  If "no", then the deletion
-               will be performed relative to .OBJDIR only.
-
-               Default: "yes"
-
-MKCLEANVERIFY  Can be set to "yes" or "no".  Controls whether `make
-               clean' and `make cleandir' will verify that files have
-               been deleted.  If "yes", then file deletions will be
-               verified using ls(1).  If "no", then file deletions will
-               not be verified.
-
-               Default: "yes"
-
-MKCOMPAT       Can be set to "yes" or "no".  Indicates whether support
-               for multiple ABIs is to be built and installed.
-
-               Forced to "no" if NOCOMPAT is defined, usually in the
-               Makefile before any make(1) .include directives.
-
-               Default: "yes" on aarch64 (without gcc), mips64,
-               powerpc64, riscv64, sparc64, and x86_64; "no" on other
-               platforms.
-
-MKCOMPATMODULES
-               Can be set to "yes" or "no".  Indicates whether the
-               compat kernel modules will be built and installed.
-
-               Forced to "no" if MKCOMPAT=no.
-
-               Default: "yes" on evbppc-powerpc and mips64; "no" on
-               other platforms.
-
-MKCOMPATTESTS  Can be set to "yes" or "no".  Indicates whether the
-               NetBSD test suite for src/compat will be built and
-               installed.
-
-               Forced to "no" if MKCOMPAT=no.
-
-               Default: "no"
-
-MKCOMPATX11    Can be set to "yes" or "no".  Indicates whether the X11
-               libraries will be built and installed.
-
-               Forced to "no" if MKCOMPAT=no.
-
-               Default: "no"
-
-MKCOMPLEX      Can be set to "yes" or "no".  Indicates whether the Math
-               Library (libm, -lm) is compiled with support for
-               <complex.h>.
-
-               Default: "yes"
-
-MKCROSSGDB     Can be set to "yes" or "no".  Create a cross-gdb as a
-               host tool.
-
-               Default: "no"
-
-MKCRYPTO       Obsolete.
-
-MKCTF          Can be set to "yes" or "no".  Indicates whether CTF tools
-               are to be built and installed.  If "yes", the tools will
-               be used to generate and manipulate CTF data of ELF
-               binaries during build.
-
-               Forced to "no" if NOCTF is defined, usually in the
-               Makefile before any make(1) .include directives.
-
-               This is disabled internally for standalone programs in
-               /usr/mdec.
-
-               Default: "yes" on aarch64, amd64, and i386; "no" on other
-               platforms.
-



Home | Main Index | Thread Index | Old Index