1 # $NetBSD: bsd.README,v 1.346 2015/07/23 08:03:26 mrg Exp $
2 # @(#)bsd.README 8.2 (Berkeley) 4/2/94
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".
8 Note, this file is not intended to replace reading through the .mk
9 files for anything tricky.
11 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
13 RANDOM THINGS WORTH KNOWING:
15 The files are simply C-style #include files, and pretty much behave like
16 you'd expect. The syntax is slightly different in that a single '.' is
17 used instead of the hash mark, i.e. ".include <bsd.prog.mk>".
19 One difference that will save you lots of debugging time is that inclusion
20 of the file is normally done at the *end* of the Makefile. The reason for
21 this is because .mk files often modify variables and behavior based on the
22 values of variables set in the Makefile. To make this work, remember that
23 the FIRST target found is the target that is used, i.e. if the Makefile has:
30 the command "make a" will echo "a". To make things confusing, the SECOND
31 variable assignment is the overriding one, i.e. if the Makefile has:
39 the command "make b" will echo "bar". This is for compatibility with the
40 way the V7 make behaved.
42 It's fairly difficult to make the BSD .mk files work when you're building
43 multiple programs in a single directory. It's a lot easier to split up the
44 programs than to deal with the problem. Most of the agony comes from making
45 the "obj" directory stuff work right, not because we switched to a new version
46 of make. So, don't get mad at us, figure out a better way to handle multiple
47 architectures so we can quit using the symbolic link stuff. (Imake doesn't
50 The file .depend in the source directory is expected to contain dependencies
51 for the source files. This file is read automatically by make after reading
54 The variable DESTDIR works as before. It's not set anywhere but will change
55 the tree where the file gets installed.
57 The profiled libraries are no longer built in a different directory than
58 the regular libraries. A new suffix, ".po", is used to denote a profiled
59 object, and ".pico" denotes a shared (position-independent) object.
61 There are various make variables used during the build.
63 Many variables support a (case sensitive) value of "no" or "yes",
64 and are tested with ${VAR} == "no" and ${VAR} != "no" .
67 The basic rule for the variable naming scheme is as follows:
69 HOST_xxx A command that runs on the host machine regardless of
70 whether or not the system is being cross compiled, or
71 flags for such a command.
73 MKxxx Can be set to "no" to disable functionality, or
75 Usually defaults to "yes", although some variables
77 Due to make(1) implementation issues, if a temporary
78 command-line override of a mk.conf(5) or <bsd.own.mk>
79 setting is required whilst still honoring a particular
80 Makefile's setting of MKxxx, use
85 NOxxx If defined, disables a feature.
86 Not intended for users.
87 This is to allow Makefiles to disable functionality
88 that they don't support (such as missing man pages).
89 NOxxx variables must be defined before <bsd.own.mk>
92 TOOL_xxx A tool that is provided as part of the USETOOLS
93 framework. When not using the USETOOLS framework,
94 TOOL_xxx variables should refer to tools that are
95 already installed on the host system.
97 The following variables that control how things are made/installed that
98 are not set by default. These should not be set by Makefiles; they're for
99 the user to define in MAKECONF (see <bsd.own.mk>, below, or mk.conf(5))
100 or on the make(1) command line:
102 BUILD If defined, 'make install' checks that the targets in the
103 source directories are up-to-date and remakes them if they
104 are out of date, instead of blindly trying to install
105 out of date or non-existent targets.
107 MAKEVERBOSE Control how "verbose" the standard make(1) rules are.
110 0 Minimal output ("quiet")
111 1 Describe what is occurring
112 2 Describe what is occurring and echo the actual command
113 3 Ignore the effect of the "@" prefix in make commands
114 4 Trace shell commands using the shell's -x flag
116 MKATF If "no", don't build the Automated Testing Framework (ATF),
117 which includes the libatf-c, libatf-c++ and libatf-sh libraries
118 and the various command line tools. Also, because the build of
119 the libraries is disabled, don't build the NetBSD test suite
123 MKBFD Obsolete, use MKBINUTILS
125 MKBINUTILS If "no", don't build binutils (gas, ld, etc and libbfd,
129 MKBSDTAR If "yes", use the libarchive based cpio and tar instead of
133 MKCATPAGES If "no", don't build or install the catman pages.
136 MKCOMPAT If "no", don't build or install the src/compat.
137 Default: yes on amd64/mips64/sparc64, no elsewhere.
139 MKCOMPATTESTS If "yes", build and install the NetBSD test suite when
140 building and installing src/compat.
143 MKCOMPATX11 If "yes", build and install the X11 libraries when
144 building and installing src/compat.
147 MKCOMPLEX If "no", don't build libm support for <complex.h>
150 MKCRYPTO If "no", no cryptography support will be built into the system,
151 and also acts as "MKKERBEROS=no".
154 MKCRYPTO_RC5 If not "no", RC5 support will be built into libcrypto_rc5
157 MKCTF If "no", do not build and install CTF tools, and also
158 don't generate and manipulate CTF data of ELF binaries
162 MKCVS If "no", don't build or install cvs(1).
165 MKDEBUG If "no", don't build and install separate debugging symbols
166 into /usr/libdata/debug.
169 MKDEBUGLIB Build *_g.a debugging libraries, which are compiled
173 MKDEPINCLUDES If "yes" issue .include statements in the .depend file
174 instead of inlining the contents of the .d files. Useful
175 when stale dependencies are present, to list the exact
176 files that need refreshing. It is off by default because
177 it is possibly slower.
180 MKDOC If "no", don't build or install the documentation.
183 MKDTRACE If "no", do not build and install the kernel modules,
184 utilities and libraries used to implement the dtrace(1)
188 MKDYNAMICROOT If "no", build programs in /bin and /sbin statically,
189 don't install certain libraries in /lib, and don't
190 install the shared linker into /libexec.
193 MKEXTSRC If not "no", 'make build' also descends into either src/extsrc
194 to cross-build programs and libraries externally added by
195 users, and automatically enables creation of those sets.
198 MKGCC If "no", don't build gcc(1) or any of the GCC-related
199 libraries (libgcc, libobjc, libstdc++).
202 MKGCCCMDS If "no", don't build gcc(1), but do build the GCC-related
203 libraries (libgcc, libobjc, libstdc++).
206 MKGDB If "no", don't build gdb(1).
209 MKGROFFHTMLDOC If "no", avoid trying to use groff to generate html for
210 miscellaneous articles, as this seems to sometimes want
211 to run software not in base. Does not affect html man
215 MKHESIOD If "no", disables building of Hesiod infrastructure
216 (libraries and support programs).
219 MKHOSTOBJ If not "no", for programs intended to be run on the compile
220 host, the name, release, and architecture of the host
221 operating system will be suffixed to the name of the object
222 directory created by "make obj".
225 MKHTML If "no", don't build or install the HTML man pages.
228 MKIEEEFP If "no", don't add code for IEEE754/IEC60559 conformance.
229 Has no effect on most platforms.
232 MKSTRIPIDENT Strip the RCS IDs from program binaries and shared libraries.
235 MKINET6 If "no", disables building of INET6 (IPv6) infrastructure
236 (libraries and support programs). This option must not be
237 set to "no" if MKX11 is not "no".
240 MKINFO If "no", don't build or install Info documentation from
241 Texinfo source files.
244 MKIPFILTER If "no", don't build or install the IP Filter programs and LKM.
247 MKISCSI If "no", don't build or install iSCSI library or applications
248 (depends on libpthread.)
251 MKKDEBUG If "yes", force building of kernel symbol info and creation
252 of netbsd.gdb in all kernel builds, independently of the
253 settings for "makeoptions DEBUG" in the kernel config file.
255 MKKERBEROS If "no", disables building of Kerberos v5
256 infrastructure (libraries and support programs).
259 MKKMOD If "no", disables building of kernel modules.
262 MKKYUA If "no", don't build Kyua nor its dependent library Lutok.
263 Note that setting this to "no" does not disable the build of
264 the NetBSD test suite itself; the build of the tests is
265 controlled by the MKATF knob.
266 Default: no (until the import is done and validated)
268 MKLDAP If "no", disables building of LDAP infrastructure
269 (libraries and support programs).
272 MKLIBCXX If not "no", build and install libc++.
275 MKLIBSTDCXX If not "no", build and install libstdc++.
278 MKLINKLIB If "no", act as "MKLINT=no MKPICINSTALL=no MKPROFILE=no".
280 - don't install the .a libraries
281 - don't install _pic.a libraries on PIC systems
282 - don't build .a libraries on PIC systems
283 - don't install the .so symlink on ELF systems
284 I.e, only install the shared library (and the .so.major
288 MKLINT If "no", don't build or install the lint libraries.
291 MKLVM If "no", don't build or install the logical volume manager
292 and device mapper tools and libraries
295 MKMAN If "no", don't build or install the man or catman pages,
296 and also acts as "MKCATPAGES=no MKHTML=no".
299 MKMANDOC If "yes", mandoc is built as tool and used to compile
300 catman or html pages. A directory can be exempted by
301 defining NOMANDOC. Individual man pages are exempted
302 if NOMANDOC.${target} is set to "yes".
305 MKMANZ If not "no", compress manual pages at installation time.
308 MKMDNS If "no", disables building of mDNS infrastructure
309 (libraries and support programs).
312 MKNLS If "no", don't build or install the NLS files and locale
316 MKNPF If "no", don't build or install the NPF and its modules.
319 MKOBJ If "no", don't enable the rule which creates objdirs,
320 and also acts as "MKOBJDIRS=no".
323 MKOBJDIRS If "no", don't create objdirs during a "make build".
326 MKPAM If "no", disables building of PAM authentication
327 infrastructure (libraries and support programs).
330 MKPCC If "no", don't build pcc(1) or any of the PCC-related
331 libraries (libpcc, libpccsoftfloat).
334 MKPF If "no", don't build or install the pf programs and LKM.
337 MKPIC If "no", don't build or install shared libraries, and
338 also acts as "MKPICLIB=no"
339 Default: yes (for MACHINE_ARCHs that support it)
341 MKPICINSTALL If "no", don't install the *_pic.a libraries.
344 MKPICLIB If "no", don't build *_pic.a libraries, and build the
345 shared object libraries from the .a libraries.
346 A symlink is installed in ${DESTDIR}/usr/lib for the
347 _pic.a library pointing to the .a library.
350 MKPIE If "no", create regular executables. Otherwise create
351 PIE (Position Independent Executables).
354 MKPIGZGZIP If "no", only install pigz as pigz, not gzip.
357 MKPOSTFIX If "no", don't build or install postfix(1).
360 MKPROFILE If "no", don't build or install the profiling (*_p.a) libraries.
363 MKREPRO If "yes", create reproducable builds. This enables
364 different switches to make two builds from the same source tree
365 result in the same build results.
368 MKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no
370 I.e, don't build catman pages, documentation, Info
371 documentation, man pages, NLS files, ...
374 MKSKEY If "no", disables building of S/key authentication
375 infrastructure (libraries and support programs).
378 MKSLJIT If "no", disables building of sljit (stack-less platform
379 independent JIT compiler) private library and tests.
380 Default: yes on amd64, i386 and sparc, no elsewhere.
382 MKSOFTFLOAT If not "no", build with options to enable the compiler to
383 generate output containing library calls for floating
384 point and possibly soft-float library support.
387 MKSTATICLIB If "no", don't build or install the normal static (*.a)
391 MKTPM If "no" then don't build the Trusted Platform Module
395 MKUNPRIVED If not "no", don't set the owner/group/mode when installing
396 files or directories, and keep a metadata log of what
397 the owner/group/mode should be. This allows a
398 non-root "make install".
401 MKUPDATE If not "no", 'make install' only installs targets that are
402 more recently modified in the source directories that their
403 installed counterparts.
406 MKX11 If not "no", 'make build' also descends into
407 src/external/mit/xorg to cross-build X11 and automatically
408 enables creation of X sets.
411 MKX11FONTS If not "no", do not build or install the X fonts. The xfont
412 set is still created but will be empty.
415 MKX11MOTIF: If "yes", build the native X11 libGLw with Motif stubs. If
416 Motif is not installed in the default location /usr/pkg, the
417 location can be specified using the X11MOTIFPATH variable.
420 MKRADEONFIRMWARE If "no", install the /libdata/firmware/radeon directory,
421 which is necessary for the radeon DRM driver.
422 Default: yes on i386 and amd64, no elsewhere.
424 MKYP If "no", disables building of YP (NIS)
425 infrastructure (libraries and support programs).
428 MKZFS If "no", do not build and install utilities and libraries
429 used to manage ZFS file system. Do not build zfs and solaris
430 compatibility kernel modules. Note: ZFS requires 64bit
432 Default: yes on amd64, no elsewhere.
434 MKRUMP If "no", do not build and install rump related headers,
435 libraries, and programs.
438 USE_HESIOD If "no", disables building Hesiod support into
439 various system utilities/libraries that support it.
440 If ${MKHESIOD} is "no", USE_HESIOD will also be
443 USE_INET6 If "no", disables building INET6 (IPv6) support into
444 various system utilities/libraries that support it.
445 If ${MKINET6} is "no", USE_INET6 will also be
448 USE_JEMALLOC If "no", disables building the "jemalloc" allocator
449 designed for improved performance with threaded
450 applications. The "phkmalloc" allocator as used up
451 before NetBSD-5.0 will be substituted.
453 USE_KERBEROS If "no", disables building Kerberos v5
454 support into various system utilities/libraries that
455 support it. If ${MKKERBEROS} is "no", USE_KERBEROS
456 will also be forced to "no".
458 USE_LDAP If "no", disables building LDAP support into various
459 system utilities/libraries that support it.
460 If ${MKLDAP} is "no", USE_LDAP will also be forced to "no".
462 USE_PAM If "no", disables building PAM authentication support
463 into various system utilities/libraries that support it.
464 If ${MKPAM} is "no", USE_PAM will also be forced to "no".
466 USE_SKEY If "no", disables building S/key authentication
467 support into various system utilities/libraries that
468 support it. If ${MKSKEY} is "no", USE_SKEY will
469 also be forced to "no".
472 USE_SSP If "no", disables GCC stack protection code, which
473 detects stack overflows and aborts the program. The
474 stack protection code imposes a performance penalty
476 Default: "no", unless "USE_FORT" is set to "yes"
478 USE_FORT If "yes" turns on substitute wrappers for commonly used
479 functions that do not do bounds checking regularly, but
480 they could in some cases by using the gcc
481 __builtin_object_size() function to determine the buffer
482 size where it is known and detect buffer overflows.
483 These substitute functions are in /usr/include/ssp.
484 Default: depends on the part of the source tree
486 USE_YP If "no", disables building YP (NIS) support into
487 various system utilities/libraries that support it.
488 If ${MKYP} is "no", USE_YP will also be forced to "no".
490 USE_PIGZGZIP If "no", use the host "gzip" program to compress things.
491 Otherwise, build tools/pigz, set TOOL_GZIP=${TOOL_PIGZ},
492 and use nbpigz to compress things.
504 CXXFLAGS.<prog> These provide a way to specify additions to the associated
505 variables in a way that applies only to a particular library
506 or program. <lib> corresponds to the LIB variable set in
507 the library's makefile. <prog> corresponds to either PROG
508 or PROG_CXX (if set). For example, if COPTS.libcrypto is
509 set to "-g", "-g" will be added to COPTS only when compiling
512 The active compiler is selected using the following variables:
514 List of available compiler suites. Processed in order
515 for selecting the active compiler for each frontend.
516 HAVE_PCC If defined, PCC is present and enabled.
517 HAVE_LLVM If defined, LLVM/Clang is present and enabled.
518 UNSUPPORTED_COMPILER.xxx
519 If defined, the support for compiler "xxx" is disabled.
521 For the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist:
522 ACTIVE_CC Active compile suite for the CC frontend.
523 SUPPORTED_CC Compile suite with support for the CC frontend.
524 TOOL_CC.xxx Path to the CC frontend for compiler "xxx"
526 =-=-=-=-= sys.mk =-=-=-=-=
528 The include file <sys.mk> has the default rules for all makes, in the BSD
529 environment or otherwise. You probably don't want to touch this file.
531 =-=-=-=-= bsd.own.mk =-=-=-=-=
533 The include file <bsd.own.mk> contains source tree configuration parameters,
534 such as the owners, groups, etc. for both manual pages and binaries, and
535 a few global "feature configuration" parameters.
539 To get system-specific configuration parameters, <bsd.own.mk> will try to
540 include the file specified by the "MAKECONF" variable. If MAKECONF is not
541 set, or no such file exists, the system make configuration file, /etc/mk.conf
542 is included. These files may define any of the variables described below.
544 <bsd.own.mk> sets the following variables, if they are not already defined
545 (defaults are in brackets):
547 NETBSDSRCDIR Top of the NetBSD source tree.
548 If _SRC_TOP_ != "", that will be used as the default,
549 otherwise BSDSRCDIR will be used as the default.
550 Various makefiles within the NetBSD source tree will
551 use this to reference the top level of the source tree.
553 _SRC_TOP_ Top of the system source tree, as determined by <bsd.own.mk>
554 based on the presence of tools/ and build.sh. This variable
555 is "internal" to <bsd.own.mk>, although its value is only
556 determined once and then propagated to all sub-makes.
558 _NETBSD_VERSION_DEPENDS
559 A list of files which contain information about
560 the version of the NetBSD being built. This is
561 defined only if the current directory appears
562 to be inside a NetBSD source tree. The list of
563 files includes ${NETBSDSRCDIR}/sys/sys/param.h
564 (which contains the kernel version number),
565 ${NETBSDSRCDIR}/sys/conf/newvers.sh and
566 ${NETBSDSRCDIR}/sys/conf/osrelease.sh (which
567 interpret the information in sys/sys/param.h), and
568 ${_SRC_TOP_OBJ_}/params (which is an optional file,
569 created by "make build" in ${_SRC_TOP_}/Makefile,
570 containing all the variables that may influence the
573 Targets that depend on the NetBSD version, or on
574 variables defined at build time, can declare a
575 dependency on ${_NETBSD_VERSION_DEPENDS}, like this:
577 version.c: ${_NETBSD_VERSION_DEPENDS}
578 commands to create version.c
580 BSDSRCDIR The real path to the system sources, so that 'make obj'
581 will work correctly. [/usr/src]
583 BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj'
584 will work correctly. [/usr/obj]
586 BINGRP Binary group. [wheel]
588 BINOWN Binary owner. [root]
590 BINMODE Binary mode. [555]
592 NONBINMODE Mode for non-executable files. [444]
594 MANDIR Base path for manual installation. [/usr/share/man/cat]
596 MANGRP Manual group. [wheel]
598 MANOWN Manual owner. [root]
600 MANMODE Manual mode. [${NONBINMODE}]
602 MANINSTALL Manual installation type. Space separated list:
603 catinstall, htmlinstall, maninstall
604 Default value derived from MKCATPAGES and MKHTML.
606 LDSTATIC Control program linking; if set blank, link everything
607 dynamically. If set to "-static", link everything statically.
608 If not set, programs link according to their makefile.
610 LIBDIR Base path for library installation. [/usr/lib]
612 LINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint]
614 LIBGRP Library group. [${BINGRP}]
616 LIBOWN Library owner. [${BINOWN}]
618 LIBMODE Library mode. [${NONBINMODE}]
620 DOCDIR Base path for system documentation (e.g. PSD, USD, etc.)
621 installation. [/usr/share/doc]
623 DOCGRP Documentation group. [wheel]
625 DOCOWN Documentation owner. [root]
627 DOCMODE Documentation mode. [${NONBINMODE}]
629 GZIP_N_FLAG Flags to pass to TOOL_GZIP to prevent it from inserting
630 file names or timestamps in the compressed output.
631 [-n, or -nT when TOOL_GZIP is really TOOL_PIGZ]
633 NLSDIR Base path for Native Language Support files installation.
636 NLSGRP Native Language Support files group. [wheel]
638 NLSOWN Native Language Support files owner. [root]
640 NLSMODE Native Language Support files mode. [${NONBINMODE}]
642 X11SRCDIR The path to the xsrc tree. [${NETBSDSRCDIR}/../xsrc,
643 if that exists; otherwise /usr/xsrc]
645 X11SRCDIR.local The path to the local X11 src tree. [${X11SRCDIR}/local]
647 X11SRCDIR.lib<package>
649 The path to the xorg src tree for the specificed package>.
650 [${X11SRCDIR}/external/mit/xorg/<package>/dist]
652 X11ROOTDIR Root directory of the X11 installation. [/usr/X11R6 or
655 X11BINDIR X11 bin directory. [${X11ROOTDIR}/bin]
657 X11FONTDIR X11 font directory. [${X11ROOTDIR}/lib/X11/fonts]
659 X11INCDIR X11 include directory. [${X11ROOTDIR}/include]
661 X11LIBDIR X11 lib/x11 (config) directory. [${X11ROOTDIR}/lib/X11]
663 X11MANDIR X11 manual directory. [${X11ROOTDIR}/man]
665 X11USRLIBDIR X11 library directory. [${X11ROOTDIR}/lib]
667 STRIPFLAG The flag passed to the install program to cause the binary
668 to be stripped. This is to be used when building your
669 own install script so that the entire system can be made
670 stripped/not-stripped using a single knob. []
672 COPY The flag passed to the install program to cause the binary
673 to be copied rather than moved. This is to be used when
674 building our own install script so that the entire system
675 can either be installed with copies, or with moves using
679 Environment variables passed to the child make process
680 invoked by MAKEDIRTARGET.
682 MAKEDIRTARGET dir target [params]
683 Runs "cd $${dir} && ${MAKE} [params] $${target}",
684 displaying a "pretty" message whilst doing so.
687 Subdirectory used below RELEASEDIR when building
688 a release. [${MACHINE}]
690 RELEASEMACHINE Subdirectory or path component used for the following
692 distrib/${RELEASEMACHINE}
693 distrib/notes/${RELEASEMACHINE}
694 etc/etc.${RELEASEMACHINE}
695 Used when building a release. [${MACHINE}]
697 Additionally, the following variables may be set by <bsd.own.mk> or in a
698 make configuration file to modify the behavior of the system build
699 process (default values are in brackets along with comments, if set by
702 USETOOLS Indicates whether the tools specified by ${TOOLDIR} should
703 be used as part of a build in progress.
706 yes Use the tools from TOOLDIR.
707 Must be set to this if cross-compiling.
709 no Do not use the tools from TOOLDIR, but refuse to
710 build native compilation tool components that are
711 version-specific for that tool.
713 never Do not use the tools from TOOLDIR, even when
714 building native tool components. This is similar to
715 the traditional NetBSD build method, but does not
716 verify that the compilation tools in use are
717 up-to-date enough in order to build the tree
718 successfully. This may cause build or runtime
719 problems when building the whole NetBSD source tree.
721 Default: "yes" if building all or part of a whole NetBSD
722 source tree (detected automatically); "no" otherwise
723 (to preserve traditional semantics of the <bsd.*.mk>
724 make(1) include files).
726 OBJECT_FMT Object file format. [set to "ELF" on architectures that
727 use ELF -- currently all architectures].
730 If not "no", this indicates that the platform being built
731 does not have a working in-tree toolchain. If the
732 ${MACHINE_ARCH} in question falls into this category,
733 TOOLCHAIN_MISSING is conditionally assigned the value "yes".
734 Otherwise, the variable is unconditionally assigned the
736 If not "no", ${MKBINUTILS}, ${MKGCC}, and ${MKGDB} are
737 unconditionally assigned the value "no".
740 This variable is not directly set by <bsd.own.mk>, but
741 including <bsd.own.mk> is the canonical way to gain
742 access to this variable. The variable should be defined
743 either in the user's environment or in the user's mk.conf
744 file. If defined, this variable indicates the root of
745 an external toolchain which will be used to build the
746 tree. For example, if a platform is a ${TOOLCHAIN_MISSING}
747 platform, EXTERNAL_TOOLCHAIN can be used to re-enable the
748 cross-compile framework.
750 If EXTERNAL_TOOLCHAIN is defined, ${MKGCC} is unconditionally
751 assigned the value "no", since the external version of the
752 compiler may not be able to build the library components of
753 the in-tree compiler.
755 NOTE: This variable is not yet used in as many places as
756 it should be. Expect the exact semantics of this variable
757 to change in the short term as parts of the cross-compile
758 framework continue to be cleaned up.
760 The following variables are defined to commands to perform the
761 appropriate operation, with the default in [brackets]. Note that
762 the defaults change if USETOOLS == "yes":
764 TOOL_AMIGAAOUT2BB aout to Amiga bootblock converter. [amiga-aout2bb]
766 TOOL_AMIGAELF2BB ELF to Amiga bootblock converter. [amiga-elf2bb]
768 TOOL_AMIGATXLT Amige assembly language format translator. [amiga-txlt]
770 TOOL_ASN1_COMPILE ASN1 compiler. [asn1_compile]
772 TOOL_AWK Pattern-directed scanning/processing language. [awk]
774 TOOL_CAP_MKDB Create capability database. [cap_mkdb]
776 TOOL_CAT Concatenate and print files. [cat]
778 TOOL_CKSUM Display file checksums. [cksum]
780 TOOL_COMPILE_ET Error table compiler. [compile_et]
782 TOOL_CONFIG Build kernel compilation directories. [config]
784 TOOL_CRUNCHGEN Generate crunched binary build environment. [crunchgen]
786 TOOL_CTAGS Create a tags file. [ctags]
788 TOOL_DB Manipulate db(3) databases. [db]
790 TOOL_DISKLABEL Read and write disk pack label. [disklabel]
792 TOOL_EQN Format equations for groff. [eqn]
794 TOOL_FDISK MS-DOS partition maintenance program. [fdisk]
796 TOOL_FGEN IEEE 1275 Open Firmware FCode Tokenizer. [fgen]
798 TOOL_GENASSYM Generate constants for assembly files. [genassym]
800 TOOL_GENCAT Generate NLS message catalogs. [gencat]
802 TOOL_GMAKE GNU make utility. [gmake]
804 TOOL_GREP Print lines matching a pattern. [grep]
806 TOOL_GROFF Front end for groff document formatting system. [groff]
808 TOOL_GZIP Compression/decompression tool. [gzip]
810 TOOL_GZIP_N Same as TOOL_GZIP, plus a command line option to
811 prevent it from inserting file names or timestamps
812 into the compressed output.
813 [${TOOL_GZIP} ${GZIP_N_FLAG}]
815 TOOL_HEXDUMP Ascii, decimal, hexadecimal, octal dump. [hexdump]
817 TOOL_HP300MKBOOT Make bootable image for hp300. [hp300-mkboot]
819 TOOL_HPPAMKBOOT Make bootable image for hppa. [hppa-mkboot]
821 TOOL_INDXBIB Make bibliographic database's inverted index. [indxbib]
823 TOOL_INSTALLBOOT Install disk bootstrap software. [installboot]
825 TOOL_INSTALL_INFO Update info/dir entries. [install-info]
827 TOOL_JOIN Relational database operator. [join]
829 TOOL_M4 M4 macro language processor. [m4]
831 TOOL_MACPPCFIXCOFF Fix up xcoff headers for macppc. [macppc-fixcoff]
833 TOOL_MAKEFS Create file system image from directory tree. [makefs]
835 TOOL_MAKEINFO Translate Texinfo documents. [makeinfo]
837 TOOL_MAKEWHATIS Create a whatis.db database. [makewhatis]
839 TOOL_MDSETIMAGE Set kernel RAM disk image. [mdsetimage]
841 TOOL_MENUC Menu compiler. [menuc]
843 TOOL_MIPSELF2ECOFF Convert ELF-format executable to ECOFF for mips.
846 TOOL_MKCSMAPPER Make charset mapping table. [mkcsmapper]
848 TOOL_MKESDB Make encoding scheme database. [mkesdb]
850 TOOL_MKLOCALE Make LC_CTYPE locale files. [mklocale]
852 TOOL_MKMAGIC Create database for file(1). [file]
854 TOOL_MKNOD Make device special file. [mknod]
856 TOOL_MKTEMP Make (unique) temporary file name. [mktemp]
858 TOOL_MSGC Simple message list compiler. [msgc]
860 TOOL_MTREE Map a directory hierarchy. [mtree]
862 TOOL_NCDCS Turn ELF kernel into a NCD firmware image. [ncdcs]
864 TOOL_PAX Manipulate file archives and copy directories. [pax]
866 TOOL_PIC Compile pictures for groff. [pic]
868 TOOL_PIGZ Parallel compressor. [pigz]
870 TOOL_POWERPCMKBOOTIMAGE Make bootable image for powerpc. [powerpc-mkbootimage]
872 TOOL_PWD_MKDB Generate the password databases. [pwd_mkdb]
874 TOOL_REFER Preprocess bibliographic references for groff. [refer]
876 TOOL_ROFF_ASCII Generate ASCII groff output. [nroff]
878 TOOL_ROFF_DVI Generate DVI groff output. [${TOOL_GROFF} -Tdvi]
880 TOOL_ROFF_HTML Generate HTML groff output.
881 [${TOOL_GROFF} -Tlatin1 -mdoc2html]
883 TOOL_ROFF_PS Generate PS groff output. [${TOOL_GROFF} -Tps]
885 TOOL_ROFF_RAW Generate "raw" groff output. [${TOOL_GROFF} -Z]
887 TOOL_RPCGEN Remote Procedure Call (RPC) protocol compiler. [rpcgen]
889 TOOL_SED Stream editor. [sed]
891 TOOL_SOELIM Eliminate .so's from groff input. [soelim]
893 TOOL_SPARKCRC Generate a crc suitable for use in a sparkive file.
896 TOOL_STAT Display file status. [stat]
898 TOOL_STRFILE Create a random access file for storing strings.
901 TOOL_SUNLABEL Read or modify a SunOS disk label. [sunlabel]
903 TOOL_TBL Format tables for groff. [tbl]
905 TOOL_UUDECODE Uudecode a binary file. [uudecode]
907 TOOL_VGRIND Grind nice listings of programs. [vgrind -f]
909 TOOL_ZIC Time zone compiler. [zic]
911 For each possible value of MACHINE_CPU, MACHINES.${MACHINE_CPU} contain a
912 list of what ports can be built for it. This keeps those definitions in
915 <bsd.own.mk> is generally useful when building your own Makefiles so that
916 they use the same default owners etc. as the rest of the tree.
919 =-=-=-=-= bsd.clean.mk =-=-=-=-=
921 The include file <bsd.clean.mk> defines the clean and cleandir
922 targets. It uses the following variables:
924 CLEANFILES Files to remove for both the clean and cleandir targets.
926 CLEANDIRFILES Files to remove for the cleandir target, but not for
929 MKCLEANSRC Controls whether or not the clean and cleandir targets
930 will delete files from both the object directory,
931 ${.OBJDIR}, and the source directory, ${.CURDIR}.
933 If MKCLEANSRC is set to "no", then the file names in
934 CLEANFILES or CLEANDIRFILES are interpreted relative
935 to the object directory, ${.OBJDIR}. This is the
936 traditional behaviour.
938 If MKCLEANSRC is set to "yes", then the file deletion
939 is performed relative to both the object directory,
940 ${.OBJDIR}, and the source directory, ${.CURDIR}. (This
941 has no effect if ${.OBJDIR} is the same as ${.CURDIR}.)
942 Deleting files from ${.CURDIR} is intended to remove
943 stray output files that had been left in the source
944 directory by an earlier build that did not use object
947 The default is MKCLEANSRC=yes. If you always build with
948 separate object directories, and you are sure that there
949 are no stray files in the source directories, then you
950 may set MKCLEANSRC=no to save some time.
952 MKCLEANVERIFY Controls whether or not the clean and cleandir targets
953 will verify that files have been deleted.
955 If MKCLEANVERIFY is set to "no", then the files will
956 be deleted using a "rm -f" command, and its success or
957 failure will be ignored.
959 If MKCLEANVERIFY is set to "yes", then the success of
960 the "rm -f" command will be verified using an "ls"
963 The default is MKCLEANVERIFY=yes. If you are sure that
964 there will be no problems caused by file permissions,
965 read-only file systems, or the like, then you may set
966 MKCLEANVERIFY=no to save some time.
968 To use the clean and cleandir targets defined in <bsd.clean.mk>, other
969 Makefiles or bsd.*.mk files should append file names to the CLEANFILES
970 or CLEANDIRFILES variables. For example:
973 CLEANDIRFILES+= .depend
975 .include <bsd.clean.mk>
977 The files listed in CLEANFILES and CLEANDIRFILES must not be
978 directories, because the potential risk from running "rm -rf" commands
979 in bsd.clean.mk is considered too great. If you want to recursively
980 delete a directory as part of "make clean" or "make cleandir" then you
981 need to provide your own target.
983 =-=-=-=-= bsd.dep.mk =-=-=-=-=
985 The include file <bsd.dep.mk> contains the default targets for building
986 .depend files. It creates .d files from entries in SRCS and DPSRCS
987 that are C, C++, or Objective C source files, and builds .depend from the
988 .d files. All other files in SRCS and all of DPSRCS will be used as
989 dependencies for the .d files. In order for this to function correctly,
990 it should be .included after all other .mk files and directives that may
991 modify SRCS or DPSRCS. It uses the following variables:
993 SRCS List of source files to build the program.
995 DPSRCS List of source files which are needed for generating
996 dependencies, but are not needed in ${SRCS}.
999 =-=-=-=-= bsd.files.mk =-=-=-=-=
1001 The include file <bsd.files.mk> handles the FILES variables and is included
1002 from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables:
1004 FILES The list of files to install.
1006 CONFIGFILES Similar semantics to FILES, except that the files
1007 are installed by the `configinstall' target,
1008 not the `install' target.
1009 The FILES* variables documented below also apply.
1011 FILESOWN File owner. [${BINOWN}]
1013 FILESGRP File group. [${BINGRP}]
1015 FILESMODE File mode. [${NONBINMODE}]
1017 FILESDIR The location to install the files.
1019 FILESNAME Optional name to install each file as.
1021 FILESOWN_<fn> File owner of the specific file <fn>.
1023 FILESGRP_<fn> File group of the specific file <fn>.
1025 FILESMODE_<fn> File mode of the specific file <fn>.
1027 FILESDIR_<fn> The location to install the specific file <fn>.
1029 FILESNAME_<fn> Optional name to install <fn> as.
1031 FILESBUILD If this variable is defined, then its value will be
1032 used as the default for all FILESBUILD_<fn> variables.
1033 Otherwise, the default will be "no".
1035 FILESBUILD_<fn> A value different from "no" will add the file to the list of
1036 targets to be built by `realall'. Users of that variable
1037 should provide a target to build the file.
1040 BUILDSYMLINKS List of two word items:
1042 For each lnsrc item, create a symlink named lntgt.
1043 The lntgt symlinks are removed by the cleandir target.
1045 UUDECODE_FILES List of files which are stored as <file>.uue in the source
1046 tree. Each one will be decoded with ${TOOL_UUDECODE}.
1047 The source files have a `.uue' suffix, the generated files do
1050 UUDECODE_FILES_RENAME_<fn>
1051 Rename the output from the decode to the provided name.
1053 *NOTE: These files are simply decoded, with no install or other
1054 rule applying implicitly except being added to the clean
1057 =-=-=-=-= bsd.gcc.mk =-=-=-=-=
1059 The include file <bsd.gcc.mk> computes various parameters related to GCC
1060 support libraries. It defines no targets. <bsd.own.mk> MUST be included
1061 before <bsd.gcc.mk>.
1063 The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each
1064 of which need to know where to find certain GCC support libraries.
1066 The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable,
1067 which is generally set by the user. If EXTERNAL_TOOLCHAIN it set, then
1068 the compiler is asked where to find the support libraries, otherwise the
1069 support libraries are found in ${DESTDIR}/usr/lib.
1071 <bsd.gcc.mk> sets the following variables:
1073 _GCC_CRTBEGIN The full path name to crtbegin.o.
1075 _GCC_CRTBEGINS The full path name to crtbeginS.o.
1077 _GCC_CRTEND The full path name to crtend.o.
1079 _GCC_CRTENDS The full path name to crtendS.o.
1081 _GCC_LIBGCCDIR The directory where libgcc.a is located.
1084 =-=-=-=-= bsd.inc.mk =-=-=-=-=
1086 The include file <bsd.inc.mk> defines the includes target and uses the
1089 INCS The list of include files.
1091 INCSDIR The location to install the include files.
1093 INCSNAME Target name of the include file, if only one; same as
1094 FILESNAME, but for include files.
1096 INCSYMLINKS Similar to SYMLINKS in <bsd.links.mk>, except that these
1097 are installed in the 'includes' target and not the
1098 (much later) 'install' target.
1100 INCSNAME_<file> The name file <file> should be installed as, if not <file>,
1101 same as FILESNAME_<file>, but for include files.
1104 =-=-=-=-= bsd.info.mk =-=-=-=-=
1106 The include file <bsd.info.mk> is used to generate and install GNU Info
1107 documentation from respective Texinfo source files. It defines three
1108 implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the
1109 following variables:
1111 TEXINFO List of Texinfo source files. Info documentation will
1112 consist of single files with the extension replaced by
1115 INFOFLAGS Flags to pass to makeinfo. []
1118 =-=-=-=-= bsd.kernobj.mk =-=-=-=-=
1120 The include file <bsd.kernobj.mk> defines variables related to the
1121 location of kernel sources and object directories.
1123 KERNSRCDIR Is the location of the top of the kernel src.
1126 KERNARCHDIR Is the location of the machine dependent kernel sources.
1129 KERNCONFDIR Is where the configuration files for kernels are found.
1130 [${KERNSRCDIR}/${KERNARCHDIR}/conf]
1132 KERNOBJDIR Is the kernel build directory. The kernel GENERIC for
1133 instance will be compiled in ${KERNOBJDIR}/GENERIC.
1134 The default value is
1135 ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile
1136 if it exists or the target 'obj' is being made.
1137 Otherwise the default is
1138 ${KERNSRCDIR}/${KERNARCHDIR}/compile.
1140 It is important that Makefiles (such as those under src/distrib) that
1141 wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR}
1142 rather than make assumptions about the location of the compiled kernel.
1145 =-=-=-=-= bsd.kinc.mk =-=-=-=-=
1147 The include file <bsd.kinc.mk> defines the many targets (includes,
1148 subdirectories, etc.), and is used by kernel makefiles to handle
1149 include file installation. It is intended to be included alone, by
1150 kernel Makefiles. It uses similar variables to <bsd.inc.mk>.
1151 Please see <bsd.kinc.mk> for more details, and keep the documentation
1152 in that file up to date.
1154 =-=-=-=-= bsd.syscall.mk =-=-=-=-=
1156 The include file <bsd.syscall.mk> contains the logic to create syscall
1157 files for various emulations. It includes <bsd.kinc.mk> to handle the
1158 rest of the targets.
1160 =-=-=-=-= bsd.lib.mk =-=-=-=-=
1162 The include file <bsd.lib.mk> has support for building libraries. It has
1163 the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend,
1164 includes, install, lint, and tags. Additionally, it has a checkver target
1165 which checks for installed shared object libraries whose version is greater
1166 that the version of the source. It has a limited number of suffixes,
1167 consistent with the current needs of the BSD tree. <bsd.lib.mk> includes
1168 <bsd.shlib.mk> to get shared library parameters.
1170 It sets/uses the following variables:
1172 LIB The name of the library to build.
1174 LIBDIR Target directory for libraries.
1176 MKARZERO Normally, ar(1) sets the timestamps, uid, gid and
1177 permissions in files inside its archives to those of
1178 the file it was fed. This leads to non-reproduceable
1179 builds. If MKARZERO is set to "yes" (default is the
1180 same as MKREPRO, or "no" if MKREPRO is not defined),
1181 then the "D" flag is passed to ar, causing the
1182 timestamp, uid and gid to be zeroed and the file
1183 permissions to be set to 644. This allows .a files
1184 from different builds to be bit identical.
1186 SHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR}
1191 SHLIB_TEENY Major, minor, and teeny version numbers of shared library
1193 USE_SHLIBDIR If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR}
1194 as the path to install shared libraries to.
1195 USE_SHLIBDIR must be defined before <bsd.own.mk> is included.
1198 LIBISMODULE If not "no", install as ${LIB}.so (without the "lib" prefix),
1199 and act as "MKDEBUGLIB=no MKLINT=no MKPICINSTALL=no
1200 MKPROFILE=no MKSTATICLIB=no".
1203 LIBISPRIVATE If not "no", act as "MKDEBUGLIB=no MKLINT=no MKPIC=no
1204 MKPROFILE=no", and don't install the (.a) library.
1205 This is useful for "build only" helper libraries.
1208 LIBISCXX If not "no", Use ${CXX} instead of ${CC} to link
1210 This is useful for C++ libraries.
1213 LINTLIBDIR Target directory for lint libraries.
1215 LIBGRP Library group.
1217 LIBOWN Library owner.
1219 LIBMODE Library mode.
1221 LDADD Additional loader objects.
1223 MAN The manual pages to be installed (use a .1 - .9 suffix).
1225 NOCHECKVER_<library>
1226 NOCHECKVER If set, disables checking for installed shared object
1227 libraries with versions greater than the source. A
1228 particular library name, without the "lib" prefix, may
1229 be appended to the variable name to disable the check for
1232 SRCS List of source files to build the library. Suffix types
1233 .s, .c, and .f are supported. Note, .s files are preferred
1234 to .c files of the same name. (This is not the default for
1237 LIBDPLIBS A list of the tuples:
1238 libname path-to-srcdir-of-libname
1241 * LIBDO.libname contains the .OBJDIR of the library
1242 `libname', and if it is not set it is determined
1243 from the srcdir and added to MAKEOVERRIDES (the
1244 latter is to allow for build time optimization).
1245 * LDADD gets -L${LIBDO.libname} -llibname added.
1246 * DPADD gets ${LIBDO.libname}/liblibname.so or
1247 ${LIBDO.libname}/liblibname.a added.
1249 The special value "_external" for LIBDO.lib makes the
1250 build system to assume the library comes from outside
1251 of the NetBSD source tree and only causes -llibname
1252 to be added to LDADD.
1254 This variable may be used for individual libraries, as
1255 well as in parent directories to cache common libraries
1256 as a build-time optimization.
1258 The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
1259 if it exists, as well as the include file <bsd.man.mk>.
1261 It has rules for building profiled objects; profiled libraries are
1264 Libraries are ranlib'd when made.
1267 =-=-=-=-= bsd.links.mk =-=-=-=-=
1269 The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
1270 and is included from from <bsd.lib.mk> and <bsd.prog.mk>.
1272 LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log
1273 is used. The defaults may be modified by other bsd.*.mk files which
1274 include bsd.links.mk. In the future, these variables may be replaced
1275 by a method for explicitly recording hard links in a metadata log.
1277 LINKS The list of hard links, consisting of pairs of paths:
1278 source-file target-file
1279 ${DESTDIR} is prepended to both paths before linking.
1280 For example, to link /bin/test and /bin/[, use:
1281 LINKS=/bin/test /bin/[
1283 CONFIGLINKS Similar semantics to LINKS, except that the links
1284 are installed by the `configinstall' target,
1285 not the `install' target.
1287 SYMLINKS The list of symbolic links, consisting of pairs of paths:
1288 source-file target-file
1289 ${DESTDIR} is only prepended to target-file before linking.
1290 For example, to symlink /usr/bin/tar to /bin/tar resulting
1291 in ${DESTDIR}/usr/bin/tar -> /bin/tar:
1292 SYMLINKS=/bin/tar /usr/bin/tar
1294 CONFIGSYMLINKS Similar semantics to SYMLINKS, except that the symbolic links
1295 are installed by the `configinstall' target,
1296 not the `install' target.
1298 LINKSOWN Link owner. [${BINOWN}]
1300 LINKSGRP Link group. [${BINGRP}]
1302 LINKSMODE Link mode. [${NONBINMODE}]
1304 LINKSOWN_<fn> Link owner of the specific file <fn>.
1306 LINKSGRP_<fn> Link group of the specific file <fn>.
1308 LINKSMODE_<fn> Link mode of the specific file <fn>.
1311 =-=-=-=-= bsd.man.mk =-=-=-=-=
1313 The include file <bsd.man.mk> handles installing manual pages and their
1316 It has a three targets:
1319 Install the preformatted manual pages and their links.
1321 Install the HTML manual pages and their links.
1323 Install the manual page sources and their links.
1325 It sets/uses the following variables:
1327 MANDIR Base path for manual installation.
1329 MANGRP Manual group.
1331 MANOWN Manual owner.
1333 MANMODE Manual mode.
1335 MANSUBDIR Subdirectory under the manual page section, i.e. "/vax"
1336 or "/tahoe" for machine specific manual pages.
1338 MAN The manual pages to be installed (use a .1 - .9 suffix).
1340 MLINKS List of manual page links (using a .1 - .9 suffix). The
1341 linked-to file must come first, the linked file second,
1342 and there may be multiple pairs.
1344 The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
1348 =-=-=-=-= bsd.obj.mk =-=-=-=-=
1350 The include file <bsd.obj.mk> defines targets related to the creation
1351 and use of separated object and source directories.
1353 If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses
1354 ${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if
1355 it exists. Otherwise make(1) looks for the existence of a
1356 subdirectory (or a symlink to a directory) of the source directory
1357 into which built targets should be placed. If an environment variable
1358 named MAKEOBJDIR is set, make(1) uses its value as the name of the
1359 object directory; failing that, make first looks for a subdirectory
1360 named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj".
1362 Object directories are not created automatically by make(1) if they
1363 don't exist; you need to run a separate "make obj". (This will happen
1364 during a top-level build if "MKOBJDIRS" is set to a value other than
1365 "no"). When the source directory is a subdirectory of ${BSDSRCDIR} --
1366 and this is determined by a simple string prefix comparison -- object
1367 directories are created in a separate object directory tree, and a
1368 symlink to the object directory in that tree is created in the source
1369 directory; otherwise, "make obj" assumes that you're not in the main
1370 source tree and that it's not safe to use a separate object tree.
1372 Several variables used by <bsd.obj.mk> control exactly what
1373 directories and links get created during a "make obj":
1375 MAKEOBJDIR If set, this is the component name of the object
1378 OBJMACHINE If this is set but MAKEOBJDIR is not set, creates
1379 object directories or links named "obj.${MACHINE}";
1380 otherwise, just creates ones named "obj".
1382 USR_OBJMACHINE If set, and the current directory is a subdirectory of
1383 ${BSDSRCDIR}, create object directory in the
1384 corresponding subdirectory of ${BSDOBJDIR}.${MACHINE};
1385 otherwise, create it in the corresponding subdirectory
1388 BUILDID If set, the contents of this variable are appended
1389 to the object directory name. If OBJMACHINE is also
1390 set, ".${BUILDID}" is added after ".${MACHINE}".
1393 =-=-=-=-= bsd.prog.mk =-=-=-=-=
1395 The include file <bsd.prog.mk> handles building programs from one or
1396 more source files, along with their manual pages. It has a limited number
1397 of suffixes, consistent with the current needs of the BSD tree.
1398 <bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters.
1400 It has eight targets:
1403 build the program and its manual page. This also
1404 creates a GDB initialization file (.gdbinit) in
1405 the objdir. The .gdbinit file sets the shared library
1406 prefix to ${DESTDIR} to facilitate cross-debugging.
1408 remove the program, any object files and the files a.out,
1409 Errs, errs, mklog, and ${PROG}.core.
1411 remove all of the files removed by the target clean, as
1412 well as .depend, tags, and any manual pages.
1413 `distclean' is a synonym for `cleandir'.
1415 make the dependencies for the source files, and store
1416 them in the file .depend.
1418 install any header files.
1420 install the program and its manual pages; if the Makefile
1421 does not itself define the target install, the targets
1422 beforeinstall and afterinstall may also be used to cause
1423 actions immediately before and after the install target
1426 run lint on the source files
1428 create a tags file for the source files.
1430 It sets/uses the following variables:
1432 BINGRP Binary group.
1434 BINOWN Binary owner.
1436 BINMODE Binary mode.
1438 CLEANDIRFILES Additional files to remove for the cleandir target.
1440 CLEANFILES Additional files to remove for the clean and cleandir targets.
1442 CONFIGOPTS Additional flags to config(1) when building kernels.
1444 COPTS Additional flags to the compiler when creating C objects.
1446 COPTS.<fn> Additional flags to the compiler when creating the
1448 For <fn>.[ly], "<fn>.c" must be used.
1450 CPUFLAGS Additional flags to the compiler/assembler to select
1451 CPU instruction set options, CPU tuning options, etc.
1453 CPUFLAGS.<fn> Additional flags to the compiler/assembler for <fn>.
1454 For <fn>.[ly], "<fn>.c" must be used.
1456 CPPFLAGS Additional flags to the C pre-processor.
1458 CPPFLAGS.<fn> Additional flags to the C pre-processor for <fn>.
1459 For <fn>.[ly], "<fn>.c" must be used.
1461 GDBINIT List of GDB initialization files to add to "source"
1462 directives in the .gdbinit file that is created in the
1465 LDADD Additional loader objects. Usually used for libraries.
1466 For example, to load with the compatibility and utility
1469 LDADD+=-lutil -lcompat
1471 LDFLAGS Additional linker flags (passed to ${CC} during link).
1473 LINKS See <bsd.links.mk>
1475 OBJCOPTS Additional flags to the compiler when creating ObjC objects.
1477 OBJCOPTS.<fn> Additional flags to the compiler when creating the
1478 ObjC objects for <fn>.
1479 For <fn>.[ly], "<fn>.c" must be used.
1481 SYMLINKS See <bsd.links.mk>
1483 MAN Manual pages (should end in .1 - .9). If no MAN variable is
1484 defined, "MAN=${PROG}.1" is assumed.
1486 PAXCTL_FLAGS If defined, run paxctl(1) on the program binary after link
1487 time, with the value of this variable as args to paxctl(1).
1489 PAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS.
1491 PROG The name of the program to build. If not supplied, nothing
1494 PROG_CXX If defined, the name of the program to build. Also
1495 causes <bsd.prog.mk> to link the program with the C++
1496 compiler rather than the C compiler. PROG_CXX overrides
1497 the value of PROG if PROG is also set.
1499 PROGNAME The name that the above program will be installed as, if
1500 different from ${PROG}.
1502 SRCS List of source files to build the program. If SRCS is not
1503 defined, it's assumed to be ${PROG}.c.
1505 DPSRCS List of source files which are needed for generating
1506 dependencies, but are not needed in ${SRCS}.
1508 DPADD Additional dependencies for the program. Usually used for
1509 libraries. For example, to depend on the compatibility and
1510 utility libraries use:
1512 DPADD+=${LIBCOMPAT} ${LIBUTIL}
1514 The following system libraries are predefined for DPADD:
1516 LIBARCHIVE?= ${DESTDIR}/usr/lib/libarchive.a
1517 LIBASN1?= ${DESTDIR}/usr/lib/libasn1.a
1518 LIBATF_C?= ${DESTDIR}/usr/lib/libatf-c.a
1519 LIBATF_CXX?= ${DESTDIR}/usr/lib/libatf-c++.a
1520 LIBBIND9?= ${DESTDIR}/usr/lib/libbind9.a
1521 LIBBLUETOOTH?= ${DESTDIR}/usr/lib/libbluetooth.a
1522 LIBBSDMALLOC?= ${DESTDIR}/usr/lib/libbsdmalloc.a
1523 LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a
1524 LIBC?= ${DESTDIR}/usr/lib/libc.a
1525 LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a
1526 LIBCOM_ERR?= ${DESTDIR}/usr/lib/libcom_err.a
1527 LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o
1528 LIBCRTI?= ${DESTDIR}/usr/lib/crti.o
1529 LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a
1530 LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a
1531 LIBCRYPTO_IDEA?=${DESTDIR}/usr/lib/libcrypto_idea.a
1532 LIBCRYPTO_MDC2?=${DESTDIR}/usr/lib/libcrypto_mdc2.a
1533 LIBCRYPTO_RC5?= ${DESTDIR}/usr/lib/libcrypto_rc5.a
1534 LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a
1535 LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a
1536 LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a
1537 LIBDES?= ${DESTDIR}/usr/lib/libdes.a
1538 LIBDNS?= ${DESTDIR}/usr/lib/libdns.a
1539 LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a
1540 LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a
1541 LIBEVENT_OPENSSL?= ${DESTDIR}/usr/lib/libevent_openssl.a
1542 LIBEVENT_PTHREADS?= ${DESTDIR}/usr/lib/libevent_pthreads.a
1543 LIBEXPAT?= ${DESTDIR}/usr/lib/libexpat.a
1544 LIBFETCH?= ${DESTDIR}/usr/lib/libfetch.a
1545 LIBFORM?= ${DESTDIR}/usr/lib/libform.a
1546 LIBFL?= ${DESTDIR}/usr/lib/libfl.a
1547 LIBG2C?= ${DESTDIR}/usr/lib/libg2c.a
1548 LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a
1549 LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a
1550 LIBGSSAPI?= ${DESTDIR}/usr/lib/libgssapi.a
1551 LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a
1552 LIBHEIMBASE?= ${DESTDIR}/usr/lib/libheimbase.a
1553 LIBHEIMNTLM?= ${DESTDIR}/usr/lib/libheimntlm.a
1554 LIBHX500?= ${DESTDIR}/usr/lib/libhx500.a
1555 LIBINTL?= ${DESTDIR}/usr/lib/libintl.a
1556 LIBIPSEC?= ${DESTDIR}/usr/lib/libipsec.a
1557 LIBISC?= ${DESTDIR}/usr/lib/libisc.a
1558 LIBISCCC?= ${DESTDIR}/usr/lib/libisccc.a
1559 LIBISCFG?= ${DESTDIR}/usr/lib/libiscfg.a
1560 LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a
1561 LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a
1562 LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a
1563 LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a
1564 LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a
1565 LIBL?= ${DESTDIR}/usr/lib/libl.a
1566 LIBLBER?= ${DESTDIR}/usr/lib/liblber.a
1567 LIBLDAP?= ${DESTDIR}/usr/lib/libldap.a
1568 LIBLDAP_R?= ${DESTDIR}/usr/lib/libldap_r.a
1569 LIBLUA?= ${DESTDIR}/usr/lib/liblua.a
1570 LIBLUTOK?= ${DESTDIR}/usr/lib/liblutok.a
1571 LIBLWRES?= ${DESTDIR}/usr/lib/liblwres.a
1572 LIBM?= ${DESTDIR}/usr/lib/libm.a
1573 LIBMAGIC?= ${DESTDIR}/usr/lib/libmagic.a
1574 LIBMENU?= ${DESTDIR}/usr/lib/libmenu.a
1575 LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a
1576 LIBOSSAUDIO?= ${DESTDIR}/usr/lib/libossaudio.a
1577 LIBPAM?= ${DESTDIR}/usr/lib/libpam.a
1578 LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a
1579 LIBPCI?= ${DESTDIR}/usr/lib/libpci.a
1580 LIBPMC?= ${DESTDIR}/usr/lib/libpmc.a
1581 LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a
1582 LIBPTHREAD?= ${DESTDIR}/usr/lib/libpthread.a
1583 LIBPTHREAD_DBG?=${DESTDIR}/usr/lib/libpthread_dbg.a
1584 LIBPUFFS?= ${DESTDIR}/usr/lib/libpuffs.a
1585 LIBQUOTA?= ${DESTDIR}/usr/lib/libquota.a
1586 LIBRADIUS?= ${DESTDIR}/usr/lib/libradius.a
1587 LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a
1588 LIBRMT?= ${DESTDIR}/usr/lib/librmt.a
1589 LIBROKEN?= ${DESTDIR}/usr/lib/libroken.a
1590 LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a
1591 LIBRT?= ${DESTDIR}/usr/lib/librt.a
1592 LIBRUMP?= ${DESTDIR}/usr/lib/librump.a
1593 LIBRUMPFS_CD9660FS?=${DESTDIR}/usr/lib/librumpfs_cd9660fs.a
1594 LIBRUMPFS_EFS?= ${DESTDIR}/usr/lib/librumpfs_efs.a
1595 LIBRUMPFS_EXT2FS?=${DESTDIR}/usr/lib/librumpfs_ext2fs.a
1596 LIBRUMPFS_FFS?= ${DESTDIR}/usr/lib/librumpfs_ffs.a
1597 LIBRUMPFS_HFS?= ${DESTDIR}/usr/lib/librumpfs_hfs.a
1598 LIBRUMPFS_LFS?= ${DESTDIR}/usr/lib/librumpfs_lfs.a
1599 LIBRUMPFS_MSDOSFS?=${DESTDIR}/usr/lib/librumpfs_msdosfs.a
1600 LIBRUMPFS_NFS?= ${DESTDIR}/usr/lib/librumpfs_nfs.a
1601 LIBRUMPFS_NTFS?=${DESTDIR}/usr/lib/librumpfs_ntfs.a
1602 LIBRUMPFS_SYSPUFFS?=${DESTDIR}/usr/lib/librumpfs_syspuffs.a
1603 LIBRUMPFS_TMPFS?=${DESTDIR}/usr/lib/librumpfs_tmpfs.a
1604 LIBRUMPFS_UDF?= ${DESTDIR}/usr/lib/librumpfs_udf.a
1605 LIBRUMPFS_UFS?= ${DESTDIR}/usr/lib/librumpfs_ufs.a
1606 LIBRUMPUSER?= ${DESTDIR}/usr/lib/librumpuser.a
1607 LIBSASLC?= ${DESTDIR}/usr/lib/libsaslc.a
1608 LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a
1609 LIBSL?= ${DESTDIR}/usr/lib/libsl.a
1610 LIBSQLITE3?= ${DESTDIR}/usr/lib/libsqlite3.a
1611 LIBSS?= ${DESTDIR}/usr/lib/libss.a
1612 LIBSSH?= ${DESTDIR}/usr/lib/libssh.a
1613 LIBSSL?= ${DESTDIR}/usr/lib/libssl.a
1614 LIBSSP?= ${DESTDIR}/usr/lib/libssp.a
1615 LIBSTDCXX?= ${DESTDIR}/usr/lib/libstdc++.a
1616 LIBSUPCXX?= ${DESTDIR}/usr/lib/libsupc++.a
1617 LIBTERMINFO?= ${DESTDIR}/usr/lib/libterminfo.a
1618 LIBTRE?= ${DESTDIR}/usr/lib/libtre.a
1619 LIBUSBHID?= ${DESTDIR}/usr/lib/libusbhid.a
1620 LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a
1621 LIBWIND?= ${DESTDIR}/usr/lib/libwind.a
1622 LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a
1623 LIBY?= ${DESTDIR}/usr/lib/liby.a
1624 LIBZ?= ${DESTDIR}/usr/lib/libz.a
1626 The following X-Windows libraries are predefined for DPADD:
1628 LIBFS?= ${DESTDIR}/usr/X11R7/lib/libFS.a
1629 LIBGL?= ${DESTDIR}/usr/X11R7/lib/libGL.a
1630 LIBGLU?= ${DESTDIR}/usr/X11R7/lib/libGLU.a
1631 LIBICE?= ${DESTDIR}/usr/X11R7/lib/libICE.a
1632 LIBSM?= ${DESTDIR}/usr/X11R7/lib/libSM.a
1633 LIBX11?= ${DESTDIR}/usr/X11R7/lib/libX11.a
1634 LIBX11_XCB?= ${DESTDIR}/usr/X11R7/lib/libX11-xcb.a
1635 LIBXTRAP?= ${DESTDIR}/usr/X11R7/lib/libXTrap.a
1636 LIBXAU?= ${DESTDIR}/usr/X11R7/lib/libXau.a
1637 LIBXAW?= ${DESTDIR}/usr/X11R7/lib/libXaw.a
1638 LIBXCB?= ${DESTDIR}/usr/X11R7/lib/libxcb.a
1639 LIBXDMCP?= ${DESTDIR}/usr/X11R7/lib/libXdmcp.a
1640 LIBXEXT?= ${DESTDIR}/usr/X11R7/lib/libXext.a
1641 LIBXFONT?= ${DESTDIR}/usr/X11R7/lib/libXfont.a
1642 LIBXFT?= ${DESTDIR}/usr/X11R7/lib/libXft.a
1643 LIBXI?= ${DESTDIR}/usr/X11R7/lib/libXi.a
1644 LIBXINERAMA?= ${DESTDIR}/usr/X11R7/lib/libXinerama.a
1645 LIBXMU?= ${DESTDIR}/usr/X11R7/lib/libXmu.a
1646 LIBXMUU?= ${DESTDIR}/usr/X11R7/lib/libXmuu.a
1647 LIBXPM?= ${DESTDIR}/usr/X11R7/lib/libXpm.a
1648 LIBXRANDR?= ${DESTDIR}/usr/X11R7/lib/libXrandr.a
1649 LIBXRENDER?= ${DESTDIR}/usr/X11R7/lib/libXrender.a
1650 LIBXSS?= ${DESTDIR}/usr/X11R7/lib/libXss.a
1651 LIBXT?= ${DESTDIR}/usr/X11R7/lib/libXt.a
1652 LIBXTST?= ${DESTDIR}/usr/X11R7/lib/libXtst.a
1653 LIBXV?= ${DESTDIR}/usr/X11R7/lib/libXv.a
1654 LIBXXF86DGA?= ${DESTDIR}/usr/X11R7/lib/libXxf86dga.a
1655 LIBXXF86MISC?= ${DESTDIR}/usr/X11R7/lib/libXxf86misc.a
1656 LIBXXF86VM?= ${DESTDIR}/usr/X11R7/lib/libXxf86vm.a
1657 LIBDPS?= ${DESTDIR}/usr/X11R7/lib/libdps.a
1658 LIBFNTSTUBS?= ${DESTDIR}/usr/X11R7/lib/libfntstubs.a
1659 LIBFONTCACHE?= ${DESTDIR}/usr/X11R7/lib/libfontcache.a
1660 LIBFONTCONFIG?= ${DESTDIR}/usr/X11R7/lib/libfontconfig.a
1661 LIBFONTENC?= ${DESTDIR}/usr/X11R7/lib/libfontenc.a
1662 LIBFREETYPE?= ${DESTDIR}/usr/X11R7/lib/libfreetype.a
1663 LIBLBXUTIL?= ${DESTDIR}/usr/X11R7/lib/liblbxutil.a
1664 LIBXKBFILE?= ${DESTDIR}/usr/X11R7/lib/libxkbfile.a
1666 SHAREDSTRINGS If defined, a new .c.o rule is used that results in shared
1667 strings, using xstr(1). Note that this will not work with
1670 STRIPFLAG The flag passed to the install program to cause the binary
1673 SUBDIR A list of subdirectories that should be built as well.
1674 Each of the targets will execute the same target in the
1677 SCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
1678 These are installed exactly like programs.
1680 SCRIPTSDIR The location to install the scripts. Each script can be
1681 installed to a separate path by setting SCRIPTSDIR_<script>.
1683 SCRIPTSNAME The name that the above program will be installed as, if
1684 different from ${SCRIPTS}. These can be further specialized
1685 by setting SCRIPTSNAME_<script>.
1687 FILES See description of <bsd.files.mk>.
1689 SHLINKDIR Target directory for shared linker. See description of
1690 <bsd.own.mk> for additional information about this variable.
1692 The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
1693 if it exists, as well as the include file <bsd.man.mk>.
1695 Some simple examples:
1697 To build foo from foo.c with a manual page foo.1, use:
1701 .include <bsd.prog.mk>
1703 To build foo from foo.c with a manual page foo.2, add the line:
1707 If foo does not have a manual page at all, add the line:
1711 If foo has multiple source files, add the line:
1713 SRCS= a.c b.c c.c d.c
1716 =-=-=-=-= bsd.rpc.mk =-=-=-=-=
1718 The include file <bsd.rpc.mk> contains a makefile fragment used to
1719 construct source files built by rpcgen.
1721 The following macros may be defined in makefiles which include
1722 <bsd.rpc.mk> in order to control which files get built and how they
1725 RPC_INCS: construct .h file from .x file
1726 RPC_XDRFILES: construct _xdr.c from .x file
1727 (for marshalling/unmarshalling data types)
1728 RPC_SVCFILES: construct _svc.c from .x file
1730 RPC_SVCFLAGS: Additional flags passed to builds of RPC_SVCFILES.
1732 RPC_XDIR: Directory containing .x/.h files
1735 =-=-=-=-= bsd.shlib.mk =-=-=-=-=
1737 The include file <bsd.shlib.mk> computes parameters for shared library
1738 installation and use. It defines no targets. <bsd.own.mk> MUST be
1739 included before <bsd.shlib.mk>.
1741 <bsd.own.mk> sets the following variables, if they are not already defined
1742 (defaults are in brackets):
1744 SHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR}
1745 instead of ${LIBDIR} as the base path for shared library
1746 installation. [/lib]
1748 SHLIBDIR The path to USE_SHLIBDIR shared libraries to use when building
1749 a program. [/lib for programs in /bin and /sbin, /usr/lib
1752 _LIBSODIR Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no",
1753 otherwise set to ${LIBDIR}
1755 SHLINKINSTALLDIR Base path for shared linker. [/libexec]
1757 SHLINKDIR Path to use for shared linker when building a program.
1758 [/libexec for programs in /bin and /sbin, /usr/libexec for
1762 =-=-=-=-= bsd.subdir.mk =-=-=-=-=
1764 The include file <bsd.subdir.mk> contains the default targets for building
1765 subdirectories. It has the same eight targets as <bsd.prog.mk>: all,
1766 clean, cleandir, depend, includes, install, lint, and tags. It uses the
1767 following variables:
1769 NOSUBDIR If this variable is defined, then the SUBDIR variable
1770 will be ignored and subdirectories will not be processed.
1772 SUBDIR For all of the directories listed in ${SUBDIR}, the
1773 specified directory will be visited and the target made.
1775 As a special case, the use of a token .WAIT as an
1776 entry in SUBDIR acts as a synchronization barrier
1777 when multiple make jobs are run; subdirs before the
1778 .WAIT must complete before any subdirs after .WAIT are
1779 started. See make(1) for some caveats on use of .WAIT
1780 and other special sources.
1783 =-=-=-=-= bsd.x11.mk =-=-=-=-=
1785 The include file <bsd.x11.mk> contains parameters and targets for
1786 cross-building X11 from ${X11SRCDIR.<package>}. It should be included
1787 after the general Makefile contents but before the include files such as
1788 <bsd.prog.mk> and <bsd.lib.mk>.
1790 It provides the following targets:
1791 .man.1 .man.3 .man.4 .man.5 .man.7:
1792 If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
1793 these rules convert from X11's manual page source
1794 into an mdoc.old source file.
1796 It sets the following variables:
1798 BINDIR Set to ${X11BINDIR}.
1799 To override, define after including <bsd.x11.mk>
1801 LIBDIR Set to ${X11USRLIBDIR}.
1802 To override, define after including <bsd.x11.mk>
1804 MANDIR Set to ${X11MANDIR}.
1805 To override, define after including <bsd.x11.mk>
1807 CPPFLAGS Appended with definitions to include from
1808 ${DESTDIR}${X11INCDIR}
1810 LDFLAGS Appended with definitions to link from
1811 ${DESTDIR}${X11USRLIBDIR}
1813 X11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS.
1815 X11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES.
1817 X11FLAGS.LOADABLE Equivalent to X11's LOADABLE.
1819 X11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES.
1821 X11FLAGS.SERVER Equivalent to X11's ServerDefines.
1823 X11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries.
1825 X11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES.
1827 X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
1829 X11FLAGS.DIX Equivalent to X11's DIX_DEFINES.
1831 X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#'
1833 It uses the following variables:
1835 APPDEFS List of app-default files to install.
1837 CPPSCRIPTS List of files/scripts to run through cpp(1)
1838 and then ${X11TOOL_UNXCOMM}. The source files
1839 have a `.cpp' suffix, the generated files do not.
1841 CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS.
1843 CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>.
1846 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
1848 The following files are described here for completion, but they are not
1849 supposed to be included directly from other Makefiles; they are used
1850 internally by other system files.
1852 =-=-=-=-= bsd.sys.mk =-=-=-=-=
1854 The include file <bsd.sys.mk> is used by other system mk files and
1855 it is not intended to be included standalone. It contains rules and
1856 system build variables. It requires bsd.own.mk to be included first.
1857 It contains overrides that are used when building the NetBSD source tree.
1859 The following variables control how various files are compiled/built.
1860 (Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"):
1862 AR Create, modify, and extract from archives. [ar]
1864 ARFLAGS Options to ${AR}. [rl]
1868 AFLAGS Options to ${CC} when compiling or linking .s or .S
1869 assembly source files. []
1871 BUILDSEED GCC uses random numbers when compiling C++ code.
1872 If this option is present, seed the random number
1873 generator based on the value, source file names and
1874 the output file name to make builds more deterministic.
1875 Additional information is available in the GCC
1876 documentation of -frandom-seed.
1880 CFLAGS Options to ${CC}. [Usually -O or -O2]
1882 CPP C Pre-Processor. [cpp]
1884 CPPFLAGS Options to ${CPP}. []
1886 CPUFLAGS Optimization flags for ${CC}. []
1888 CXX C++ compiler. [c++]
1890 CXXFLAGS Options to ${CXX}. [${CFLAGS}]
1892 ELF2ECOFF Convert ELF-format executable to ECOFF. [elf2ecoff]
1894 FC Fortran compiler. [f77]
1896 FFLAGS Options to {$FC}. [-O]
1898 HOST_SH Shell. This must be an absolute path, because it may be
1899 substituted into "#!" lines in scripts. [/bin/sh]
1901 INSTALL install(1) command. [install]
1903 LEX Lexical analyzer. [lex]
1905 LFLAGS Options to ${LEX}. []
1907 LPREFIX Symbol prefix for ${LEX} (see -P option in lex(1)) [yy]
1911 LDFLAGS Options to ${CC} during the link process. []
1913 LINT C program verifier. [lint]
1915 LINTFLAGS Options to ${LINT}. [-chapbxzgFS]
1917 LORDER List dependencies for object files. [lorder]
1919 MAKE make(1). [make]
1921 MKDEP Construct Makefile dependency list. [mkdep]
1923 MKDEPCXX Construct Makefile dependency list for C++ files. [mkdep]
1925 NM List symbols from object files. [nm]
1927 PC Pascal compiler. [pc] (Not present)
1929 PFLAGS Options to ${PC}. []
1931 OBJC Objective C compiler. [${CC}]
1933 OBJCFLAGS Options to ${OBJC}. [${CFLAGS}]
1935 OBJCOPY Copy and translate object files. [objcopy]
1937 OBJCOPYLIBFLAGS Flags to pass to objcopy when library objects are
1938 being built. [${.TARGET} =~ "*.po" ? -X : -x]
1940 OBJDUMP Display information from object files. [objdump]
1942 RANLIB Generate index to archive. [ranlib]
1944 READELF Display information from ELF object files. [readelf]
1946 SIZE List section sizes and total size. [size]
1948 STRINGS Display printable character sequences in files. [strings]
1950 STRIP Discard symbols from object files. [strip]
1952 TSORT Topological sort of a directed graph. [tsort -q]
1954 YACC LALR(1) parser generator. [yacc]
1956 YFLAGS Options to ${YACC}. []
1958 YHEADER If defined, add "-d" to YFLAGS, and add dependencies
1959 from <file>.y to <file>.h and <file>.c, and add
1960 <foo>.h to CLEANFILES.
1962 YPREFIX If defined, add "-p ${YPREFIX}" to YFLAGS.
1965 Other variables of note (incomplete list):
1967 NOGCCERROR If defined, prevents passing certain ${CFLAGS} to GCC
1968 that cause warnings to be fatal, such as:
1969 -Werror -Wa,--fatal-warnings
1970 (The latter being for as(1).)
1972 NOCLANGERROR If defined and clang is used as C compiler, -Werror is not
1975 WARNS Crank up compiler warning options; the distinct levels are:
1983 =-=-=-=-= bsd.host.mk =-=-=-=-=
1985 This file is automatically included from bsd.own.mk. It contains settings
1986 for all the HOST_* variables that are used in host programs and libraries.
1988 HOST_AR The host archive processing command
1990 HOST_CC The host c compiler
1992 HOST_CFLAGS The host c compiler flags
1994 HOST_COMPILE.c The host c compiler line with flags
1996 HOST_COMPILE.cc The host c++ compiler line with flags
1998 HOST_CPP The host c pre-processor
2000 HOST_CPPFLAGS The cost c pre-processor flags
2002 HOST_CXX The host c++ compiler
2004 HOST_CXXFLAGS The host c++ compiler flags
2006 HOST_INSTALL_DIR The host command to install a directory
2008 HOST_INSTALL_FILE The host command to install a file
2010 HOST_INSTALL_SYMLINK The host command to install a symlink
2012 HOST_LD The host linker command
2014 HOST_LDFLAGS The host linker flags
2016 HOST_LINK.c The host c linker line with flags
2018 HOST_LINK.cc The host c++ linker line with flags
2020 HOST_LN The host command to link two files
2022 HOST_MKDEP The host command to create dependencies for c programs
2024 HOST_MKDEPCXX The host command to create dependencies for c++ programs
2026 HOST_OSTYPE The host OSNAME-RELEASE-ARCH tupple
2028 HOST_RANLIB The host command to create random access archives
2030 HOST_SH The host Bourne shell interpreter name (absolute path)
2032 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=