Home | History | Annotate | only in /src/share/mk
Up to higher level directory
NameDateSize
bsd.buildinstall.mk25-Aug-2025782
bsd.clang-analyze.mk04-Apr-20121.2K
bsd.clean.mk03-Jun-20233K
bsd.dep.mk03-Jun-20233.2K
bsd.doc.mk11-Apr-20255.6K
bsd.dtb.mk09-Jan-20263.2K
bsd.endian.mk20-Oct-20251.1K
bsd.files.mk06-Apr-20133.6K
bsd.gcc.mk09-May-2018654
bsd.host.mk20-Dec-20212.1K
bsd.hostinit.mk01-May-2018296
bsd.hostlib.mk12-Apr-20241.2K
bsd.hostprog.mk02-Nov-20244.9K
bsd.inc.mk29-Mar-20221.4K
bsd.info.mk18-Aug-20242.3K
bsd.init.mk28-Jul-2003355
bsd.ioconf.mk30-Nov-20141.1K
bsd.kernobj.mk03-Jun-20131.2K
bsd.kinc.mk29-Mar-20222.1K
bsd.klinks.mk25-Apr-20201.4K
bsd.kmodule.mk18-Dec-20258K
bsd.lib.mk21-Jan-202629.8K
bsd.links.mk29-Mar-20222.3K
bsd.lua.mk03-Jun-20234.3K
bsd.man.mk10-Nov-20208.6K
bsd.nls.mk10-Sep-20111.3K
bsd.obj.mk03-Jun-20232.7K
bsd.own.mk10-May-202654.3K
bsd.prog.mk14-Feb-202617.2K
bsd.README28-Apr-202668.3K
bsd.rpc.mk15-Dec-20131.5K
bsd.sanitizer.mk27-Aug-2019797
bsd.shlib.mk23-Aug-2012834
bsd.subdir.mk10-Jul-2022917
bsd.sys.mk03-Feb-202611.2K
bsd.syscall.mk16-Jan-2014419
bsd.test.mk21-Jan-20195.7K
bsd.x11.mk21-Apr-202614.5K
compare-lib-lists18-Nov-20191.2K
Makefile18-May-2020767
sys.mk18-Jan-20266.6K

bsd.README

      1 #	$NetBSD: bsd.README,v 1.465 2026/04/28 15:06:40 martin Exp $
      2 #	@(#)bsd.README	8.2 (Berkeley) 4/2/94
      3 
      4 This is the README file for the make "include" files for the NetBSD
      5 source tree.  The files are installed in /usr/share/mk, and are,
      6 by convention, named with the suffix ".mk".
      7 
      8 Other sources of relevant documentation are BUILDING in the top
      9 level of the NetBSD source tree, and the mk.conf(5) man page.
     10 
     11 Note: this README file is not intended to replace reading through the .mk
     12 files for anything tricky.
     13 
     14 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     15 
     16 RANDOM THINGS WORTH KNOWING:
     17 
     18 The files are simply C-style #include files, and pretty much behave like
     19 you would expect.  The syntax is slightly different in that a single '.'
     20 is used instead of the hash mark, i.e. ".include <bsd.prog.mk>".
     21 
     22 One difference that will save you lots of debugging time is that inclusion
     23 of the file is normally done at the *end* of the Makefile.  The reason for
     24 this is because .mk files often modify variables and behavior based on the
     25 values of variables set in the Makefile.  To make this work, remember that
     26 the FIRST target found is the target that is used, i.e. if the Makefile has:
     27 
     28 	a:
     29 		echo a
     30 	a:
     31 		echo a number two
     32 
     33 the command "make a" will echo "a".  To make things confusing, the SECOND
     34 variable assignment is the overriding one, i.e. if the Makefile has:
     35 
     36 	a=	foo
     37 	a=	bar
     38 
     39 	b:
     40 		echo ${a}
     41 
     42 the command "make b" will echo "bar".  This is for compatibility with the
     43 way the V7 make behaved.
     44 
     45 It is fairly difficult to make the BSD .mk files work when you're building
     46 multiple programs in a single directory.  It is a lot easier to split up the
     47 programs than to deal with the problem.  Most of the agony comes from making
     48 the "obj" directory stuff work right, not because we switched to a new version
     49 of make.  So, don't get mad at us, figure out a better way to handle multiple
     50 architectures so we can quit using the symbolic link stuff.  (Imake doesn't
     51 count.)
     52 
     53 The file .depend in the source directory is expected to contain dependencies
     54 for the source files.  The .depend file is read automatically by make after
     55 reading the Makefile.
     56 
     57 The variable DESTDIR works as before.  It is not set anywhere but will change
     58 the tree where the file gets installed.
     59 
     60 The profiled libraries are no longer built in a different directory than
     61 the regular libraries.  A new suffix, ".po", is used to denote a profiled
     62 object, and ".pico" denotes a shared (position-independent) object.
     63 
     64 There are various make variables used during the build.
     65 
     66 Many variables support a (case sensitive) value of "no" or "yes",
     67 and are tested with  ${VAR} == "no"  and  ${VAR} != "no" .
     68 
     69 
     70 The basic rule for the variable naming scheme is as follows:
     71 
     72 HOST_<cmd>	A command that runs on the host machine regardless of
     73 		whether or not the system is being cross compiled, or
     74 		options for such a command.
     75 
     76 MK<feature>	Can be set to "no" to disable feature <feature>,
     77 		or "yes" to enable feature <feature>.
     78 		Usually defaults to "yes", although some variables
     79 		default to "no".
     80 		Due to make(1) implementation issues, if a temporary
     81 		command-line override of a mk.conf(5) or <bsd.own.mk>
     82 		setting is required whilst still honoring a particular
     83 		Makefile's setting of MK<feature>, use
     84 			env MK<feature>=value make
     85 		instead of
     86 			make MK<feature>=value
     87 
     88 NO<feature>	If defined, disables feature <feature>, overriding
     89 		a user's MK<feature>=yes configuration.
     90 		Not intended for users.
     91 		This is to allow Makefiles to disable functionality
     92 		that they don't support (such as missing man pages).
     93 		NO<feature> variables must be defined before <bsd.own.mk>
     94 		is included, which generally means define before
     95 		any <*.mk> is included.
     96 		See "Variables for a Makefile".
     97 
     98 TOOL_<tool>	A tool that is provided as part of the USETOOLS
     99 		framework.  When not using the USETOOLS framework,
    100 		TOOL_<tool> variables should refer to tools that are
    101 		already installed on the host system.
    102 
    103 Various mk.conf(5) variables control the NetBSD system build.
    104 These should not be set by Makefiles; they're for the user to define
    105 in MAKECONF (see mk.conf(5) or <bsd.own.mk> documented below) or on
    106 the make(1) command line.
    107 
    108 The supported mk.conf(5) make variables are:
    109 
    110 	BSDOBJDIR, BSDSRCDIR, BUILD, BUILDID, BUILDINFO, BUILDSEED,
    111 	CDEXTRA, CONFIGOPTS, COPTS, CPUFLAGS, DESTDIR, EXTERNAL_TOOLCHAIN,
    112 	INSTALLBOOT_BOARDS, INSTALLWORLDDIR, KERNARCHDIR, KERNCONFDIR,
    113 	KERNEL_DIR, KERNOBJDIR, KERNSRCDIR, LOCALTIME, MAKEVERBOSE,
    114 	MKADOSFS, MKAUTOFS, MKAMDGPUFIRMWARE, MKARGON2, MKARZERO, MKATF,
    115 	MKAUDIO, MKBIND, MKBINUTILS, MKBLUETOOTH, MKBSDGREP, MKBSDTAR,
    116 	MKCATPAGES, MKCD9660FS, MKCHFS, MKCLEANSRC, MKCLEANVERIFY, MKCOMPAT,
    117 	MKCOMPATMODULES, MKCOMPATTESTS, MKCOMPATX11, MKCOMPLEX, MKCROSSGDB,
    118 	MKCTF, MKCVS, MKCXX, MKDEBUG, MKDEBUGKERNEL, MKDEBUGLIB, MKDEBUGTOOLS,
    119 	MKDEPINCLUDES, MKDOC, MKDTB, MKDTC, MKDTRACE, MKDYNAMICROOT, MKEFS,
    120 	MKEXT2FS, MKFDESCFS, MKFIDO2, MKFILECOREFS, MKFIRMWARE, MKGCC,
    121 	MKGCCCMDS, MKGDB, MKGROFF, MKGROFFHTMLDOC, MKHESIOD, MKHFS, MKKERNFS,
    122 	MKHOSTOBJ, MKHTML, MKIEEEFP, MKINET6, MKINFO, MKIPFILTER, MKIPSEC,
    123 	MKISCSI, MKKERBEROS, MKKMOD, MKKYUA, MKLDAP, MKLFS, MKLIBCSANITIZER,
    124 	MKLIBCXX, MKLIBSTDCXX, MKLINKLIB, MKLINT, MKLLVM, MKLLVMRT, MKLVM,
    125 	MKMAKEMANDB, MKMAN, MKMANDOC, MKMANZ, MKMDNS, MKMSDOSFS, MKNFS, MKNLS,
    126 	MKNILFS, MKNOUVEAUFIRMWARE, MKNPF, MKNSD, MKNTFS, MKNULLFS, MKOBJ,
    127 	MKOBJDIRS, MKOVERLAYFS, MKPAM, MKPCC, MKPF, MKPIC, MKPICINSTALL,
    128 	MKPICLIB, MKPIE, MKPIGZGZIP, MKPOSTFIX, MKPROCFS, MKPROFILE, MKPTYFS,
    129 	MKQEMUFWCFG, MKRADEONFIRMWARE, MKRELRO, MKREPRO, MKREPRO_TIMESTAMP,
    130 	MKRUMP, MKSANITIZER, MKSHARE, MKSKEY, MKSLJIT, MKSOFTFLOAT, MKSSH,
    131 	MKSTATICLIB, MKSTATICPIE, MKSTRIPIDENT, MKSTRIPSYM, MKSYSVBFS,
    132 	MKTEGRAFIRMWARE, MKTMPFS, MKTPM, MKUDF, MKUMAPFS, MKUNBOUND, MKUNIONFS,
    133 	MKUNPRIVED, MKUPDATE, MKUSB, MKV7FS, MKWLAN, MKX11, MKX11FONTS,
    134 	MKX11MOTIF, MKXORG_SERVER, MKYP, MKZFS, NETBSDSRCDIR,
    135 	NETBSD_OFFICIAL_RELEASE, NOCLEANDIR, NODISTRIBDIRS, NOINCLUDES,
    136 	OBJMACHINE, RELEASEDIR, RUMPUSER_THREADS, RUMP_CURLWP, RUMP_DEBUG,
    137 	RUMP_DIAGNOSTIC, RUMP_KTRACE, RUMP_LOCKDEBUG, RUMP_LOCKS_UP,
    138 	RUMP_NBCOMPAT, RUMP_VIRTIF, RUMP_VNODE_LOCKDEBUG, TOOLCHAIN_MISSING,
    139 	TOOLDIR, USETOOLS, USE_FORT, USE_HESIOD, USE_INET6, USE_JEMALLOC,
    140 	USE_KERBEROS, USE_LDAP, USE_LIBCSANITIZER, USE_PAM, USE_PIGZGZIP,
    141 	USE_SANITIZER, USE_SKEY, USE_SSP, USE_XZ_SETS, USE_YP, X11MOTIFPATH,
    142 	X11SRCDIR.
    143 
    144 The obsolete mk.conf(5) make variables are:
    145 
    146 	EXTSRCSRCDIR, MKBFD, MKCRYPTO, MKEXTSRC, MKKDEBUG, MKKERBEROS4,
    147 	MKLLD, MKLLDB, MKMCLINKER, MKPERFUSE, MKTOOLSDEBUG, NBUILDJOBS,
    148 	SHAREDSTRINGS, USE_COMBINE, USE_NEW_TOOLCHAIN.
    149 
    150 Notable variables documented in mk.conf(5) and duplicated here:
    151 
    152 DESTDIR		Directory to contain the built NetBSD system.  If set,
    153 		special options are passed to the compilation tools to
    154 		prevent their default use of the host system's
    155 		/usr/include, /usr/lib, and so forth.  This pathname must
    156 		be an absolute path, and should not end with a slash (/)
    157 		character.  (For installation into the system's root
    158 		directory, set DESTDIR to an empty string, not to "/").
    159 		The directory must reside on a file system which supports
    160 		long file names and hard links.
    161 
    162 		Note: build.sh will provide a default of
    163 		"destdir.MACHINE" (in the top-level .OBJDIR) unless run
    164 		in 'expert' mode with the -E option.
    165 
    166 		Default: Empty string if USETOOLS=yes; otherwise unset.
    167 
    168 RELEASEDIR	If set, specifies the directory to which a release(7)
    169 		layout will be written at the end of a "make release".
    170 		If specified, must be an absolute path.
    171 
    172 		Note: build.sh will provide a default of "releasedir" (in
    173 		the top-level .OBJDIR) unless run in 'expert' mode with
    174 		the -E option.
    175 
    176 		Default: Unset.
    177 
    178 COPTS.lib<lib>
    179 OBJCOPTS.lib<lib>
    180 LDADD.lib<lib>
    181 CPPFLAGS.lib<lib>
    182 CXXFLAGS.lib<lib>
    183 COPTS.<prog>
    184 OBJCOPTS.<prog>
    185 LDADD.<prog>
    186 CPPFLAGS.<prog>
    187 CXXFLAGS.<prog> These provide a way to specify additions to the associated
    188 		variables in a way that applies only to a particular library
    189 		or program.  <lib> corresponds to the LIB variable set in
    190 		the library's makefile.  <prog> corresponds to either PROG
    191 		or PROG_CXX (if set).  For example, if COPTS.libcrypto is
    192 		set to "-g", "-g" will be added to COPTS only when compiling
    193 		the crypto library.
    194 		See bsd.prog.mk below for more details about these variables.
    195 
    196 The active compiler is selected using the following variables:
    197 AVAILABLE_COMPILER
    198 		List of available compiler suites.  Processed in order
    199 		for selecting the active compiler for each frontend.
    200 HAVE_PCC	If defined, PCC is present and enabled.
    201 HAVE_LLVM	If defined, LLVM/Clang is present and enabled.
    202 UNSUPPORTED_COMPILER.<comp>
    203 		If defined, the support for compiler <comp> is disabled.
    204 
    205 For the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist:
    206 ACTIVE_CC	Active compile suite for the CC frontend.
    207 SUPPORTED_CC	Compile suite with support for the CC frontend.
    208 TOOL_CC.<comp>	Path to the CC frontend for compiler <comp>.
    209 
    210 
    211 =-=-=-=-=   Variables for a Makefile   =-=-=-=-=
    212 
    213 If the following varialbes are defined in the Makefile before
    214 any make(1) .include directives, they force the specific behavior.
    215 
    216 NOCOMPAT	Force MKCOMPAT=no.
    217 NOCTF		Force MKCTF=no.
    218 NODEBUG		Force MKDEBUG=no.
    219 NODEBUGLIB	Force MKDEBUGLIB=no.
    220 NODOC		Force MKDOC=no.
    221 NOFORT		Force USE_FORT=no.
    222 NOHTML		Force MKHTML=no.
    223 NOINFO		Force MKINFO=no.
    224 NOLIBCSANITIZER Force MKLIBCSANITIZER=no (and USE_LIBCSANITIZER=no)
    225 NOLINKLIB	Force MKLINKLIB=no.
    226 NOLINT		Force MKLINT=no.
    227 NOMAN		Force MKMAN=no.
    228 NOMANDOC	Force MKMANDOC=no.
    229 NONLS		Force MKNLS=no.
    230 NOOBJ		Force MKOBJ=no.
    231 NOPIC		Force MKPIC=no.
    232 NOPICINSTALL	Force MKPICINSTALL=no.
    233 NOPIE		Force MKPIE=no.
    234 NOPROFILE	Force MKPROFILE=no.
    235 NORELRO		Force MKREPRO=no.
    236 NOSANITIZER	Force MKSANITIZER=no (and USE_SANITIZER=no)
    237 NOSHARE		Force MKSHARE=no.
    238 NOSSP		Force USE_SSP=no.
    239 NOSTATICLIB	Force MKSTATICLIB=no.
    240 
    241 Special variations:
    242 
    243 NOFULLRELRO!=no Force MKRELRO=no if MKRELRO=full
    244 
    245 TODO: NOFULLRELRO should just be a defined test for consistency.
    246 
    247 
    248 =-=-=-=-=   sys.mk   =-=-=-=-=
    249 
    250 The include file <sys.mk> has the default rules for all makes, in the BSD
    251 environment or otherwise.  You probably don't want to touch <sys.mk>.
    252 
    253 =-=-=-=-=   bsd.own.mk   =-=-=-=-=
    254 
    255 The include file <bsd.own.mk> contains source tree configuration parameters,
    256 such as the owners, groups, etc. for both manual pages and binaries, and
    257 a few global "feature configuration" parameters.
    258 
    259 <bsd.own.mk> has no targets.
    260 
    261 To get system-specific configuration parameters, <bsd.own.mk> will try to
    262 include the mk.conf(5) file specified by the MAKECONF variable, which may
    263 be either set in the environment or provided on the make(1) command line.
    264 MAKECONF defaults to /etc/mk.conf.  mk.conf(5) may define any of the
    265 variables described below.
    266 
    267 <bsd.own.mk> sets the following variables, if they are not already defined
    268 (defaults are in brackets):
    269 
    270 NETBSDSRCDIR	The path to the top level of the NetBSD sources.
    271 		If _SRC_TOP_ != "", that will be used as the default,
    272 		otherwise BSDSRCDIR will be used as the default.
    273 		Various makefiles within the NetBSD source tree will
    274 		use this to reference the top level of the source tree.
    275 		Default: Top level of the NetBSD source tree (as
    276 		determined by the presence of build.sh and tools/) if
    277 		make(1) is run from within that tree; otherwise BSDSRCDIR
    278 		will be used.
    279 
    280 _SRC_TOP_	Top of the system source tree, as determined by <bsd.own.mk>
    281 		based on the presence of tools/ and build.sh.  This variable
    282 		is "internal" to <bsd.own.mk>, although its value is only
    283 		determined once and then propagated to all sub-makes.
    284 
    285 _NETBSD_VERSION_DEPENDS
    286 		A list of files which contain information about
    287 		the version of the NetBSD being built.  This is
    288 		defined only if the current directory appears
    289 		to be inside a NetBSD source tree.  The list of
    290 		files includes ${NETBSDSRCDIR}/sys/sys/param.h
    291 		(which contains the kernel version number),
    292 		${NETBSDSRCDIR}/sys/conf/newvers.sh and
    293 		${NETBSDSRCDIR}/sys/conf/osrelease.sh (which
    294 		interpret the information in sys/sys/param.h), and
    295 		${_SRC_TOP_OBJ_}/params (which is an optional file,
    296 		created by "make build" in ${_SRC_TOP_}/Makefile,
    297 		containing all the variables that may influence the
    298 		build).
    299 
    300 		Targets that depend on the NetBSD version, or on
    301 		variables defined at build time, can declare a
    302 		dependency on ${_NETBSD_VERSION_DEPENDS}, like this:
    303 
    304 			version.c: ${_NETBSD_VERSION_DEPENDS}
    305 				commands to create version.c
    306 
    307 BSDSRCDIR	The real path to the NetBSD source tree, if NETBSDSRCDIR
    308 		isn't defined.
    309 		Default: "/usr/src".
    310 
    311 BSDOBJDIR	The real path to the object directory tree for the NetBSD
    312 		source tree.
    313 		Default: "/usr/obj".
    314 
    315 BINGRP		Binary group.  [wheel]
    316 
    317 BINOWN		Binary owner.  [root]
    318 
    319 BINMODE		Binary mode.  [555]
    320 
    321 NONBINMODE	Mode for non-executable files.  [444]
    322 
    323 MANDIR		Base path for manual installation.  [/usr/share/man/cat]
    324 
    325 MANGRP		Manual group.  [wheel]
    326 
    327 MANOWN		Manual owner.  [root]
    328 
    329 MANMODE		Manual mode.  [${NONBINMODE}]
    330 
    331 MANINSTALL	Manual installation type.  Space separated list:
    332 			catinstall, htmlinstall, maninstall
    333 		Default value derived from MKCATPAGES and MKHTML.
    334 
    335 MAKELINKLIB	Defaults to ${MKLINKLIB} but can be overridden by Makefiles
    336 
    337 MAKESTATICLIB	Defaults to ${MKSTATICLIB} but can be overridden by Makefiles
    338 
    339 LDSTATIC	Control program linking; if set blank, link everything
    340 		dynamically.  If set to "-static", link everything statically.
    341 		If not set, programs link according to their makefile.
    342 
    343 LIBDIR		Base path for library installation.  [/usr/lib]
    344 
    345 LINTLIBDIR	Base path for lint(1) library installation.  [/usr/libdata/lint]
    346 
    347 LIBGRP		Library group.  [${BINGRP}]
    348 
    349 LIBOWN		Library owner.  [${BINOWN}]
    350 
    351 LIBMODE		Library mode.  [${NONBINMODE}]
    352 
    353 LINKINSTALL	Install libraries used by users to link against (.a/.so)
    354 		defaults to ${MAKELINKLIB}
    355 
    356 DOCDIR		Base path for system documentation (e.g. PSD, USD, etc.)
    357 		installation.  [/usr/share/doc]
    358 
    359 DOCGRP		Documentation group.  [wheel]
    360 
    361 DOCOWN		Documentation owner.  [root]
    362 
    363 DOCMODE		Documentation mode.  [${NONBINMODE}]
    364 
    365 GZIP_N_FLAG	Options to pass to TOOL_GZIP to prevent it from inserting
    366 		file names or timestamps in the compressed output.
    367 		[-n, or -nT when TOOL_GZIP is really TOOL_PIGZ]
    368 
    369 NLSDIR		Base path for Native Language Support files installation.
    370 		[/usr/share/nls]
    371 
    372 NLSGRP		Native Language Support files group.  [wheel]
    373 
    374 NLSOWN		Native Language Support files owner.  [root]
    375 
    376 NLSMODE		Native Language Support files mode.  [${NONBINMODE}]
    377 
    378 X11SRCDIR	Directory containing the modular Xorg source.  If
    379 		specified, must be an absolute path.  The main modular
    380 		Xorg source is found in ${X11SRCDIR}/external/mit.
    381 
    382 		Default: ${NETBSDSRCDIR}/../xsrc, if that exists; otherwise
    383 		"/usr/xsrc".
    384 
    385 X11SRCDIR.local The path to the local X11 src tree.  [${X11SRCDIR}/local]
    386 
    387 X11SRCDIR.lib<package>
    388 X11SRCDIR.<package>
    389 		The path to the xorg src tree for the specified package>.
    390 		[${X11SRCDIR}/external/mit/xorg/<package>/dist]
    391 
    392 X11ROOTDIR	Root directory of the X11 installation.  [/usr/X11R7]
    393 
    394 X11BINDIR	X11 bin directory.  [${X11ROOTDIR}/bin]
    395 
    396 X11FONTDIR	X11 font directory.  [${X11ROOTDIR}/lib/X11/fonts]
    397 
    398 X11INCDIR	X11 include directory.  [${X11ROOTDIR}/include]
    399 
    400 X11LIBDIR	X11 lib/x11 (config) directory.  [${X11ROOTDIR}/lib/X11]
    401 
    402 X11MANDIR	X11 manual directory.  [${X11ROOTDIR}/man]
    403 
    404 X11USRLIBDIR	X11 library directory.  [${X11ROOTDIR}/lib]
    405 
    406 STRIPFLAG	The option passed to the install program to cause the binary
    407 		to be stripped.  This is to be used when building your
    408 		own install script so that the entire system can be made
    409 		stripped/not-stripped using a single knob.  []
    410 
    411 COPY		The option passed to the install program to cause the binary
    412 		to be copied rather than moved.  This is to be used when
    413 		building our own install script so that the entire system
    414 		can either be installed with copies, or with moves using
    415 		a single knob.  [-c]
    416 
    417 MAKEDIRTARGETENV
    418 		Environment variables passed to the child make process
    419 		invoked by MAKEDIRTARGET.
    420 
    421 MAKEDIRTARGET dir target [params]
    422 		Runs "cd $${dir} && ${MAKE} [params] $${target}",
    423 		displaying a "pretty" message whilst doing so.
    424 
    425 RELEASEMACHINEDIR
    426 		Subdirectory used below RELEASEDIR when building
    427 		a release.  [${MACHINE},
    428 		or ${MACHINE}-${MACHINE_ARCH} for evb{arm,mips,sh3}*]
    429 
    430 RELEASEMACHINE	Subdirectory or path component used for the following
    431 		paths:
    432 			distrib/${RELEASEMACHINE}
    433 			distrib/notes/${RELEASEMACHINE}
    434 			etc/etc.${RELEASEMACHINE}
    435 		Used when building a release.  [${MACHINE}]
    436 
    437 Additionally, the following variables may be set by <bsd.own.mk> or in a
    438 make configuration file to modify the behavior of the system build
    439 process (default values are in brackets along with comments, if set by
    440 <bsd.own.mk>):
    441 
    442 USETOOLS	Can be set to "yes" or "no".  Indicates whether the tools
    443 		specified by ${TOOLDIR} should be used as part of a build in
    444 		progress. Must be set to "yes" if cross-compiling.
    445 		Supported values:
    446 
    447 		yes	Use the tools from TOOLDIR.
    448 
    449 		no	Do not use the tools from TOOLDIR, but refuse to
    450 			build native compilation tool components that are
    451 			version-specific for that tool.
    452 
    453 		never	Do not use the tools from TOOLDIR, even when
    454 			building native tool components.  This is similar to
    455 			the traditional NetBSD build method, but does not
    456 			verify that the compilation tools in use are
    457 			up-to-date enough in order to build the tree
    458 			successfully.  This may cause build or runtime
    459 			problems when building the whole NetBSD source tree.
    460 
    461 		Default: "no" when using <bsd.*.mk> outside the NetBSD
    462 		source tree (detected automatically) or if
    463 		TOOLCHAIN_MISSING=yes; otherwise "yes".
    464 
    465 OBJECT_FMT	Object file format.  [set to "ELF" on architectures that
    466 		use ELF -- currently all architectures].
    467 
    468 TOOLCHAIN_MISSING
    469 		Can be set to "yes" or "no".  If not "no", this
    470 		indicates that the platform "MACHINE_ARCH" being built
    471 		does not have a working in-tree toolchain.
    472 		If the ${MACHINE_ARCH} in question falls into this category,
    473 		TOOLCHAIN_MISSING is conditionally assigned the value "yes".
    474 		Otherwise, the variable is unconditionally assigned the
    475 		value "no".
    476 
    477 		If not "no", acts as MKBINUTILS=no MKGCC=no MKGDB=no.
    478 
    479 		Default: "no".
    480 
    481 EXTERNAL_TOOLCHAIN
    482 		This variable is not directly set by <bsd.own.mk>, but
    483 		including <bsd.own.mk> is the canonical way to gain
    484 		access to this variable.  The variable should be defined
    485 		either in the user's environment or in the user's mk.conf(5)
    486 		file.
    487 
    488 		If defined, this variable indicates the root directory of
    489 		an external toolchain which will be used to build the
    490 		tree.  For example, if a platform is a ${TOOLCHAIN_MISSING}
    491 		platform, EXTERNAL_TOOLCHAIN can be used to re-enable the
    492 		cross-compile framework.
    493 
    494 		If EXTERNAL_TOOLCHAIN is defined, act as MKGCC=no, since
    495 		the external version of the compiler may not be able to build
    496 		the library components of the in-tree compiler.
    497 
    498 		This variable should be used in conjunction with an
    499 		appropriate HAVE_GCC or HAVE_LLVM setting to control the
    500 		compiler options.
    501 
    502 		Note: This variable is not yet used in as many places as
    503 		it should be.  Expect the exact semantics of this variable
    504 		to change in the short term as parts of the cross-compile
    505 		framework continue to be cleaned up.
    506 
    507 The following variables are defined to commands to perform the
    508 appropriate operation, with the default in [brackets].  Note that
    509 the defaults change if USETOOLS == "yes":
    510 
    511 TOOL_AMIGAAOUT2BB	aout to Amiga bootblock converter.  [amiga-aout2bb]
    512 
    513 TOOL_AMIGAELF2BB	ELF to Amiga bootblock converter.  [amiga-elf2bb]
    514 
    515 TOOL_AMIGATXLT		Amiga assembly language format translator.  [amiga-txlt]
    516 
    517 TOOL_ARMELF2AOUT	ELF to a.out executable converter [arm-elf2aout}
    518 
    519 TOOL_ASN1_COMPILE	ASN1 compiler.  [asn1_compile]
    520 
    521 TOOL_AWK		Pattern-directed scanning/processing language.  [awk]
    522 
    523 TOOL_CAP_MKDB		Create capability database.  [cap_mkdb]
    524 
    525 TOOL_CAT		Concatenate and print files.  [cat]
    526 
    527 TOOL_CKSUM		Display file checksums.  [cksum]
    528 
    529 TOOL_COMPILE_ET		Error table compiler.  [compile_et]
    530 
    531 TOOL_CONFIG		Build kernel compilation directories.  [config]
    532 
    533 TOOL_CRUNCHGEN		Generate crunched binary build environment.  [crunchgen]
    534 
    535 TOOL_CTAGS		Create a tags file.  [ctags]
    536 
    537 TOOL_DB			Manipulate db(3) databases.  [db]
    538 
    539 TOOL_DISKLABEL		Read and write disk pack label.  [disklabel]
    540 
    541 TOOL_EQN		Format equations for groff.  [eqn]
    542 
    543 TOOL_FDISK		MS-DOS partition maintenance program.  [fdisk]
    544 
    545 TOOL_FGEN		IEEE 1275 Open Firmware FCode Tokenizer.  [fgen]
    546 
    547 TOOL_GENASSYM		Generate constants for assembly files.  [genassym]
    548 
    549 TOOL_GENCAT		Generate NLS message catalogs.  [gencat]
    550 
    551 TOOL_GMAKE		GNU make utility.  [gmake]
    552 
    553 TOOL_GREP		Print lines matching a pattern.  [grep]
    554 
    555 TOOL_GROFF		Front end for groff document formatting system.  [groff]
    556 
    557 TOOL_GZIP		Compression/decompression tool.  [gzip]
    558 
    559 TOOL_GZIP_N		Same as TOOL_GZIP, plus a command line option to
    560 			prevent it from inserting file names or timestamps
    561 			into the compressed output.
    562 			[${TOOL_GZIP} ${GZIP_N_FLAG}]
    563 
    564 TOOL_HEXDUMP		Ascii, decimal, hexadecimal, octal dump.  [hexdump]
    565 
    566 TOOL_HP300MKBOOT	Make bootable image for hp300.  [hp300-mkboot]
    567 
    568 TOOL_HPPAMKBOOT		Make bootable image for hppa.  [hppa-mkboot]
    569 
    570 TOOL_INDXBIB		Make bibliographic database's inverted index.  [indxbib]
    571 
    572 TOOL_INSTALLBOOT	Install disk bootstrap software.  [installboot]
    573 
    574 TOOL_INSTALL_INFO	Update info/dir entries.  [install-info]
    575 
    576 TOOL_JOIN		Relational database operator.  [join]
    577 
    578 TOOL_M4			M4 macro language processor.  [m4]
    579 
    580 TOOL_M68KELF2AOUT	ELF to a.out executable converter [m68k-elf2aout}
    581 
    582 TOOL_MACPPCFIXCOFF	Fix up xcoff headers for macppc.  [macppc-fixcoff]
    583 
    584 TOOL_MAKEFS		Create file system image from directory tree.  [makefs]
    585 
    586 TOOL_MAKEINFO		Translate Texinfo documents.  [makeinfo]
    587 
    588 TOOL_MAKEWHATIS		Create a whatis.db database.  [makewhatis]
    589 
    590 TOOL_MDSETIMAGE		Set kernel RAM disk image.  [mdsetimage]
    591 
    592 TOOL_MENUC		Menu compiler.  [menuc]
    593 
    594 TOOL_MIPSELF2ECOFF	Convert ELF-format executable to ECOFF for mips.
    595 			[mips-elf2ecoff]
    596 
    597 TOOL_MKCSMAPPER		Make charset mapping table.  [mkcsmapper]
    598 
    599 TOOL_MKESDB		Make encoding scheme database.  [mkesdb]
    600 
    601 TOOL_MKLOCALE		Make LC_CTYPE locale files.  [mklocale]
    602 
    603 TOOL_MKMAGIC		Create database for file(1).  [file]
    604 
    605 TOOL_MKNOD		Make device special file.  [mknod]
    606 
    607 TOOL_MKTEMP		Make (unique) temporary file name.  [mktemp]
    608 
    609 TOOL_MSGC		Simple message list compiler.  [msgc]
    610 
    611 TOOL_MTREE		Map a directory hierarchy.  [mtree]
    612 
    613 TOOL_NCDCS		Turn ELF kernel into a NCD firmware image. [ncdcs]
    614 
    615 TOOL_PAX		Manipulate file archives and copy directories.  [pax]
    616 
    617 TOOL_PIC		Compile pictures for groff.  [pic]
    618 
    619 TOOL_PIGZ		Parallel compressor.  [pigz]
    620 
    621 TOOL_POWERPCMKBOOTIMAGE Make bootable image for powerpc.  [powerpc-mkbootimage]
    622 
    623 TOOL_PWD_MKDB		Generate the password databases.  [pwd_mkdb]
    624 
    625 TOOL_REFER		Preprocess bibliographic references for groff.  [refer]
    626 
    627 TOOL_ROFF_ASCII		Generate ASCII groff output.  [nroff]
    628 
    629 TOOL_ROFF_DVI		Generate DVI groff output.  [${TOOL_GROFF} -Tdvi]
    630 
    631 TOOL_ROFF_HTML		Generate HTML groff output.
    632 			[${TOOL_GROFF} -Tlatin1 -mdoc2html]
    633 
    634 TOOL_ROFF_PS		Generate PS groff output.  [${TOOL_GROFF} -Tps]
    635 
    636 TOOL_ROFF_RAW		Generate "raw" groff output.  [${TOOL_GROFF} -Z]
    637 
    638 TOOL_RPCGEN		Remote Procedure Call (RPC) protocol compiler.  [rpcgen]
    639 
    640 TOOL_SED		Stream editor.  [sed]
    641 
    642 TOOL_SOELIM		Eliminate .so's from groff input.  [soelim]
    643 
    644 TOOL_SPARKCRC		Generate a crc suitable for use in a sparkive file.
    645 			[sparkcrc]
    646 
    647 TOOL_STAT		Display file status.  [stat]
    648 
    649 TOOL_STRFILE		Create a random access file for storing strings.
    650 			[strfile]
    651 
    652 TOOL_SUNLABEL		Read or modify a SunOS disk label.  [sunlabel]
    653 
    654 TOOL_TBL		Format tables for groff.  [tbl]
    655 
    656 TOOL_UUDECODE		Uudecode a binary file.  [uudecode]
    657 
    658 TOOL_VAXMOPCOPY		Creates a MOP image from another executable format.
    659 			[vax-mopcopy]
    660 
    661 TOOL_VGRIND		Grind nice listings of programs.  [vgrind -f]
    662 
    663 TOOL_ZIC		Time zone compiler.  [zic]
    664 
    665 For each possible value of MACHINE_CPU, MACHINES.${MACHINE_CPU} contain a
    666 list of what ports can be built for it.  This keeps those definitions in
    667 centralized place.
    668 
    669 <bsd.own.mk> is generally useful when building your own Makefiles so that
    670 they use the same default owners etc. as the rest of the tree.
    671 
    672 
    673 =-=-=-=-=   bsd.buildinstall.mk  =-=-=-=-=
    674 
    675 The include file <bsd.buildinstall.mk> defines the 'build_install' target
    676 to compute the list of subdirectories delimited by .WAIT barriers, and
    677 create an appropriate ordered list of commands in the 'build_install' target.
    678 
    679 <bsd.buildinstall.mk> uses the following variables:
    680 
    681 SUBDIR		A list of subdirectories that should be built as well.
    682 		Each of the targets will execute the same target in the
    683 		subdirectories.
    684 		See the description of SUBDIR in <bsd.subdir.mk> for
    685 		an explanation of the .WAIT token.
    686 
    687 
    688 =-=-=-=-=   bsd.clang-analyze.mk   =-=-=-=-=
    689 
    690 The include file <bsd.clang-analyze.mk> defines the 'analyze' target
    691 to run clang's static analyzer "clang-analyzer".
    692 
    693 <bsd.clang-analyze.mk> uses the following variables:
    694 
    695 CLANG_ANALYZE_CFLAGS
    696 		CFLAGS for clang-analyzer.
    697 		Defaults to CFLAGS with -Wa,--fata-warnings removed.
    698 
    699 CLANG_ANALYZE_CHECKERS
    700 		clang-analyzer checks to run.
    701 		Default: core, decode, security, unix.
    702 
    703 CLANG_ANALYZE_CXXFLAGS
    704 		CXXFLAGS for clang-analyzer.
    705 		Defaults to CXXFLAGS with -Wa,--fata-warnings removed.
    706 
    707 CLANG_ANALYZE_FLAGS
    708 		Flags for clang-analyzer, includes --analyze and
    709 		analyzers listed in CLANG_ANALYZE_CHECKERS.
    710 
    711 <bsd.clang-analyzers.mk> defines the following variables:
    712 
    713 CLANG_ANALYZE_OUTPUT
    714 		List of filenames to create with ".clang-analyzer" suffix,
    715 		derived from CLANG_ANALYZE_SRCS.
    716 
    717 CLANG_ANALYZE_SRCS
    718 		List of source files to analyser, derived from entries in
    719 		SRCS and DPSRCS that have a suffix of ".c", ".C", ".cc",
    720 		".cpp", or ".cxx".
    721 
    722 
    723 =-=-=-=-=   bsd.clean.mk   =-=-=-=-=
    724 
    725 The include file <bsd.clean.mk> defines the 'clean' and 'cleandir' targets.
    726 
    727 <bsd.clean.mk> uses the following variables:
    728 
    729 CLEANFILES	Files to remove for both the 'clean' and 'cleandir' targets.
    730 
    731 CLEANDIRFILES	Files to remove for the 'cleandir' target, but not for
    732 		the 'clean' target.
    733 
    734 MKCLEANSRC	Controls whether or not the 'clean' and 'cleandir' targets
    735 		will delete files from both the object directory,
    736 		${.OBJDIR}, and the source directory, ${.CURDIR}.
    737 
    738 		If MKCLEANSRC is set to "no", then the file names in
    739 		CLEANFILES or CLEANDIRFILES are interpreted relative
    740 		to the object directory, ${.OBJDIR}.  This is the
    741 		traditional behaviour.
    742 
    743 		If MKCLEANSRC is set to "yes", then the file deletion
    744 		is performed relative to both the object directory,
    745 		${.OBJDIR}, and the source directory, ${.CURDIR}.  (This
    746 		has no effect if ${.OBJDIR} is the same as ${.CURDIR}.)
    747 		Deleting files from ${.CURDIR} is intended to remove
    748 		stray output files that had been left in the source
    749 		directory by an earlier build that did not use object
    750 		directories.
    751 
    752 		The default is MKCLEANSRC=yes.  If you always build with
    753 		separate object directories, and you are sure that there
    754 		are no stray files in the source directories, then you
    755 		may set MKCLEANSRC=no to save some time.
    756 
    757 MKCLEANVERIFY	Controls whether or not the 'clean' and 'cleandir' targets
    758 		will verify that files have been deleted.
    759 
    760 		If MKCLEANVERIFY is set to "no", then the files will
    761 		be deleted using a "rm -f" command, and its success or
    762 		failure will be ignored.
    763 
    764 		If MKCLEANVERIFY is set to "yes", then the success of
    765 		the "rm -f" command will be verified using an "ls"
    766 		command.
    767 
    768 		The default is MKCLEANVERIFY=yes.  If you are sure that
    769 		there will be no problems caused by file permissions,
    770 		read-only file systems, or the like, then you may set
    771 		MKCLEANVERIFY=no to save some time.
    772 
    773 To use the 'clean' and 'cleandir' targets defined in <bsd.clean.mk>, other
    774 Makefiles or <bsd.*.mk> files should append file names to the CLEANFILES
    775 or CLEANDIRFILES variables.  For example:
    776 
    777 	    CLEANFILES+= a.out
    778 	    CLEANDIRFILES+= .depend
    779 
    780 	    .include <bsd.clean.mk>
    781 
    782 The files listed in CLEANFILES and CLEANDIRFILES must not be
    783 directories, because the potential risk from running "rm -rf" commands
    784 in <bsd.clean.mk> is considered too great.  If you want to recursively
    785 delete a directory as part of "make clean" or "make cleandir" then you
    786 need to provide your own target.
    787 
    788 
    789 =-=-=-=-=   bsd.dep.mk   =-=-=-=-=
    790 
    791 The include file <bsd.dep.mk> contains the default targets for building
    792 .depend files.  <bsd.dep.mk> creates .d files from entries in SRCS and DPSRCS
    793 that are C, C++, or Objective C source files, and builds .depend from the
    794 .d files.  All other files in SRCS and all of DPSRCS will be used as
    795 dependencies for the .d files.  In order for this to function correctly,
    796 it should be .included after all other .mk files and directives that may
    797 modify SRCS or DPSRCS.
    798 
    799 <bsd.dep.mk> uses the following variables:
    800 
    801 SRCS		List of source files to build the program.
    802 
    803 DPSRCS		List of source files which are needed for generating
    804 		dependencies, but are not needed in ${SRCS}.
    805 
    806 NODPSRCS	List of source files to not add to .depend.
    807 
    808 
    809 =-=-=-=-=   bsd.doc.mk  =-=-=-=-=
    810 
    811 The include file <bsd.doc.mk> contains the targets for building
    812 roff documentation.
    813 
    814 TODO: variables
    815 
    816 
    817 =-=-=-=-=   bsd.dtb.mk  =-=-=-=-=
    818 
    819 The include file <bsd.dtb.mk> contains the targets for building
    820 device tree blobs.
    821 
    822 TODO: variables
    823 
    824 
    825 =-=-=-=-=   bsd.endian.mk  =-=-=-=-=
    826 
    827 The include file <bsd.endian.mk> determines the target endian and
    828 defines the variable TARGET_ENDIANNESS.
    829 
    830 
    831 =-=-=-=-=   bsd.files.mk   =-=-=-=-=
    832 
    833 The include file <bsd.files.mk> handles the FILES variables and is included
    834 from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables:
    835 
    836 FILES		The list of files to install.
    837 
    838 CONFIGFILES	Similar semantics to FILES, except that the files
    839 		are installed by the 'configinstall' target,
    840 		not the 'install' target.
    841 		The FILES* variables documented below also apply.
    842 
    843 FILESOWN	File owner.  [${BINOWN}]
    844 
    845 FILESGRP	File group.  [${BINGRP}]
    846 
    847 FILESMODE	File mode.  [${NONBINMODE}]
    848 
    849 FILESDIR	The location to install the files.
    850 
    851 FILESNAME	Optional name to install each file as.
    852 
    853 FILESOWN_<fn>	File owner of the specific file <fn>.
    854 
    855 FILESGRP_<fn>	File group of the specific file <fn>.
    856 
    857 FILESMODE_<fn>	File mode of the specific file <fn>.
    858 
    859 FILESDIR_<fn>	The location to install the specific file <fn>.
    860 
    861 FILESNAME_<fn>	Optional name to install file <fn> as.
    862 
    863 FILESBUILD	If this variable is defined, then its value will be
    864 		used as the default for all FILESBUILD_<fn> variables.
    865 		Otherwise, the default will be "no".
    866 
    867 FILESBUILD_<fn> A value different from "no" will add the file <fn> to the list
    868 		of targets to be built by 'realall'.  Users of that variable
    869 		should provide a target to build the file.
    870 
    871 
    872 BUILDSYMLINKS	List of two word items:
    873 			lnsrc lntgt
    874 		For each lnsrc item, create a symlink named lntgt.
    875 		The lntgt symlinks are removed by the 'cleandir' target.
    876 
    877 UUDECODE_FILES	List of files which are stored as <file>.uue in the source
    878 		tree. Each one will be decoded with ${TOOL_UUDECODE}.
    879 		The source files have a ".uue" suffix, the generated files do
    880 		not.
    881 
    882 UUDECODE_FILES_RENAME_<fn>
    883 		Rename the output from the decode to the provided name <fn>.
    884 
    885 		Note: These files are simply decoded, with no install or other
    886 		rule applying implicitly except being added to the 'clean'
    887 		target.
    888 
    889 
    890 =-=-=-=-=   bsd.gcc.mk   =-=-=-=-=
    891 
    892 The include file <bsd.gcc.mk> computes various parameters related to GCC
    893 support libraries.  <bsd.gcc.mk> defines no targets. <bsd.own.mk> MUST be
    894 included before <bsd.gcc.mk>.
    895 
    896 The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each
    897 of which need to know where to find certain GCC support libraries.
    898 
    899 The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable,
    900 which is generally set by the user.  If EXTERNAL_TOOLCHAIN it set, then
    901 the compiler is asked where to find the support libraries, otherwise the
    902 support libraries are found in ${DESTDIR}/usr/lib.
    903 
    904 <bsd.gcc.mk> sets the following variables:
    905 
    906 _GCC_CRTBEGIN	The full path name to crtbegin.o.
    907 
    908 _GCC_CRTBEGINS	The full path name to crtbeginS.o.
    909 
    910 _GCC_CRTEND	The full path name to crtend.o.
    911 
    912 _GCC_CRTENDS	The full path name to crtendS.o.
    913 
    914 _GCC_LIBGCCDIR	The directory where libgcc.a is located.
    915 
    916 
    917 =-=-=-=-=   bsd.hostinit.mk  =-=-=-=-=
    918 
    919 The include file <bsd.hostinit.mk> is included for host program builds
    920 that don't need MKREPRO, lint, manual pages, info files, etc.
    921 
    922 
    923 =-=-=-=-=   bsd.hostlib.mk   =-=-=-=-=
    924 
    925 The include file <bsd.hostlib.mk> is included for host library builds.
    926 
    927 TODO: variables
    928 
    929 
    930 =-=-=-=-=   bsd.hostprog.mk  =-=-=-=-=
    931 
    932 The include file <bsd.hostprog.mk> is included for host program builds.
    933 
    934 TODO: variables
    935 
    936 
    937 =-=-=-=-=   bsd.inc.mk   =-=-=-=-=
    938 
    939 The include file <bsd.inc.mk> defines the 'includes' target and uses the
    940 variables:
    941 
    942 INCS		The list of include files.
    943 
    944 INCSDIR		The location to install the include files.
    945 
    946 INCSNAME	Target name of the include file, if only one; same as
    947 		FILESNAME, but for include files.
    948 
    949 INCSYMLINKS	Similar to SYMLINKS in <bsd.links.mk>, except that these
    950 		are installed in the 'includes' target and not the
    951 		(much later) 'install' target.
    952 
    953 INCSNAME_<file> The name file <file> should be installed as, if not <file>,
    954 		same as FILESNAME_<file>, but for include files.
    955 
    956 
    957 =-=-=-=-=   bsd.info.mk   =-=-=-=-=
    958 
    959 The include file <bsd.info.mk> is used to generate and install GNU Info
    960 documentation from respective Texinfo source files.
    961 
    962 <bsd.info.mk> defines three implicit targets ('.txi.info', '.texi.info',
    963 and '.texinfo.info'), and uses the following variables:
    964 
    965 TEXINFO		List of Texinfo source files.  Info documentation will
    966 		consist of single files with the extension replaced by
    967 		.info.
    968 
    969 INFOFLAGS	Options to pass to makeinfo.  []
    970 
    971 
    972 =-=-=-=-=   bsd.init.mk   =-=-=-=-=
    973 
    974 The include file <bsd.init.mk> is included by most other <bsd.*.mk> files,
    975 and includes the file named "../Makefile.inc" if it exists,
    976 as well as the include file <bsd.own.mk>.
    977 
    978 
    979 =-=-=-=-=   bsd.kernobj.mk   =-=-=-=-=
    980 
    981 The include file <bsd.kernobj.mk> defines variables related to the
    982 location of kernel sources and object directories.
    983 
    984 KERNSRCDIR	Directory at the top of the kernel source..
    985 		[${NETBSDSRCDIR}/sys]
    986 
    987 KERNARCHDIR	Directory under KERNSRCDIR containing the machine
    988 		dependent kernel sources.
    989 		[arch/${MACHINE}]
    990 
    991 KERNCONFDIR	Directory containing the kernel configuration files.
    992 		[${KERNSRCDIR}/${KERNARCHDIR}/conf]
    993 
    994 KERNOBJDIR	Directory for kernel builds.  For example, the kernel
    995 		GENERIC will be compiled in KERNOBJDIR/GENERIC.
    996 		Default:
    997 		${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile
    998 		if it exists or the make(1) target 'obj' is being made;
    999 		otherwise ${KERNSRCDIR}/${KERNARCHDIR}/compile.
   1000 
   1001 It is important that Makefiles (such as those under src/distrib) that
   1002 wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR}
   1003 rather than make assumptions about the location of the compiled kernel.
   1004 
   1005 
   1006 =-=-=-=-=   bsd.kinc.mk   =-=-=-=-=
   1007 
   1008 The include file <bsd.kinc.mk> defines the many targets ('includes',
   1009 'subdirectories', etc.), and is used by kernel makefiles to handle
   1010 include file installation.  <bsd.kinc.mk> is intended to be included alone,
   1011 by kernel Makefiles, and uses similar variables to <bsd.inc.mk>.
   1012 Please see <bsd.kinc.mk> for more details, and keep the documentation
   1013 in that file up to date.
   1014 
   1015 
   1016 =-=-=-=-=   bsd.klinks.mk   =-=-=-=-=
   1017 
   1018 The include file <bsd.klinks.mk> is included to create kernel include
   1019 directories.
   1020 
   1021 TODO: variables
   1022 
   1023 
   1024 =-=-=-=-=   bsd.kmodule.mk   =-=-=-=-=
   1025 
   1026 The include file <bsd.kmodule.mk> is included to create kernel modules.
   1027 
   1028 TODO: variables
   1029 
   1030 
   1031 =-=-=-=-=   bsd.lib.mk   =-=-=-=-=
   1032 
   1033 The include file <bsd.lib.mk> has support for building libraries.
   1034 <bsd.lib.mk> has the same targets as <bsd.prog.mk>: 'all', 'clean',
   1035 'cleandir', 'depend', 'distclean', 'includes', 'install', 'lint', and 'tags'.
   1036 Additionally, <bsd.lib.mk> has a 'checkver' target which checks for installed
   1037 shared object libraries whose version is greater that the version of the source.
   1038 
   1039 <bsd.lib.mk> has a limited number of suffixes, consistent with the current
   1040 needs of the BSD tree.  <bsd.lib.mk> includes <bsd.shlib.mk> to get shared
   1041 library parameters.
   1042 
   1043 <bsd.lib.mk> sets/uses the following variables:
   1044 
   1045 LIB		The name of the library to build.
   1046 
   1047 LIBDIR		Target directory for libraries.
   1048 
   1049 SHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR}
   1050 		is not "no".
   1051 
   1052 LIBSUBDIR	If nonempty, subdirectory of LIBDIR where this library
   1053 		is installed.
   1054 		Default: Empty.
   1055 
   1056 SHLIB_MAJOR
   1057 SHLIB_MINOR
   1058 SHLIB_TEENY	Major, minor, and teeny version numbers of shared library
   1059 
   1060 USE_SHLIBDIR	If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR}
   1061 		as the path to install shared libraries to.
   1062 		USE_SHLIBDIR must be defined before <bsd.own.mk> is included.
   1063 		Default: no
   1064 
   1065 LIBISMODULE	If not "no", install as ${LIB}.so (without the "lib" prefix),
   1066 		and act as "MKDEBUGLIB=no MKPICINSTALL=no MKPROFILE=no
   1067 		MKSTATICLIB=no". Also do not install the lint library.
   1068 		Default: no
   1069 
   1070 LIBISPRIVATE	If not "no", act as "MKDEBUGLIB=no MKPIC=no MKPROFILE=no",
   1071 		and don't install the (.a) library or the lint library.
   1072 		This is useful for "build only" helper libraries.
   1073 		If set to "pic", then a _pic.a library is also produced,
   1074 		so that it can be incorporated into other shared objects.
   1075 		Default: no
   1076 
   1077 LIBISCXX	If not "no", Use ${CXX} instead of ${CC} to link
   1078 		shared libraries.
   1079 		This is useful for C++ libraries.
   1080 		Default: no
   1081 
   1082 LINTLIBDIR	Target directory for lint libraries.
   1083 
   1084 LIBGRP		Library group.
   1085 
   1086 LIBOWN		Library owner.
   1087 
   1088 LIBMODE		Library mode.
   1089 
   1090 LDADD		Additional loader objects.
   1091 
   1092 MAN		The manual pages to be installed (use a .1 - .9 suffix).
   1093 
   1094 NOCHECKVER_<library>
   1095 NOCHECKVER	If set, disables checking for installed shared object
   1096 		libraries with versions greater than the source.  A
   1097 		particular library name, without the "lib" prefix, may
   1098 		be appended to the variable name to disable the check for
   1099 		only that library.
   1100 
   1101 SRCS		List of source files to build the library.  Suffix types
   1102 		.s, .c, and .f are supported.  Note, .s files are preferred
   1103 		to .c files of the same name.  (This is not the default for
   1104 		versions of make.)
   1105 
   1106 LIBDPLIBS/
   1107 PROGDPLIBS	A list of the tuples:
   1108 			libname	 path-to-srcdir-of-libname
   1109 
   1110 		Instead of depending on installed versions of the libraries,
   1111 		one can depend on their built version in the source directory.
   1112 		This is useful for finding private libraries (LIBISPRIVATE).
   1113 
   1114 		For each tuple;
   1115 		     *	LIBDO.libname contains the .OBJDIR of the library
   1116 			'libname', and if it is not set it is determined
   1117 			from the srcdir and added to MAKEOVERRIDES (the
   1118 			latter is to allow for build time optimization).
   1119 		     *	LDADD gets  -L${LIBDO.libname} -llibname    added.
   1120 		     *	DPADD gets  ${LIBDO.libname}/liblibname.so  or
   1121 				    ${LIBDO.libname}/liblibname.a   added.
   1122 
   1123 		The special value "_external" for LIBDO.lib makes the
   1124 		build system to assume the library comes from outside
   1125 		of the NetBSD source tree and only causes -llibname
   1126 		to be added to LDADD.
   1127 
   1128 		This variable may be used for individual libraries/programs,
   1129 		as well as in parent directories to cache common libraries
   1130 		as a build-time optimization.
   1131 
   1132 LIBDPSUBDIRS/
   1133 PROGDPSUBDIRS	A list of subdirectory paths _subdir_ for which the
   1134 		ldflags
   1135 
   1136 			-L${SHLIBDIR}/${_subdir_}
   1137 			-Wl,-rpath,${SHLIBDIR}/${_subdir_}
   1138 
   1139 		should be added, for libraries or programs that depend
   1140 		on libraries which are installed in nonstandard
   1141 		locations like /usr/lib/private.
   1142 		Default: Empty.
   1143 
   1144 LIB_EXPSYM	File listing all symbols expected to be defined by the
   1145 		library.  Each line has a single symbol.  If the symbol
   1146 		is versioned, it is followed by '@@', if it is the
   1147 		default version, or '@', if not, and the symbol
   1148 		version.  The lines must be sorted in LANG=C.
   1149 
   1150 		bsd.lib.mk checks to make sure exactly the set of
   1151 		symbols in the file named in LIB_EXPSYM is defined when the
   1152 		library is built; if not, the build will fail and print a
   1153 		diff from the expected symbols to the actual symbols.
   1154 		During development, you can update the expected symbols
   1155 		from the actual ones with 'make update-symbols'.
   1156 
   1157 VERSION_MAP	Path to an ld version script to use when linking the
   1158 		library.  Resolved from .PATH like a target
   1159 		prerequisite.
   1160 
   1161 
   1162 The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
   1163 if it exists, as well as the include file <bsd.man.mk>.
   1164 
   1165 <bsd.lib.mk> has rules for building profiled objects; profiled libraries are
   1166 built by default.
   1167 
   1168 Libraries are ranlib'd when made.
   1169 
   1170 
   1171 =-=-=-=-=   bsd.links.mk   =-=-=-=-=
   1172 
   1173 The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
   1174 and is included from <bsd.lib.mk> and <bsd.prog.mk>.
   1175 
   1176 LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log
   1177 is used. The defaults may be modified by other <bsd.*.mk> files which
   1178 include <bsd.links.mk>.  In the future, these variables may be replaced
   1179 by a method for explicitly recording hard links in a metadata log.
   1180 
   1181 LINKS		The list of hard links, consisting of pairs of paths:
   1182 			source-file target-file
   1183 		${DESTDIR} is prepended to both paths before linking.
   1184 		For example, to link /bin/test and /bin/[, use:
   1185 			LINKS=/bin/test /bin/[
   1186 
   1187 CONFIGLINKS	Similar semantics to LINKS, except that the links
   1188 		are installed by the 'configinstall' target,
   1189 		not the 'install' target.
   1190 
   1191 SYMLINKS	The list of symbolic links, consisting of pairs of paths:
   1192 			source-file target-file
   1193 		${DESTDIR} is only prepended to target-file before linking.
   1194 		For example, to symlink /usr/bin/tar to /bin/tar resulting
   1195 		in ${DESTDIR}/usr/bin/tar -> /bin/tar:
   1196 			SYMLINKS=/bin/tar /usr/bin/tar
   1197 
   1198 CONFIGSYMLINKS	Similar semantics to SYMLINKS, except that the symbolic links
   1199 		are installed by the 'configinstall' target,
   1200 		not the 'install' target.
   1201 
   1202 LINKSOWN	Link owner.  [${BINOWN}]
   1203 
   1204 LINKSGRP	Link group.  [${BINGRP}]
   1205 
   1206 LINKSMODE	Link mode.  [${NONBINMODE}]
   1207 
   1208 LINKSOWN_<fn>	Link owner of the specific file <fn>.
   1209 
   1210 LINKSGRP_<fn>	Link group of the specific file <fn>.
   1211 
   1212 LINKSMODE_<fn>	Link mode of the specific file <fn>.
   1213 
   1214 
   1215 =-=-=-=-=   bsd.lua.mk   =-=-=-=-=
   1216 
   1217 The include file <bsd.lua.mk> is included to create Lua modules.
   1218 
   1219 TODO: variables
   1220 
   1221 
   1222 =-=-=-=-=   bsd.man.mk   =-=-=-=-=
   1223 
   1224 The include file <bsd.man.mk> handles installing manual pages and their
   1225 links.
   1226 
   1227 <bsd.man.mk> has a three targets:
   1228 
   1229 	catinstall:
   1230 		Install the preformatted manual pages and their links.
   1231 	htmlinstall:
   1232 		Install the HTML manual pages and their links.
   1233 	maninstall:
   1234 		Install the manual page sources and their links.
   1235 
   1236 <bsd.man.mk> sets/uses the following variables:
   1237 
   1238 MANDIR		Base path for manual installation.
   1239 
   1240 MANGRP		Manual group.
   1241 
   1242 MANOWN		Manual owner.
   1243 
   1244 MANMODE		Manual mode.
   1245 
   1246 MANSUBDIR	Subdirectory under the manual page section, i.e. "/vax"
   1247 		or "/tahoe" for machine specific manual pages.
   1248 
   1249 MAN		The manual pages to be installed (use a .1 - .9 suffix).
   1250 
   1251 MLINKS		List of manual page links (using a .1 - .9 suffix).  The
   1252 		linked-to file must come first, the linked file second,
   1253 		and there may be multiple pairs.
   1254 
   1255 The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
   1256 it exists.
   1257 
   1258 
   1259 =-=-=-=-=   bsd.nls.mk   =-=-=-=-=
   1260 
   1261 The include file <bsd.nls.mk> is included to create NLS message catalogs.
   1262 
   1263 TODO: variables
   1264 
   1265 
   1266 =-=-=-=-=   bsd.obj.mk   =-=-=-=-=
   1267 
   1268 The include file <bsd.obj.mk> defines targets related to the creation
   1269 and use of separated object and source directories.
   1270 
   1271 If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses
   1272 ${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if
   1273 it exists.  Otherwise make(1) looks for the existence of a
   1274 subdirectory (or a symlink to a directory) of the source directory
   1275 into which built targets should be placed.  If an environment variable
   1276 named MAKEOBJDIR is set, make(1) uses its value as the name of the
   1277 object directory; failing that, make first looks for a subdirectory
   1278 named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj".
   1279 
   1280 Object directories are not created automatically by make(1) if they
   1281 don't exist; you need to run a separate "make obj".  (This will happen
   1282 during a top-level build if "MKOBJDIRS" is set to a value other than
   1283 "no").  When the source directory is a subdirectory of ${BSDSRCDIR} --
   1284 and this is determined by a simple string prefix comparison -- object
   1285 directories are created in a separate object directory tree, and a
   1286 symlink to the object directory in that tree is created in the source
   1287 directory; otherwise, "make obj" assumes that you're not in the main
   1288 source tree and that it is not safe to use a separate object tree.
   1289 
   1290 Several variables used by <bsd.obj.mk> control exactly what
   1291 directories and links get created during a "make obj":
   1292 
   1293 MAKEOBJDIR	If set, this is the component name of the object
   1294 		directory.
   1295 
   1296 OBJMACHINE	If this is set but MAKEOBJDIR is not set, creates
   1297 		object directories or links named "obj.${MACHINE}";
   1298 		otherwise, just creates ones named "obj".
   1299 
   1300 OBJMACHINE_ARCH If set with OBJMACHINE, creates object directories or
   1301 		links named "obj.${MACHINE}-${MACHINE_ARCH}".
   1302 
   1303 USR_OBJMACHINE	If set, and the current directory is a subdirectory of
   1304 		${BSDSRCDIR}, create object directory in the
   1305 		corresponding subdirectory of ${BSDOBJDIR}.${MACHINE};
   1306 		otherwise, create it in the corresponding subdirectory
   1307 		of ${BSDOBJDIR}
   1308 
   1309 BUILDID		Identifier for the build.  If set, this should be a short
   1310 		string that is suitable for use as part of a file or
   1311 		directory name.  The identifier will be appended to
   1312 		object directory names; if OBJMACHINE is also set, then
   1313 		.BUILDID is appended after .MACHINE.  The identifier will
   1314 		also be used as part of the kernel version string, which
   1315 		can be shown by uname -v.
   1316 
   1317 		Default: Unset.
   1318 
   1319 
   1320 =-=-=-=-=   bsd.prog.mk   =-=-=-=-=
   1321 
   1322 The include file <bsd.prog.mk> handles building programs from one or
   1323 more source files, along with their manual pages.  <bsd.prog.mk> has a limited
   1324 number of suffixes, consistent with the current needs of the BSD tree.
   1325 <bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters.
   1326 
   1327 <bsd.prog.mk> provides the targets:
   1328 
   1329 	all:
   1330 		build the program and its manual page.  This also
   1331 		creates a GDB initialization file (.gdbinit) in
   1332 		the objdir.  The .gdbinit file sets the shared library
   1333 		prefix to ${DESTDIR} to facilitate cross-debugging.
   1334 	clean:
   1335 		remove the program, any object files and the files a.out,
   1336 		Errs, errs, mklog, and ${PROG}.core.
   1337 	cleandir:
   1338 		remove all of the files removed by the target 'clean', as
   1339 		well as .depend, tags, and any manual pages.
   1340 	depend:
   1341 		make the dependencies for the source files, and store
   1342 		them in the file .depend.
   1343 	distclean:
   1344 		synonym for 'cleandir'.
   1345 	includes:
   1346 		install any header files.
   1347 	install:
   1348 		install the program and its manual pages; if the Makefile
   1349 		does not itself define the target 'install', the targets
   1350 		'beforeinstall' and 'afterinstall' may also be used to cause
   1351 		actions immediately before and after the 'install' target
   1352 		is executed.
   1353 	lint:
   1354 		run lint on the source files
   1355 	tags:
   1356 		create a tags file for the source files.
   1357 
   1358 <bsd.prog.mk> sets/uses the following variables:
   1359 
   1360 BINGRP		Binary group.
   1361 
   1362 BINOWN		Binary owner.
   1363 
   1364 BINMODE		Binary mode.
   1365 
   1366 CLEANDIRFILES	Additional files to remove for the 'cleandir' target.
   1367 
   1368 CLEANFILES	Additional files to remove for the 'clean' and 'cleandir'
   1369 		targets.
   1370 
   1371 CONFIGOPTS	Additional options to config(1) when building kernels.
   1372 
   1373 		Default: Unset.
   1374 
   1375 COPTS		Extra options for the C compiler.  Should be appended to
   1376 		(e.g., COPTS+=-g), rather than explicitly set.
   1377 
   1378 		Note: CPUFLAGS, not COPTS, should be used for compiler
   1379 		options that select CPU-related options.
   1380 
   1381 COPTS.<fn>	Extra options for the C compiler when creating the
   1382 		C objects for file <fn>.
   1383 		For <fn>.[ly], "<fn>.c" must be used.
   1384 
   1385 CPUFLAGS	Additional options passed to the compiler/assembler to
   1386 		select CPU instruction set options, CPU tuning options,
   1387 		etc.
   1388 
   1389 		Note: Such options should not be specified in COPTS,
   1390 		because some parts of the build process need to override
   1391 		CPU-related compiler options.
   1392 
   1393 		Default: Unset.
   1394 
   1395 CPUFLAGS.<fn>	Additional options to the compiler/assembler for file <fn>.
   1396 		For <fn>.[ly], "<fn>.c" must be used.
   1397 
   1398 CPPFLAGS	Additional options to the C pre-processor.
   1399 
   1400 CPPFLAGS.<fn>	Additional options to the C pre-processor for file <fn>.
   1401 		For <fn>.[ly], "<fn>.c" must be used.
   1402 
   1403 GDBINIT		List of GDB initialization files to add to "source"
   1404 		directives in the .gdbinit file that is created in the
   1405 		objdir.
   1406 
   1407 LDADD		Additional loader objects.  Usually used for libraries.
   1408 		For example, to load with the compatibility and utility
   1409 		libraries, use:
   1410 
   1411 			LDADD+=-lutil -lcompat
   1412 
   1413 LDFLAGS		Additional linker options (passed to ${CC} during link).
   1414 
   1415 LINKS		See <bsd.links.mk>
   1416 
   1417 OBJCOPTS	Additional options to the compiler when creating ObjC objects.
   1418 
   1419 OBJCOPTS.<fn>	Additional options to the compiler when creating the
   1420 		ObjC objects for file <fn>.
   1421 		For <fn>.[ly], "<fn>.c" must be used.
   1422 
   1423 SYMLINKS	See <bsd.links.mk>
   1424 
   1425 MAN		Manual pages (should end in .1 - .9).  If no MAN variable is
   1426 		defined, "MAN=${PROG}.1" is assumed.
   1427 
   1428 PAXCTL_FLAGS	If defined, run paxctl(1) on the program binary after link
   1429 		time, with the value of this variable as options to paxctl(1).
   1430 
   1431 PAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS.
   1432 
   1433 PROG		The name of the program to build.  If not supplied, nothing
   1434 		is built.
   1435 
   1436 PROG_CXX	If defined, the name of the program to build.  Also
   1437 		causes <bsd.prog.mk> to link the program with the C++
   1438 		compiler rather than the C compiler.  PROG_CXX overrides
   1439 		the value of PROG if PROG is also set.
   1440 
   1441 PROGNAME	The name that the above program will be installed as, if
   1442 		different from ${PROG}.
   1443 
   1444 PROGS		Multiple programs to build from a single directory.
   1445 		Defaults to PROG. For each program ${_P} in ${PROGS},
   1446 		uses SRCS.${_P}, defaulting to ${_P}.c.
   1447 
   1448 PROGS_CXX	Multiple C++ programs to build from a single directory.
   1449 		Defaults to PROG_CXX. For each program ${_P} in ${PROGS_CXX},
   1450 		uses SRCS.${_P}, defaulting to ${_P}.cc.
   1451 
   1452 SRCS		List of source files to build the program.  If SRCS is not
   1453 		defined, it is assumed to be ${PROG}.c or ${PROG_CXX}.cc.
   1454 
   1455 DPSRCS		List of source files which are needed for generating
   1456 		dependencies, but are not needed in ${SRCS}.
   1457 
   1458 DPADD		Additional dependencies for the program.  Usually used for
   1459 		libraries.  For example, to depend on the compatibility and
   1460 		utility libraries use:
   1461 
   1462 			DPADD+=${LIBCOMPAT} ${LIBUTIL}
   1463 
   1464 		The following system libraries are predefined for DPADD:
   1465 
   1466 		LIBARCHIVE?=		${DESTDIR}/usr/lib/libarchive.a
   1467 		LIBASN1?=		${DESTDIR}/usr/lib/libasn1.a
   1468 		LIBATF_C?=		${DESTDIR}/usr/lib/libatf-c.a
   1469 		LIBATF_CXX?=		${DESTDIR}/usr/lib/libatf-c++.a
   1470 		LIBBLOCKLIST?=		${DESTDIR}/usr/lib/libblocklist.a
   1471 		LIBBLUETOOTH?=		${DESTDIR}/usr/lib/libbluetooth.a
   1472 		LIBBSDMALLOC?=		${DESTDIR}/usr/lib/libbsdmalloc.a
   1473 		LIBBZ2?=		${DESTDIR}/usr/lib/libbz2.a
   1474 		LIBC?=			${DESTDIR}/usr/lib/libc.a
   1475 		LIBC_PIC?=		${DESTDIR}/usr/lib/libc_pic.a
   1476 		LIBCBOR?=		${DESTDIR}/usr/lib/libcbor.a
   1477 		LIBCOMPAT?=		${DESTDIR}/usr/lib/libcompat.a
   1478 		LIBCOM_ERR?=		${DESTDIR}/usr/lib/libcom_err.a
   1479 		LIBCRYPT?=		${DESTDIR}/usr/lib/libcrypt.a
   1480 		LIBCRYPTO?=		${DESTDIR}/usr/lib/libcrypto.a
   1481 		LIBCURSES?=		${DESTDIR}/usr/lib/libcurses.a
   1482 		LIBCXX?=		${DESTDIR}/usr/lib/libc++.a
   1483 		LIBDES?=		${DESTDIR}/usr/lib/libdes.a
   1484 		LIBDNS?=		${DESTDIR}/usr/lib/libdns.a
   1485 		LIBEDIT?=		${DESTDIR}/usr/lib/libedit.a
   1486 		LIBEVENT?=		${DESTDIR}/usr/lib/libevent.a
   1487 		LIBEVENT_OPENSSL?=	${DESTDIR}/usr/lib/libevent_openssl.a
   1488 		LIBEVENT_PTHREADS?=	${DESTDIR}/usr/lib/libevent_pthreads.a
   1489 		LIBEXECINFO?=		${DESTDIR}/usr/lib/libexecinfo.a
   1490 		LIBEXPAT?=		${DESTDIR}/usr/lib/libexpat.a
   1491 		LIBFETCH?=		${DESTDIR}/usr/lib/libfetch.a
   1492 		LIBFIDO2?=		${DESTDIR}/usr/lib/libfido2.a
   1493 		LIBFL?=			${DESTDIR}/usr/lib/libfl.a
   1494 		LIBFORM?=		${DESTDIR}/usr/lib/libform.a
   1495 		LIBGCC?=		${DESTDIR}/usr/lib/libgcc.a
   1496 		LIBGNUCTF?=		${DESTDIR}/usr/lib/libgnuctf.a
   1497 		LIBGNUMALLOC?=		${DESTDIR}/usr/lib/libgnumalloc.a
   1498 		LIBGSSAPI?=		${DESTDIR}/usr/lib/libgssapi.a
   1499 		LIBHDB?=		${DESTDIR}/usr/lib/libhdb.a
   1500 		LIBHEIMBASE?=		${DESTDIR}/usr/lib/libheimbase.a
   1501 		LIBHEIMNTLM?=		${DESTDIR}/usr/lib/libheimntlm.a
   1502 		LIBHX500?=		${DESTDIR}/usr/lib/libhx500.a
   1503 		LIBINTL?=		${DESTDIR}/usr/lib/libintl.a
   1504 		LIBIPSEC?=		${DESTDIR}/usr/lib/libipsec.a
   1505 		LIBISC?=		${DESTDIR}/usr/lib/libisc.a
   1506 		LIBISCCC?=		${DESTDIR}/usr/lib/libisccc.a
   1507 		LIBISCFG?=		${DESTDIR}/usr/lib/libiscfg.a
   1508 		LIBKADM5CLNT?=		${DESTDIR}/usr/lib/libkadm5clnt.a
   1509 		LIBKADM5SRV?=		${DESTDIR}/usr/lib/libkadm5srv.a
   1510 		LIBKAFS?=		${DESTDIR}/usr/lib/libkafs.a
   1511 		LIBKRB5?=		${DESTDIR}/usr/lib/libkrb5.a
   1512 		LIBKVM?=		${DESTDIR}/usr/lib/libkvm.a
   1513 		LIBL?=			${DESTDIR}/usr/lib/libl.a
   1514 		LIBLBER?=		${DESTDIR}/usr/lib/liblber.a
   1515 		LIBLDAP?=		${DESTDIR}/usr/lib/libldap.a
   1516 		LIBLDAP_R?=		${DESTDIR}/usr/lib/libldap_r.a
   1517 		LIBLUA?=		${DESTDIR}/usr/lib/liblua.a
   1518 		LIBM?=			${DESTDIR}/usr/lib/libm.a
   1519 		LIBMAGIC?=		${DESTDIR}/usr/lib/libmagic.a
   1520 		LIBMENU?=		${DESTDIR}/usr/lib/libmenu.a
   1521 		LIBNETPGPVERIFY?=	${DESTDIR}/usr/lib/libnetpgpverify.a
   1522 		LIBNS?=			${DESTDIR}/usr/lib/libns.a
   1523 		LIBOBJC?=		${DESTDIR}/usr/lib/libobjc.a
   1524 		LIBOSSAUDIO?=		${DESTDIR}/usr/lib/libossaudio.a
   1525 		LIBPAM?=		${DESTDIR}/usr/lib/libpam.a
   1526 		LIBPANEL?=		${DESTDIR}/usr/lib/libpanel.a
   1527 		LIBPCAP?=		${DESTDIR}/usr/lib/libpcap.a
   1528 		LIBPCI?=		${DESTDIR}/usr/lib/libpci.a
   1529 		LIBPOSIX?=		${DESTDIR}/usr/lib/libposix.a
   1530 		LIBPTHREAD?=		${DESTDIR}/usr/lib/libpthread.a
   1531 		LIBPUFFS?=		${DESTDIR}/usr/lib/libpuffs.a
   1532 		LIBQUOTA?=		${DESTDIR}/usr/lib/libquota.a
   1533 		LIBRADIUS?=		${DESTDIR}/usr/lib/libradius.a
   1534 		LIBREFUSE?=		${DESTDIR}/usr/lib/librefuse.a
   1535 		LIBRESOLV?=		${DESTDIR}/usr/lib/libresolv.a
   1536 		LIBRMT?=		${DESTDIR}/usr/lib/librmt.a
   1537 		LIBROKEN?=		${DESTDIR}/usr/lib/libroken.a
   1538 		LIBRPCSVC?=		${DESTDIR}/usr/lib/librpcsvc.a
   1539 		LIBRT?=			${DESTDIR}/usr/lib/librt.a
   1540 		LIBRUMP?=		${DESTDIR}/usr/lib/librump.a
   1541 		LIBRUMPFS_CD9660?=	${DESTDIR}/usr/lib/librumpfs_cd9660.a
   1542 		LIBRUMPFS_EFS?=		${DESTDIR}/usr/lib/librumpfs_efs.a
   1543 		LIBRUMPFS_EXT2FS?=	${DESTDIR}/usr/lib/librumpfs_ext2fs.a
   1544 		LIBRUMPFS_FFS?=		${DESTDIR}/usr/lib/librumpfs_ffs.a
   1545 		LIBRUMPFS_HFS?=		${DESTDIR}/usr/lib/librumpfs_hfs.a
   1546 		LIBRUMPFS_LFS?=		${DESTDIR}/usr/lib/librumpfs_lfs.a
   1547 		LIBRUMPFS_MSDOS?=	${DESTDIR}/usr/lib/librumpfs_msdos.a
   1548 		LIBRUMPFS_NFS?=		${DESTDIR}/usr/lib/librumpfs_nfs.a
   1549 		LIBRUMPFS_NTFS?=	${DESTDIR}/usr/lib/librumpfs_ntfs.a
   1550 		LIBRUMPFS_SYSPUFFS?=	${DESTDIR}/usr/lib/librumpfs_syspuffs.a
   1551 		LIBRUMPFS_TMPFS?=	${DESTDIR}/usr/lib/librumpfs_tmpfs.a
   1552 		LIBRUMPFS_UDF?=		${DESTDIR}/usr/lib/librumpfs_udf.a
   1553 		LIBRUMPUSER?=		${DESTDIR}/usr/lib/librumpuser.a
   1554 		LIBSASLC?=		${DESTDIR}/usr/lib/libsaslc.a
   1555 		LIBSKEY?=		${DESTDIR}/usr/lib/libskey.a
   1556 		LIBSL?=			${DESTDIR}/usr/lib/libsl.a
   1557 		LIBSQLITE3?=		${DESTDIR}/usr/lib/libsqlite3.a
   1558 		LIBSSH?=		${DESTDIR}/usr/lib/libssh.a
   1559 		LIBSSL?=		${DESTDIR}/usr/lib/libssl.a
   1560 		LIBSTDCXX?=		${DESTDIR}/usr/lib/libstdc++.a
   1561 		LIBSUPCXX?=		${DESTDIR}/usr/lib/libsupc++.a
   1562 		LIBTERMINFO?=		${DESTDIR}/usr/lib/libterminfo.a
   1563 		LIBTRE?=		${DESTDIR}/usr/lib/libtre.a
   1564 		LIBUNBOUND?=		${DESTDIR}/usr/lib/libunbound.a
   1565 		LIBUSBHID?=		${DESTDIR}/usr/lib/libusbhid.a
   1566 		LIBUTIL?=		${DESTDIR}/usr/lib/libutil.a
   1567 		LIBWIND?=		${DESTDIR}/usr/lib/libwind.a
   1568 		LIBWRAP?=		${DESTDIR}/usr/lib/libwrap.a
   1569 		LIBY?=			${DESTDIR}/usr/lib/liby.a
   1570 		LIBZ?=			${DESTDIR}/usr/lib/libz.a
   1571 
   1572 		The following c startup files.
   1573 
   1574 		LIBCRT0?=		${DESTDIR}/usr/lib/crt0.o
   1575 		LIBCRTI?=		${DESTDIR}/usr/lib/crti.o
   1576 		LIBCRTBEGIN?=		${DESTDIR}/usr/lib/crti.o
   1577 		LIBCRTEND?=		${DESTDIR}/usr/lib/crtn.o
   1578 
   1579 		The following X-Windows libraries are predefined for DPADD:
   1580 
   1581 		LIBDPS?=		${DESTDIR}/usr/X11R7/lib/libdps.a
   1582 		LIBEGL?=		${DESTDIR}/usr/X11R7/lib/libEGL.a
   1583 		LIBFNTSTUBS?=		${DESTDIR}/usr/X11R7/lib/libfntstubs.a
   1584 		LIBFONTCACHE?=		${DESTDIR}/usr/X11R7/lib/libfontcache.a
   1585 		LIBFONTCONFIG?=		${DESTDIR}/usr/X11R7/lib/libfontconfig.a
   1586 		LIBFONTENC?=		${DESTDIR}/usr/X11R7/lib/libfontenc.a
   1587 		LIBFREETYPE?=		${DESTDIR}/usr/X11R7/lib/libfreetype.a
   1588 		LIBFS?=			${DESTDIR}/usr/X11R7/lib/libFS.a
   1589 		LIBGL?=			${DESTDIR}/usr/X11R7/lib/libGL.a
   1590 		LIBGLU?=		${DESTDIR}/usr/X11R7/lib/libGLU.a
   1591 		LIBGLW?=		${DESTDIR}/usr/X11R7/lib/libGLw.a
   1592 		LIBI810XVMC		4{DESTDIR}/usr/X11R7/lib/libI810XvMC.a
   1593 		LIBICE?=		${DESTDIR}/usr/X11R7/lib/libICE.a
   1594 		LIBINTELXVMC		${DESTDIR}/usr/X11R7/lib/libIntelXvMC.a
   1595 		LIBLBXUTIL?=		${DESTDIR}/usr/X11R7/lib/liblbxutil.a
   1596 		LIBSM?=			${DESTDIR}/usr/X11R7/lib/libSM.a
   1597 		LIBX11_XCB?=		${DESTDIR}/usr/X11R7/lib/libX11-xcb.a
   1598 		LIBX11?=		${DESTDIR}/usr/X11R7/lib/libX11.a
   1599 		LIBXRES?=		${DESTDIR}/usr/X11R7/lib/libXres.a
   1600 		LIBXAU?=		${DESTDIR}/usr/X11R7/lib/libXau.a
   1601 		LIBXAU7?=		${DESTDIR}/usr/X11R7/lib/libXau7.a
   1602 		LIBXAW?=		${DESTDIR}/usr/X11R7/lib/libXaw.a
   1603 		LIBXCB?=		${DESTDIR}/usr/X11R7/lib/libxcb.a
   1604 		LIBXCOMPOSITE?=		${DESTDIR}/usr/X11R7/lib/libXcomposite.a
   1605 		LIBXCURSOR?=		${DESTDIR}/usr/X11R7/lib/libXcursor.a
   1606 		LIBXCVT?=		${DESTDIR}/usr/X11R7/lib/libxcvt.a
   1607 		LIBXDAMAGE?=		${DESTDIR}/usr/X11R7/lib/libXdamage.a
   1608 		LIBXDMCP?=		${DESTDIR}/usr/X11R7/lib/libXdmcp.a
   1609 		LIBXEXT?=		${DESTDIR}/usr/X11R7/lib/libXext.a
   1610 		LIBXFIXES?=		${DESTDIR}/usr/X11R7/lib/libXfixes.a
   1611 		LIBXFONT2?=		${DESTDIR}/usr/X11R7/lib/libXfont2.a
   1612 		LIBXFONT?=		${DESTDIR}/usr/X11R7/lib/libXfont.a
   1613 		LIBXFT?=		${DESTDIR}/usr/X11R7/lib/libXft.a
   1614 		LIBXI?=			${DESTDIR}/usr/X11R7/lib/libXi.a
   1615 		LIBXINERAMA?=		${DESTDIR}/usr/X11R7/lib/libXinerama.a
   1616 		LIBXKBFILE?=		${DESTDIR}/usr/X11R7/lib/libxkbfile.a
   1617 		LIBXMU?=		${DESTDIR}/usr/X11R7/lib/libXmu.a
   1618 		LIBXMUU?=		${DESTDIR}/usr/X11R7/lib/libXmuu.a
   1619 		LIBXPM?=		${DESTDIR}/usr/X11R7/lib/libXpm.a
   1620 		LIBXRANDR?=		${DESTDIR}/usr/X11R7/lib/libXrandr.a
   1621 		LIBXRENDER?=		${DESTDIR}/usr/X11R7/lib/libXrender.a
   1622 		LIBXSS?=		${DESTDIR}/usr/X11R7/lib/libXss.a
   1623 		LIBXT?=			${DESTDIR}/usr/X11R7/lib/libXt.a
   1624 		LIBXTRAP?=		${DESTDIR}/usr/X11R7/lib/libXTrap.a
   1625 		LIBXTST?=		${DESTDIR}/usr/X11R7/lib/libXtst.a
   1626 		LIBXV?=			${DESTDIR}/usr/X11R7/lib/libXv.a
   1627 		LIBXXF86DGA?=		${DESTDIR}/usr/X11R7/lib/libXxf86dga.a
   1628 		LIBXXF86MISC?=		${DESTDIR}/usr/X11R7/lib/libXxf86misc.a
   1629 		LIBXXF86VM?=		${DESTDIR}/usr/X11R7/lib/libXxf86vm.a
   1630 
   1631 STRIPFLAG	The option passed to the install program to cause the binary
   1632 		to be stripped.
   1633 
   1634 SUBDIR		A list of subdirectories that should be built as well.
   1635 		Each of the targets will execute the same target in the
   1636 		subdirectories.
   1637 		See the description of SUBDIR in <bsd.subdir.mk> for
   1638 		an explanation of the .WAIT token.
   1639 
   1640 SCRIPTS		A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
   1641 		These are installed exactly like programs.
   1642 
   1643 SCRIPTSDIR	The location to install the scripts.  Each script can be
   1644 		installed to a separate path by setting SCRIPTSDIR_<script>.
   1645 
   1646 SCRIPTSNAME	The name that the above program will be installed as, if
   1647 		different from ${SCRIPTS}. These can be further specialized
   1648 		by setting SCRIPTSNAME_<script>.
   1649 
   1650 FILES		See description of <bsd.files.mk>.
   1651 
   1652 SHLINKDIR	Target directory for shared linker.  See description of
   1653 		<bsd.own.mk> for additional information about this variable.
   1654 
   1655 The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
   1656 if it exists, as well as the include file <bsd.man.mk>.
   1657 
   1658 Some simple examples:
   1659 
   1660 To build foo from foo.c with a manual page foo.1, use:
   1661 
   1662 	PROG=	foo
   1663 
   1664 	.include <bsd.prog.mk>
   1665 
   1666 To build foo from foo.c with a manual page foo.2, add the line:
   1667 
   1668 	MAN=	foo.2
   1669 
   1670 If foo does not have a manual page at all, add the line
   1671 before any make(1) .include directives:
   1672 
   1673 	NOMAN=
   1674 
   1675 If foo has multiple source files, add the line:
   1676 
   1677 	SRCS=	a.c b.c c.c d.c
   1678 
   1679 
   1680 =-=-=-=-=   bsd.rpc.mk   =-=-=-=-=
   1681 
   1682 The include file <bsd.rpc.mk> contains a makefile fragment used to
   1683 construct source files built by rpcgen.
   1684 
   1685 The following macros may be defined in makefiles which include
   1686 <bsd.rpc.mk> in order to control which files get built and how they
   1687 are to be built:
   1688 
   1689 RPC_INCS	construct .h file from .x file
   1690 RPC_XDRFILES	construct _xdr.c from .x file
   1691 		(for marshalling/unmarshalling data types)
   1692 RPC_SVCFILES	construct _svc.c from .x file
   1693 		(server-side stubs)
   1694 RPC_SVCFLAGS	Additional options passed to builds of RPC_SVCFILES.
   1695 
   1696 RPC_XDIR	Directory containing .x/.h files
   1697 
   1698 
   1699 =-=-=-=-=   bsd.sanitizer.mk   =-=-=-=-=
   1700 
   1701 The include file <bsd.sanitizer.mk> is included to run sanitizers.
   1702 
   1703 TODO: currently unused in tree?
   1704 TODO: variables.
   1705 
   1706 
   1707 =-=-=-=-=   bsd.shlib.mk   =-=-=-=-=
   1708 
   1709 The include file <bsd.shlib.mk> computes parameters for shared library
   1710 installation and use.  <bsd.shlib.mk> defines no targets.
   1711 <bsd.own.mk> MUST be included before <bsd.shlib.mk>.
   1712 
   1713 <bsd.own.mk> sets the following variables, if they are not already defined
   1714 (defaults are in brackets):
   1715 
   1716 SHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR}
   1717 		instead of ${LIBDIR} as the base path for shared library
   1718 		installation.  [/lib]
   1719 
   1720 SHLIBDIR	The path to USE_SHLIBDIR shared libraries to use when building
   1721 		a program.  [/lib for programs in /bin and /sbin, /usr/lib
   1722 		for all others.]
   1723 
   1724 _LIBSODIR	Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no",
   1725 		otherwise set to ${LIBDIR}
   1726 
   1727 SHLINKINSTALLDIR Base path for shared linker.  [/libexec]
   1728 
   1729 SHLINKDIR	Path to use for shared linker when building a program.
   1730 		[/libexec for programs in /bin and /sbin, /usr/libexec for
   1731 		all others.]
   1732 
   1733 
   1734 =-=-=-=-=   bsd.subdir.mk   =-=-=-=-=
   1735 
   1736 The include file <bsd.subdir.mk> contains the default targets for building
   1737 subdirectories.  <bsd.subdir.mk> has the same targets as <bsd.prog.mk>:
   1738 'all', 'clean', 'cleandir', 'depend', 'distclean', 'includes', 'install',
   1739 'lint', and 'tags'.
   1740 
   1741 <bsd.subdir.mk> uses the following variables:
   1742 
   1743 NOSUBDIR	If this variable is defined, then the SUBDIR variable
   1744 		will be ignored and subdirectories will not be processed.
   1745 
   1746 SUBDIR		For all of the directories listed in ${SUBDIR}, the
   1747 		specified directory will be visited and the target made.
   1748 
   1749 		As a special case, the use of a token .WAIT as an
   1750 		entry in SUBDIR acts as a synchronization barrier
   1751 		when multiple make jobs are run; subdirs before the
   1752 		.WAIT must complete before any subdirs after .WAIT are
   1753 		started.  See make(1) for some caveats on use of .WAIT
   1754 		and other special sources.
   1755 
   1756 
   1757 =-=-=-=-=   bsd.syscall.mk =-=-=-=-=
   1758 
   1759 The include file <bsd.syscall.mk> contains the logic to create syscall
   1760 files for various emulations. <bsd.syscall.mk> includes <bsd.kinc.mk>
   1761 to handle the rest of the targets.
   1762 
   1763 
   1764 =-=-=-=-=   bsd.test.mk   =-=-=-=-=
   1765 
   1766 The include file <bsd.test.mk> is included to create test programs.
   1767 
   1768 TODO: variables
   1769 
   1770 
   1771 =-=-=-=-=   bsd.x11.mk   =-=-=-=-=
   1772 
   1773 The include file <bsd.x11.mk> contains parameters and targets for
   1774 cross-building X11 from ${X11SRCDIR.<package>}.  <bsd.x11.mk> should be
   1775 included after the general Makefile contents but before the include files
   1776 such as <bsd.prog.mk> and <bsd.lib.mk>.
   1777 
   1778 <bsd.x11.mk> provides the following targets:
   1779 	.man.1 .man.3 .man.4 .man.5 .man.7 .man.8:
   1780 		If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
   1781 		these rules convert from X11's manual page source
   1782 		into an mdoc.old source file.
   1783 
   1784 <bsd.x11.mk> sets the following variables:
   1785 
   1786 BINDIR			Set to ${X11BINDIR}.
   1787 			To override, define after including <bsd.x11.mk>
   1788 
   1789 LIBDIR			Set to ${X11USRLIBDIR}.
   1790 			To override, define after including <bsd.x11.mk>
   1791 
   1792 MANDIR			Set to ${X11MANDIR}.
   1793 			To override, define after including <bsd.x11.mk>
   1794 
   1795 CPPFLAGS		Appended with definitions to include from
   1796 			${DESTDIR}${X11INCDIR}
   1797 
   1798 LDFLAGS			Appended with definitions to link from
   1799 			${DESTDIR}${X11USRLIBDIR}
   1800 
   1801 X11FLAGS.CONNECTION	Equivalent to X11's CONNECTION_FLAGS.
   1802 
   1803 X11FLAGS.EXTENSION	Equivalent to X11's EXT_DEFINES.
   1804 
   1805 X11FLAGS.LOADABLE	Equivalent to X11's LOADABLE.
   1806 
   1807 X11FLAGS.OS_DEFINES	Equivalent to X11's OS_DEFINES.
   1808 
   1809 X11FLAGS.SERVER		Equivalent to X11's ServerDefines.
   1810 
   1811 X11FLAGS.THREADLIB	Equivalent to X11's THREADS_DEFINES for libraries.
   1812 
   1813 X11FLAGS.THREADS	Equivalent to X11's THREADS_DEFINES.
   1814 
   1815 X11FLAGS.VERSION	cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
   1816 
   1817 X11FLAGS.DIX		Equivalent to X11's DIX_DEFINES.
   1818 
   1819 X11TOOL_UNXCOMM		Command line to convert 'XCOMM' comments to '#'
   1820 
   1821 <bsd.x11.mk> uses the following variables:
   1822 
   1823 APPDEFS			List of app-default files to install.
   1824 
   1825 CPPSCRIPTS		List of files/scripts to run through cpp(1)
   1826 			and then ${X11TOOL_UNXCOMM}.  The source files
   1827 			have a '.cpp' suffix, the generated files do not.
   1828 
   1829 CPPSCRIPTFLAGS		Additional options to cpp(1) when building CPPSCRIPTS.
   1830 
   1831 CPPSCRIPTFLAGS_<fn>	Additional options to cpp(1) when building CPPSCRIPT
   1832 			file <fn>.
   1833 
   1834 
   1835 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   1836 
   1837 The following files are described here for completion, but they are not
   1838 supposed to be included directly from other Makefiles; they are used
   1839 internally by other system files.
   1840 
   1841 =-=-=-=-=   bsd.sys.mk   =-=-=-=-=
   1842 
   1843 The include file <bsd.sys.mk> is used by other system mk files and
   1844 it is not intended to be included standalone. <bsd.sys.mk> contains rules
   1845 and system build variables. <bsd.sys.mk> requires <bsd.own.mk> to be included
   1846 first.  <bsd.sys.mk> contains overrides that are used when building the NetBSD
   1847 source tree.
   1848 
   1849 The following variables control how various files are compiled/built.
   1850 (Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"):
   1851 
   1852 AR		Create, modify, and extract from archives.  [ar]
   1853 
   1854 ARFLAGS		Options to ${AR}.  [rl]
   1855 
   1856 ARM_ELF2AOUT	Convert ELF-format executable to a.out.  [elf2aout]
   1857 
   1858 AS		Assembler.  [as]
   1859 
   1860 AFLAGS		Options to ${CC} when compiling or linking .s or .S
   1861 		assembly source files.  []
   1862 
   1863 BUILDSEED	g++(1) uses random numbers when compiling C++ code.  This
   1864 		variable seeds the g++(1) random number generator using
   1865 		-frandom-seed with this value.  By default, this variable is
   1866 		set to "NetBSD-(majorversion)".  Using a fixed value causes
   1867 		C++ binaries to be the same when built from the same sources,
   1868 		resulting in identical (reproducible) builds.  Additional
   1869 		information is available in the g++(1) documentation of
   1870 		-frandom-seed.
   1871 
   1872 		Default: Unset.
   1873 
   1874 CC		C compiler.  [cc]
   1875 
   1876 CFLAGS		Options to ${CC}.  [Usually -O or -O2]
   1877 		Note: CFLAGS should never be set in mk.conf(5).
   1878 
   1879 CPP		C Pre-Processor.  [cpp]
   1880 
   1881 CPPFLAGS	Options to ${CPP}.  []
   1882 
   1883 CPUFLAGS	Optimization options for ${CC}.  []
   1884 
   1885 CWARNFLAGS	Warnings to enable or disable in CFLAGS. []
   1886 
   1887 CWARNFLAGS.<comp>
   1888 		Warnings to enable or disable in CFLAGS for compiler <comp>. []
   1889 
   1890 CXX		C++ compiler.  [c++]
   1891 
   1892 CXXFLAGS	Options to ${CXX}.  [${CFLAGS}]
   1893 
   1894 M68K_ELF2AOUT	Convert ELF-format executable to a.out.  [elf2aout]
   1895 
   1896 MIPS_ELF2ECOFF	Convert ELF-format executable to ECOFF.  [elf2ecoff]
   1897 
   1898 FC		Fortran compiler.  [f77]
   1899 
   1900 FFLAGS		Options to {$FC}.  [-O]
   1901 
   1902 HOST_SH		Shell.  This must be an absolute path, because it may be
   1903 		substituted into "#!" lines in scripts.  [/bin/sh]
   1904 
   1905 INSTALL		install(1) command.  [install]
   1906 
   1907 LEX		Lexical analyzer.  [lex]
   1908 
   1909 LFLAGS		Options to ${LEX}.  []
   1910 
   1911 LPREFIX		Symbol prefix for ${LEX} (see -P option in lex(1)) [yy]
   1912 
   1913 LD		Linker.  [ld]
   1914 
   1915 LDFLAGS		Options to ${CC} during the link process.  []
   1916 
   1917 LINT		C program verifier.  [lint]
   1918 
   1919 LINTFLAGS	Options to ${LINT}.  [-chapbrxzgFS]
   1920 
   1921 LORDER		List dependencies for object files.  [lorder]
   1922 
   1923 MAKE		make(1).  [make]
   1924 
   1925 MKDEP		Construct Makefile dependency list.  [mkdep]
   1926 
   1927 MKDEPCXX	Construct Makefile dependency list for C++ files.  [mkdep]
   1928 
   1929 NM		List symbols from object files.  [nm]
   1930 
   1931 PC		Pascal compiler.  [pc]	(Not present)
   1932 
   1933 PFLAGS		Options to ${PC}.  []
   1934 
   1935 OBJC		Objective C compiler.  [${CC}]
   1936 
   1937 OBJCFLAGS	Options to ${OBJC}.  [${CFLAGS}]
   1938 
   1939 OBJCOPY		Copy and translate object files.  [objcopy]
   1940 
   1941 OBJCOPYLIBFLAGS Options to pass to objcopy when library objects are
   1942 		being built. [${.TARGET} =~ "*.po" ? -X : -x]
   1943 
   1944 OBJDUMP		Display information from object files.  [objdump]
   1945 
   1946 RANLIB		Generate index to archive.  [ranlib]
   1947 
   1948 READELF		Display information from ELF object files.  [readelf]
   1949 
   1950 SIZE		List section sizes and total size.  [size]
   1951 
   1952 STRINGS		Display printable character sequences in files.  [strings]
   1953 
   1954 STRIP		Discard symbols from object files.  [strip]
   1955 
   1956 TSORT		Topological sort of a directed graph.  [tsort -q]
   1957 
   1958 YACC		LALR(1) parser generator.  [yacc]
   1959 
   1960 YFLAGS		Options to ${YACC}.  []
   1961 
   1962 YHEADER		If defined, add "-d" to YFLAGS, and add dependencies
   1963 		from <file>.y to <file>.h and <file>.c, and add
   1964 		<foo>.h to CLEANFILES.
   1965 
   1966 YPREFIX		If defined, add "-p ${YPREFIX}" to YFLAGS.
   1967 
   1968 
   1969 Other variables of note (incomplete list):
   1970 
   1971 NOCLANGERROR	If defined and clang is used as C compiler, -Werror is not
   1972 		passed to clang.
   1973 
   1974 NOGCCERROR	If defined, prevents passing certain ${CFLAGS} to GCC
   1975 		that cause warnings to be fatal, such as:
   1976 			-Werror -Wa,--fatal-warnings
   1977 		(The latter being for as(1).)
   1978 
   1979 WARNS		Crank up compiler warning options; the distinct levels are:
   1980 			WARNS=1
   1981 			WARNS=2
   1982 			WARNS=3
   1983 			WARNS=4
   1984 			WARNS=5
   1985 			WARNS=6
   1986 
   1987 
   1988 =-=-=-=-=   bsd.host.mk   =-=-=-=-=
   1989 
   1990 The include file <bsd.host.mk> is automatically included from <bsd.own.mk>.
   1991 <bsd.host.mk> contains settings for all the HOST_* variables that are used in
   1992 host programs and libraries.
   1993 
   1994 HOST_AR			The host archive processing command
   1995 
   1996 HOST_CC			The host c compiler
   1997 
   1998 HOST_CFLAGS		The host c compiler options
   1999 
   2000 HOST_COMPILE.c		The host c compiler line with options
   2001 
   2002 HOST_COMPILE.cc		The host c++ compiler line with options
   2003 
   2004 HOST_CPP		The host c pre-processor
   2005 
   2006 HOST_CPPFLAGS		The host c pre-processor options
   2007 
   2008 HOST_CXX		The host c++ compiler
   2009 
   2010 HOST_CXXFLAGS		The host c++ compiler options
   2011 
   2012 HOST_INSTALL_DIR	The host command to install a directory
   2013 
   2014 HOST_INSTALL_FILE	The host command to install a file
   2015 
   2016 HOST_INSTALL_SYMLINK	The host command to install a symlink
   2017 
   2018 HOST_LD			The host linker command
   2019 
   2020 HOST_LDFLAGS		The host linker options
   2021 
   2022 HOST_LINK.c		The host c linker line with options
   2023 
   2024 HOST_LINK.cc		The host c++ linker line with options
   2025 
   2026 HOST_LN			The host command to link two files
   2027 
   2028 HOST_MKDEP		The host command to create dependencies for c programs
   2029 
   2030 HOST_MKDEPCXX		The host command to create dependencies for c++ programs
   2031 
   2032 HOST_OSTYPE		The host OSNAME-RELEASE-ARCH tupple
   2033 
   2034 HOST_RANLIB		The host command to create random access archives
   2035 
   2036 HOST_SH			The host Bourne shell interpreter name (absolute path)
   2037 
   2038 
   2039 =-=-=-=-=   bsd.ioconf.mk   =-=-=-=-=
   2040 
   2041 The include file <bsd.ioconf.mk> is used to build helper files for the
   2042 kernel, including "ioconf.c", "ioconf.h", and "locators.h".
   2043 
   2044 <bsd.ioconf.mk> is not intended to be included by user Makefiles.
   2045 
   2046 TODO: variables
   2047 
   2048 
   2049 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   2050