1 # $NetBSD: bsd.README,v 1.304 2012/10/02 04:53:11 jkoshy 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 libatf-c, libatf-c++ libraries associated
117 with the Automated Testing Framework (ATF).
120 MKBFD Obsolete, use MKBINUTILS
122 MKBINUTILS If "no", don't build binutils (gas, ld, etc and libbfd,
126 MKBSDTAR If "yes", use the libarchive based cpio and tar instead of
130 MKCATPAGES If "no", don't build or install the catman pages.
133 MKCOMPAT If "no", don't build or install the src/compat.
134 Default: yes on amd64/mips64/sparc64, no elsewhere.
136 MKCOMPLEX If "no", don't build libm support for <complex.h>
139 MKCRYPTO If "no", no cryptography support will be built into the system,
140 and also acts as "MKKERBEROS=no".
143 MKCRYPTO_RC5 If not "no", RC5 support will be built into libcrypto_rc5
146 MKCVS If "no", don't build or install cvs(1).
149 MKDEBUG If "no", don't build and install separate debugging symbols
150 into /usr/libdata/debug.
153 MKDEBUGLIB Build *_g.a debugging libraries, which are compiled
157 MKDOC If "no", don't build or install the documentation.
160 MKDTRACE If "no", do not build and install the kernel modules,
161 utilities and libraries used to implement the dtrace(1)
165 MKDYNAMICROOT If "no", build programs in /bin and /sbin statically,
166 don't install certain libraries in /lib, and don't
167 install the shared linker into /libexec.
170 MKEXTSRC If not "no", 'make build' also descends into either src/extsrc
171 to cross-build programs and libraries externally added by
172 users, and automatically enables creation of those sets.
175 MKGCC If "no", don't build gcc(1) or any of the GCC-related
176 libraries (libgcc, libobjc, libstdc++).
179 MKGCCCMDS If "no", don't build gcc(1), but do build the GCC-related
180 libraries (libgcc, libobjc, libstdc++).
183 MKGDB If "no", don't build gdb(1).
186 MKHESIOD If "no", disables building of Hesiod infrastructure
187 (libraries and support programs).
190 MKHOSTOBJ If not "no", for programs intended to be run on the compile
191 host, the name, release, and architecture of the host
192 operating system will be suffixed to the name of the object
193 directory created by "make obj".
196 MKHTML If "no", don't build or install the HTML man pages.
199 MKIEEEFP If "no", don't add code for IEEE754/IEC60559 conformance.
200 Has no effect on most platforms.
203 MKSTRIPIDENT Strip the RCS IDs from program binaries and shared libraries.
206 MKINET6 If "no", disables building of INET6 (IPv6) infrastructure
207 (libraries and support programs). This option must not be
208 set to "no" if MKX11 is not "no".
211 MKINFO If "no", don't build or install Info documentation from
212 Texinfo source files.
215 MKIPFILTER If "no", don't build or install the IP Filter programs and LKM.
218 MKISCSI If "no", don't build or install iSCSI library or applications
219 (depends on libpthread.)
222 MKKERBEROS If "no", disables building of Kerberos v5
223 infrastructure (libraries and support programs).
226 MKKMOD If "no", disables building of kernel modules.
229 MKLDAP If "no", disables building of LDAP infrastructure
230 (libraries and support programs).
233 MKLINKLIB If "no", act as "MKLINT=no MKPICINSTALL=no MKPROFILE=no".
235 - don't install the .a libraries
236 - don't install _pic.a libraries on PIC systems
237 - don't build .a libraries on PIC systems
238 - don't install the .so symlink on ELF systems
239 I.e, only install the shared library (and the .so.major
243 MKLINT If "no", don't build or install the lint libraries.
246 MKLVM If "no", don't build or install the logical volume manager
247 and device mapper tools and libraries
250 MKMAN If "no", don't build or install the man or catman pages,
251 and also acts as "MKCATPAGES=no MKHTML=no".
254 MKMANDOC If "yes", mandoc is built as tool and used to compile
255 catman or html pages. A directory can be exempted by
256 defining NOMANDOC. Individual man pages are exempted
257 if NOMANDOC.${target} is set to "yes".
260 MKMANZ If not "no", compress manual pages at installation time.
263 MKMDNS If "no", disables building of mDNS infrastructure
264 (libraries and support programs).
267 MKNLS If "no", don't build or install the NLS files and locale
271 MKNPF If "no", don't build or install the NPF and its modules.
274 MKOBJ If "no", don't enable the rule which creates objdirs,
275 and also acts as "MKOBJDIRS=no".
278 MKOBJDIRS If "no", don't create objdirs during a "make build".
281 MKPAM If "no", disables building of PAM authentication
282 infrastructure (libraries and support programs).
285 MKPCC If "no", don't build pcc(1) or any of the PCC-related
286 libraries (libpcc, libpccsoftfloat).
289 MKPF If "no", don't build or install the pf programs and LKM.
292 MKPIC If "no", don't build or install shared libraries, and
293 also acts as "MKPICLIB=no"
294 Default: yes (for MACHINE_ARCHs that support it)
296 MKPICINSTALL If "no", don't install the *_pic.a libraries.
299 MKPICLIB If "no", don't build *_pic.a libraries, and build the
300 shared object libraries from the .a libraries.
301 A symlink is installed in ${DESTDIR}/usr/lib for the
302 _pic.a library pointing to the .a library.
305 MKPIE If "no", create regular executables. Otherwise create
306 PIE (Position Independent Executables).
309 MKPIGZGZIP If "no", only install pigz as pigz, not gzip.
312 MKPOSTFIX If "no", don't build or install postfix(1).
315 MKPROFILE If "no", don't build or install the profiling (*_p.a) libraries.
318 MKREPRO If "yes", create reproducable builds. This enables
319 different switches to make two builds from the same source tree
320 result in the same build results.
323 MKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no
325 I.e, don't build catman pages, documentation, Info
326 documentation, man pages, NLS files, ...
329 MKSKEY If "no", disables building of S/key authentication
330 infrastructure (libraries and support programs).
333 MKSOFTFLOAT If not "no", build with options to enable the compiler to
334 generate output containing library calls for floating
335 point and possibly soft-float library support.
338 MKSTATICLIB If "no", don't build or install the normal static (*.a)
342 MKUNPRIVED If not "no", don't set the owner/group/mode when installing
343 files or directories, and keep a metadata log of what
344 the owner/group/mode should be. This allows a
345 non-root "make install".
348 MKUPDATE If not "no", 'make install' only installs targets that are
349 more recently modified in the source directories that their
350 installed counterparts.
353 MKX11 If not "no", depending on the value of ${X11FLAVOUR},
354 'make build' also descends into either src/x11 (XFree86) or
355 src/external/mit/xorg (modular Xorg) to cross-build X11 and
356 automatically enables creation of X sets.
359 MKX11FONTS If not "no", if ${X11FLAVOUR} is "Xorg", do not build or
360 install the X fonts. The xfont set is still created but
364 MKYP If "no", disables building of YP (NIS)
365 infrastructure (libraries and support programs).
368 MKZFS If "no", do not build and install utilities and libraries
369 used to manage ZFS file system. Do not build zfs and solaris
370 compatibility kernel modules.
371 Default: yes on i386/amd64, no elsewhere.
373 MKRUMP If "no", do not build and install rump related headers,
374 libraries, and programs.
377 USE_HESIOD If "no", disables building Hesiod support into
378 various system utilities/libraries that support it.
379 If ${MKHESIOD} is "no", USE_HESIOD will also be
382 USE_INET6 If "no", disables building INET6 (IPv6) support into
383 various system utilities/libraries that support it.
384 If ${MKINET6} is "no", USE_INET6 will also be
387 USE_JEMALLOC If "no", disables building the "jemalloc" allocator
388 designed for improved performance with threaded
389 applications. The "phkmalloc" allocator as used up
390 before NetBSD-5.0 will be substituted.
392 USE_KERBEROS If "no", disables building Kerberos v5
393 support into various system utilities/libraries that
394 support it. If ${MKKERBEROS} is "no", USE_KERBEROS
395 will also be forced to "no".
397 USE_LDAP If "no", disables building LDAP support into various
398 system utilities/libraries that support it.
399 If ${MKLDAP} is "no", USE_LDAP will also be forced to "no".
401 USE_PAM If "no", disables building PAM authentication support
402 into various system utilities/libraries that support it.
403 If ${MKPAM} is "no", USE_PAM will also be forced to "no".
405 USE_SKEY If "no", disables building S/key authentication
406 support into various system utilities/libraries that
407 support it. If ${MKSKEY} is "no", USE_SKEY will
408 also be forced to "no".
411 USE_SSP If "no", disables GCC stack protection code, which
412 detects stack overflows and aborts the program. The
413 stack protection code imposes a performance penalty
415 Default: "no", unless "USE_FORT" is set to "yes"
417 USE_FORT If "yes" turns on substitute wrappers for commonly used
418 functions that do not do bounds checking regularly, but
419 they could in some cases by using the gcc
420 __builtin_object_size() function to determine the buffer
421 size where it is known and detect buffer overflows.
422 These substitute functions are in /usr/include/ssp.
423 Default: depends on the part of the source tree
425 USE_YP If "no", disables building YP (NIS) support into
426 various system utilities/libraries that support it.
427 If ${MKYP} is "no", USE_YP will also be forced to "no".
429 USE_PIGZGZIP If "no", use the host "gzip" program to compress things.
430 Otherwise, build tools/pigz and use nbpigz to compress
434 X11FLAVOUR Set to "Xorg" or "XFree86", depending on whether to build
435 XFree86 or modular Xorg. Only matters if MKX11!=no.
436 Default: "Xorg" on amd64, i386, macppc, shark and sparc64,
437 "XFree86" on everything else.
448 CXXFLAGS.<prog> These provide a way to specify additions to the associated
449 variables in a way that applies only to a particular library
450 or program. <lib> corresponds to the LIB variable set in
451 the library's makefile. <prog> corresponds to either PROG
452 or PROG_CXX (if set). For example, if COPTS.libcrypto is
453 set to "-g", "-g" will be added to COPTS only when compiling
456 The active compiler is selected using the following variables:
458 List of available compiler suites. Processed in order
459 for selecting the active compiler for each frontend.
460 HAVE_PCC If defined, PCC is present and enabled.
461 HAVE_LLVM If defined, LLVM/Clang is present and enabled.
462 UNSUPPORTED_COMPILER.xxx
463 If defined, the support for compiler "xxx" is disabled.
465 For the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist:
466 ACTIVE_CC Active compile suite for the CC frontend.
467 SUPPORTED_CC Compile suite with support for the CC frontend.
468 TOOL_CC.xxx Path to the CC frontend for compiler "xxx"
470 =-=-=-=-= sys.mk =-=-=-=-=
472 The include file <sys.mk> has the default rules for all makes, in the BSD
473 environment or otherwise. You probably don't want to touch this file.
475 =-=-=-=-= bsd.own.mk =-=-=-=-=
477 The include file <bsd.own.mk> contains source tree configuration parameters,
478 such as the owners, groups, etc. for both manual pages and binaries, and
479 a few global "feature configuration" parameters.
483 To get system-specific configuration parameters, <bsd.own.mk> will try to
484 include the file specified by the "MAKECONF" variable. If MAKECONF is not
485 set, or no such file exists, the system make configuration file, /etc/mk.conf
486 is included. These files may define any of the variables described below.
488 <bsd.own.mk> sets the following variables, if they are not already defined
489 (defaults are in brackets):
491 NETBSDSRCDIR Top of the NetBSD source tree.
492 If _SRC_TOP_ != "", that will be used as the default,
493 otherwise BSDSRCDIR will be used as the default.
494 Various makefiles within the NetBSD source tree will
495 use this to reference the top level of the source tree.
497 _SRC_TOP_ Top of the system source tree, as determined by <bsd.own.mk>
498 based on the presence of tools/ and build.sh. This variable
499 is "internal" to <bsd.own.mk>, although its value is only
500 determined once and then propagated to all sub-makes.
502 BSDSRCDIR The real path to the system sources, so that 'make obj'
503 will work correctly. [/usr/src]
505 BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj'
506 will work correctly. [/usr/obj]
508 BINGRP Binary group. [wheel]
510 BINOWN Binary owner. [root]
512 BINMODE Binary mode. [555]
514 NONBINMODE Mode for non-executable files. [444]
516 MANDIR Base path for manual installation. [/usr/share/man/cat]
518 MANGRP Manual group. [wheel]
520 MANOWN Manual owner. [root]
522 MANMODE Manual mode. [${NONBINMODE}]
524 MANINSTALL Manual installation type. Space separated list:
525 catinstall, htmlinstall, maninstall
526 Default value derived from MKCATPAGES and MKHTML.
528 LDSTATIC Control program linking; if set blank, link everything
529 dynamically. If set to "-static", link everything statically.
530 If not set, programs link according to their makefile.
532 LIBDIR Base path for library installation. [/usr/lib]
534 LINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint]
536 LIBGRP Library group. [${BINGRP}]
538 LIBOWN Library owner. [${BINOWN}]
540 LIBMODE Library mode. [${NONBINMODE}]
542 DOCDIR Base path for system documentation (e.g. PSD, USD, etc.)
543 installation. [/usr/share/doc]
545 HTMLDOCDIR Base path for html system documentation installation.
546 [/usr/share/doc/html]
548 DOCGRP Documentation group. [wheel]
550 DOCOWN Documentation owner. [root]
552 DOCMODE Documentation mode. [${NONBINMODE}]
554 NLSDIR Base path for Native Language Support files installation.
557 NLSGRP Native Language Support files group. [wheel]
559 NLSOWN Native Language Support files owner. [root]
561 NLSMODE Native Language Support files mode. [${NONBINMODE}]
563 X11SRCDIR The path to the xsrc tree. [${NETBSDSRCDIR}/../xsrc,
564 if that exists; otherwise /usr/xsrc]
566 X11SRCDIR.xc The path to the (old) X11 xc src tree. [${X11SRCDIR}/xfree/xc]
568 X11SRCDIR.local The path to the local X11 src tree. [${X11SRCDIR}/local]
570 X11SRCDIR.lib<package>
572 The path to the xorg src tree for the specificed package>.
573 [${X11SRCDIR}/external/mit/xorg/<package>/dist]
575 X11ROOTDIR Root directory of the X11 installation. [/usr/X11R6 or
578 X11BINDIR X11 bin directory. [${X11ROOTDIR}/bin]
580 X11FONTDIR X11 font directory. [${X11ROOTDIR}/lib/X11/fonts]
582 X11INCDIR X11 include directory. [${X11ROOTDIR}/include]
584 X11LIBDIR X11 lib/x11 (config) directory. [${X11ROOTDIR}/lib/X11]
586 X11MANDIR X11 manual directory. [${X11ROOTDIR}/man]
588 X11USRLIBDIR X11 library directory. [${X11ROOTDIR}/lib]
590 STRIPFLAG The flag passed to the install program to cause the binary
591 to be stripped. This is to be used when building your
592 own install script so that the entire system can be made
593 stripped/not-stripped using a single knob. []
595 COPY The flag passed to the install program to cause the binary
596 to be copied rather than moved. This is to be used when
597 building our own install script so that the entire system
598 can either be installed with copies, or with moves using
601 MAKEDIRTARGET dir target [params]
602 Runs "cd $${dir} && ${MAKE} [params] $${target}",
603 displaying a "pretty" message whilst doing so.
606 Subdirectory used below RELEASEDIR when building
607 a release. [${MACHINE}]
609 RELEASEMACHINE Subdirectory or path component used for the following
611 distrib/${RELEASEMACHINE}
612 distrib/notes/${RELEASEMACHINE}
613 etc/etc.${RELEASEMACHINE}
614 Used when building a release. [${MACHINE}]
616 Additionally, the following variables may be set by <bsd.own.mk> or in a
617 make configuration file to modify the behavior of the system build
618 process (default values are in brackets along with comments, if set by
621 USETOOLS Indicates whether the tools specified by ${TOOLDIR} should
622 be used as part of a build in progress.
625 yes Use the tools from TOOLDIR.
626 Must be set to this if cross-compiling.
628 no Do not use the tools from TOOLDIR, but refuse to
629 build native compilation tool components that are
630 version-specific for that tool.
632 never Do not use the tools from TOOLDIR, even when
633 building native tool components. This is similar to
634 the traditional NetBSD build method, but does not
635 verify that the compilation tools in use are
636 up-to-date enough in order to build the tree
637 successfully. This may cause build or runtime
638 problems when building the whole NetBSD source tree.
640 Default: "yes" if building all or part of a whole NetBSD
641 source tree (detected automatically); "no" otherwise
642 (to preserve traditional semantics of the <bsd.*.mk>
643 make(1) include files).
645 OBJECT_FMT Object file format. [set to "ELF" on architectures that
646 use ELF -- currently all architectures].
649 If not "no", this indicates that the platform being built
650 does not have a working in-tree toolchain. If the
651 ${MACHINE_ARCH} in question falls into this category,
652 TOOLCHAIN_MISSING is conditionally assigned the value "yes".
653 Otherwise, the variable is unconditionally assigned the
655 If not "no", ${MKBINUTILS}, ${MKGCC}, and ${MKGDB} are
656 unconditionally assigned the value "no".
659 This variable is not directly set by <bsd.own.mk>, but
660 including <bsd.own.mk> is the canonical way to gain
661 access to this variable. The variable should be defined
662 either in the user's environment or in the user's mk.conf
663 file. If defined, this variable indicates the root of
664 an external toolchain which will be used to build the
665 tree. For example, if a platform is a ${TOOLCHAIN_MISSING}
666 platform, EXTERNAL_TOOLCHAIN can be used to re-enable the
667 cross-compile framework.
669 If EXTERNAL_TOOLCHAIN is defined, ${MKGCC} is unconditionally
670 assigned the value "no", since the external version of the
671 compiler may not be able to build the library components of
672 the in-tree compiler.
674 NOTE: This variable is not yet used in as many places as
675 it should be. Expect the exact semantics of this variable
676 to change in the short term as parts of the cross-compile
677 framework continue to be cleaned up.
679 The following variables are defined to commands to perform the
680 appropriate operation, with the default in [brackets]. Note that
681 the defaults change if USETOOLS == "yes":
683 TOOL_AMIGAAOUT2BB aout to Amiga bootblock converter. [amiga-aout2bb]
685 TOOL_AMIGAELF2BB ELF to Amiga bootblock converter. [amiga-elf2bb]
687 TOOL_AMIGATXLT Amige assembly language format translator. [amiga-txlt]
689 TOOL_ASN1_COMPILE ASN1 compiler. [asn1_compile]
691 TOOL_AWK Pattern-directed scanning/processing language. [awk]
693 TOOL_CAP_MKDB Create capability database. [cap_mkdb]
695 TOOL_CAT Concatenate and print files. [cat]
697 TOOL_CKSUM Display file checksums. [cksum]
699 TOOL_COMPILE_ET Error table compiler. [compile_et]
701 TOOL_CONFIG Build kernel compilation directories. [config]
703 TOOL_CRUNCHGEN Generate crunched binary build environment. [crunchgen]
705 TOOL_CTAGS Create a tags file. [ctags]
707 TOOL_DB Manipulate db(3) databases. [db]
709 TOOL_DISKLABEL Read and write disk pack label. [disklabel]
711 TOOL_EQN Format equations for groff. [eqn]
713 TOOL_FDISK MS-DOS partition maintenance program. [fdisk]
715 TOOL_FGEN IEEE 1275 Open Firmware FCode Tokenizer. [fgen]
717 TOOL_GENASSYM Generate constants for assembly files. [genassym]
719 TOOL_GENCAT Generate NLS message catalogs. [gencat]
721 TOOL_GMAKE GNU make utility. [gmake]
723 TOOL_GREP Print lines matching a pattern. [grep]
725 TOOL_GROFF Front end for groff document formatting system. [groff]
727 TOOL_HEXDUMP Ascii, decimal, hexadecimal, octal dump. [hexdump]
729 TOOL_HP300MKBOOT Make bootable image for hp300. [hp300-mkboot]
731 TOOL_HP700MKBOOT Make bootable image for hp700. [hp700-mkboot]
733 TOOL_INDXBIB Make bibliographic database's inverted index. [indxbib]
735 TOOL_INSTALLBOOT Install disk bootstrap software. [installboot]
737 TOOL_INSTALL_INFO Update info/dir entries. [install-info]
739 TOOL_JOIN Relational database operator. [join]
741 TOOL_M4 M4 macro language processor. [m4]
743 TOOL_MACPPCFIXCOFF Fix up xcoff headers for macppc. [macppc-fixcoff]
745 TOOL_MAKEFS Create file system image from directory tree. [makefs]
747 TOOL_MAKEINFO Translate Texinfo documents. [makeinfo]
749 TOOL_MAKEWHATIS Create a whatis.db database. [makewhatis]
751 TOOL_MDSETIMAGE Set kernel RAM disk image. [mdsetimage]
753 TOOL_MENUC Menu compiler. [menuc]
755 TOOL_MIPSELF2ECOFF Convert ELF-format executable to ECOFF for mips.
758 TOOL_MKCSMAPPER Make charset mapping table. [mkcsmapper]
760 TOOL_MKESDB Make encoding scheme database. [mkesdb]
762 TOOL_MKLOCALE Make LC_CTYPE locale files. [mklocale]
764 TOOL_MKMAGIC Create database for file(1). [file]
766 TOOL_MKTEMP Make (unique) temporary file name. [mktemp]
768 TOOL_MSGC Simple message list compiler. [msgc]
770 TOOL_MTREE Map a directory hierarchy. [mtree]
772 TOOL_PAX Manipulate file archives and copy directories. [pax]
774 TOOL_PIC Compile pictures for groff. [pic]
776 TOOL_PIGZ Parallel compressor. [pigz]
778 TOOL_POWERPCMKBOOTIMAGE Make bootable image for powerpc. [powerpc-mkbootimage]
780 TOOL_PWD_MKDB Generate the password databases. [pwd_mkdb]
782 TOOL_REFER Preprocess bibliographic references for groff. [refer]
784 TOOL_ROFF_ASCII Generate ASCII groff output. [nroff]
786 TOOL_ROFF_DVI Generate DVI groff output. [${TOOL_GROFF} -Tdvi]
788 TOOL_ROFF_HTML Generate HTML groff output.
789 [${TOOL_GROFF} -Tlatin1 -mdoc2html]
791 TOOL_ROFF_PS Generate PS groff output. [${TOOL_GROFF} -Tps]
793 TOOL_ROFF_RAW Generate "raw" groff output. [${TOOL_GROFF} -Z]
795 TOOL_RPCGEN Remote Procedure Call (RPC) protocol compiler. [rpcgen]
797 TOOL_SED Stream editor. [sed]
799 TOOL_SOELIM Eliminate .so's from groff input. [soelim]
801 TOOL_SPARKCRC Generate a crc suitable for use in a sparkive file.
804 TOOL_STAT Display file status. [stat]
806 TOOL_STRFILE Create a random access file for storing strings.
809 TOOL_SUNLABEL Read or modify a SunOS disk label. [sunlabel]
811 TOOL_TBL Format tables for groff. [tbl]
813 TOOL_UUDECODE Uudecode a binary file. [uudecode]
815 TOOL_VGRIND Grind nice listings of programs. [vgrind -f]
817 TOOL_ZIC Time zone compiler. [zic]
819 <bsd.own.mk> is generally useful when building your own Makefiles so that
820 they use the same default owners etc. as the rest of the tree.
823 =-=-=-=-= bsd.clean.mk =-=-=-=-=
825 The include file <bsd.clean.mk> defines the clean and cleandir
826 targets. It uses the following variables:
828 CLEANFILES Files to remove for both the clean and cleandir targets.
830 CLEANDIRFILES Files to remove for the cleandir target, but not for
833 MKCLEANSRC Controls whether or not the clean and cleandir targets
834 will delete files from both the object directory,
835 ${.OBJDIR}, and the source directory, ${.CURDIR}.
837 If MKCLEANSRC is set to "no", then the file names in
838 CLEANFILES or CLEANDIRFILES are interpreted relative
839 to the object directory, ${.OBJDIR}. This is the
840 traditional behaviour.
842 If MKCLEANSRC is set to "yes", then the file deletion
843 is performed relative to both the object directory,
844 ${.OBJDIR}, and the source directory, ${.CURDIR}. (This
845 has no effect if ${.OBJDIR} is the same as ${.CURDIR}.)
846 Deleting files from ${.CURDIR} is intended to remove
847 stray output files that had been left in the source
848 directory by an earlier build that did not use object
851 The default is MKCLEANSRC=yes. If you always build with
852 separate object directories, and you are sure that there
853 are no stray files in the source directories, then you
854 may set MKCLEANSRC=no to save some time.
856 MKCLEANVERIFY Controls whether or not the clean and cleandir targets
857 will verify that files have been deleted.
859 If MKCLEANVERIFY is set to "no", then the files will
860 be deleted using a "rm -f" command, and its success or
861 failure will be ignored.
863 If MKCLEANVERIFY is set to "yes", then the success of
864 the "rm -f" command will be verified using an "ls"
867 The default is MKCLEANVERIFY=yes. If you are sure that
868 there will be no problems caused by file permissions,
869 read-only file systems, or the like, then you may set
870 MKCLEANVERIFY=no to save some time.
872 To use the clean and cleandir targets defined in <bsd.clean.mk>, other
873 Makefiles or bsd.*.mk files should append file names to the CLEANFILES
874 or CLEANDIRFILES variables. For example:
877 CLEANDIRFILES+= .depend
879 .include <bsd.clean.mk>
882 =-=-=-=-= bsd.dep.mk =-=-=-=-=
884 The include file <bsd.dep.mk> contains the default targets for building
885 .depend files. It creates .d files from entries in SRCS and DPSRCS
886 that are C, C++, or Objective C source files, and builds .depend from the
887 .d files. All other files in SRCS and all of DPSRCS will be used as
888 dependencies for the .d files. In order for this to function correctly,
889 it should be .included after all other .mk files and directives that may
890 modify SRCS or DPSRCS. It uses the following variables:
892 SRCS List of source files to build the program.
894 DPSRCS List of source files which are needed for generating
895 dependencies, but are not needed in ${SRCS}.
898 =-=-=-=-= bsd.files.mk =-=-=-=-=
900 The include file <bsd.files.mk> handles the FILES variables and is included
901 from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables:
903 FILES The list of files to install.
905 CONFIGFILES Similar semantics to FILES, except that the files
906 are installed by the `configinstall' target,
907 not the `install' target.
908 The FILES* variables documented below also apply.
910 FILESOWN File owner. [${BINOWN}]
912 FILESGRP File group. [${BINGRP}]
914 FILESMODE File mode. [${NONBINMODE}]
916 FILESDIR The location to install the files.
918 FILESNAME Optional name to install each file as.
920 FILESOWN_<fn> File owner of the specific file <fn>.
922 FILESGRP_<fn> File group of the specific file <fn>.
924 FILESMODE_<fn> File mode of the specific file <fn>.
926 FILESDIR_<fn> The location to install the specific file <fn>.
928 FILESNAME_<fn> Optional name to install <fn> as.
930 FILESBUILD If this variable is defined, then its value will be
931 used as the default for all FILESBUILD_<fn> variables.
932 Otherwise, the default will be "no".
934 FILESBUILD_<fn> A value different from "no" will add the file to the list of
935 targets to be built by `realall'. Users of that variable
936 should provide a target to build the file.
939 BUILDSYMLINKS List of two word items:
941 For each lnsrc item, create a symlink named lntgt.
942 The lntgt symlinks are removed by the cleandir target.
944 UUDECODE_FILES List of files which are stored as <file>.uue in the source
945 tree. Each one will be decoded with ${TOOL_UUDECODE}.
946 The source files have a `.uue' suffix, the generated files do
949 UUDECODE_FILES_RENAME_<fn>
950 Rename the output from the decode to the provided name.
952 *NOTE: These files are simply decoded, with no install or other
953 rule applying implicitly except being added to the clean
956 =-=-=-=-= bsd.gcc.mk =-=-=-=-=
958 The include file <bsd.gcc.mk> computes various parameters related to GCC
959 support libraries. It defines no targets. <bsd.own.mk> MUST be included
962 The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each
963 of which need to know where to find certain GCC support libraries.
965 The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable,
966 which is generally set by the user. If EXTERNAL_TOOLCHAIN it set, then
967 the compiler is asked where to find the support libraries, otherwise the
968 support libraries are found in ${DESTDIR}/usr/lib.
970 <bsd.gcc.mk> sets the following variables:
972 _GCC_CRTBEGIN The full path name to crtbegin.o.
974 _GCC_CRTBEGINS The full path name to crtbeginS.o.
976 _GCC_CRTEND The full path name to crtend.o.
978 _GCC_CRTENDS The full path name to crtendS.o.
980 _GCC_LIBGCCDIR The directory where libgcc.a is located.
983 =-=-=-=-= bsd.inc.mk =-=-=-=-=
985 The include file <bsd.inc.mk> defines the includes target and uses the
988 INCS The list of include files.
990 INCSDIR The location to install the include files.
992 INCSNAME Target name of the include file, if only one; same as
993 FILESNAME, but for include files.
995 INCSYMLINKS Similar to SYMLINKS in <bsd.links.mk>, except that these
996 are installed in the 'includes' target and not the
997 (much later) 'install' target.
999 INCSNAME_<file> The name file <file> should be installed as, if not <file>,
1000 same as FILESNAME_<file>, but for include files.
1003 =-=-=-=-= bsd.info.mk =-=-=-=-=
1005 The include file <bsd.info.mk> is used to generate and install GNU Info
1006 documentation from respective Texinfo source files. It defines three
1007 implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the
1008 following variables:
1010 TEXINFO List of Texinfo source files. Info documentation will
1011 consist of single files with the extension replaced by
1014 INFOFLAGS Flags to pass to makeinfo. []
1017 =-=-=-=-= bsd.kernobj.mk =-=-=-=-=
1019 The include file <bsd.kernobj.mk> defines variables related to the
1020 location of kernel sources and object directories.
1022 KERNSRCDIR Is the location of the top of the kernel src.
1025 KERNARCHDIR Is the location of the machine dependent kernel sources.
1028 KERNCONFDIR Is where the configuration files for kernels are found.
1029 [${KERNSRCDIR}/${KERNARCHDIR}/conf]
1031 KERNOBJDIR Is the kernel build directory. The kernel GENERIC for
1032 instance will be compiled in ${KERNOBJDIR}/GENERIC.
1033 The default value is
1034 ${MAKEOBJDIRPREFIX}${KERNSRCDIR}/${KERNARCHDIR}/compile
1035 if it exists or the target 'obj' is being made.
1036 Otherwise the default is
1037 ${KERNSRCDIR}/${KERNARCHDIR}/compile.
1039 It is important that Makefiles (such as those under src/distrib) that
1040 wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR}
1041 rather than make assumptions about the location of the compiled kernel.
1044 =-=-=-=-= bsd.kinc.mk =-=-=-=-=
1046 The include file <bsd.kinc.mk> defines the many targets (includes,
1047 subdirectories, etc.), and is used by kernel makefiles to handle
1048 include file installation. It is intended to be included alone, by
1049 kernel Makefiles. It uses similar variables to <bsd.inc.mk>.
1050 Please see <bsd.kinc.mk> for more details, and keep the documentation
1051 in that file up to date.
1054 =-=-=-=-= bsd.lib.mk =-=-=-=-=
1056 The include file <bsd.lib.mk> has support for building libraries. It has
1057 the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend,
1058 includes, install, lint, and tags. Additionally, it has a checkver target
1059 which checks for installed shared object libraries whose version is greater
1060 that the version of the source. It has a limited number of suffixes,
1061 consistent with the current needs of the BSD tree. <bsd.lib.mk> includes
1062 <bsd.shlib.mk> to get shared library parameters.
1064 It sets/uses the following variables:
1066 LIB The name of the library to build.
1068 LIBDIR Target directory for libraries.
1070 MKARZERO Normally, ar(1) sets the timestamps, uid, gid and
1071 permissions in files inside its archives to those of
1072 the file it was fed. This leads to non-reproduceable
1073 builds. If MKARZERO is set to "yes" (default is "no")
1074 then the "D" flag is passed to ar, causing the
1075 timestamp, uid and gid to be zeroed and the file
1076 permissions to be set to 644. This allows .a files
1077 from different builds to be bit identical.
1079 SHLIBINSTALLDIR Target directory for shared libraries if ${USE_SHLIBDIR}
1084 SHLIB_TEENY Major, minor, and teeny version numbers of shared library
1086 USE_SHLIBDIR If not "no", use ${SHLIBINSTALLDIR} instead of ${LIBDIR}
1087 as the path to install shared libraries to.
1088 USE_SHLIBDIR must be defined before <bsd.own.mk> is included.
1091 LIBISMODULE If not "no", install as ${LIB}.so (without the "lib" prefix),
1092 and act as "MKDEBUGLIB=no MKLINT=no MKPICINSTALL=no
1093 MKPROFILE=no MKSTATICLIB=no".
1096 LIBISPRIVATE If not "no", act as "MKDEBUGLIB=no MKLINT=no MKPIC=no
1097 MKPROFILE=no", and don't install the (.a) library.
1098 This is useful for "build only" helper libraries.
1101 LIBISCXX If not "no", Use ${CXX} instead of ${CC} to link
1103 This is useful for C++ libraries.
1106 LINTLIBDIR Target directory for lint libraries.
1108 LIBGRP Library group.
1110 LIBOWN Library owner.
1112 LIBMODE Library mode.
1114 LDADD Additional loader objects.
1116 MAN The manual pages to be installed (use a .1 - .9 suffix).
1118 NOCHECKVER_<library>
1119 NOCHECKVER If set, disables checking for installed shared object
1120 libraries with versions greater than the source. A
1121 particular library name, without the "lib" prefix, may
1122 be appended to the variable name to disable the check for
1125 SRCS List of source files to build the library. Suffix types
1126 .s, .c, and .f are supported. Note, .s files are preferred
1127 to .c files of the same name. (This is not the default for
1130 LIBDPLIBS A list of the tuples:
1131 libname path-to-srcdir-of-libname
1134 * LIBDO.libname contains the .OBJDIR of the library
1135 `libname', and if it is not set it is determined
1136 from the srcdir and added to MAKEOVERRIDES (the
1137 latter is to allow for build time optimization).
1138 * LDADD gets -L${LIBDO.libname} -llibname added.
1139 * DPADD gets ${LIBDO.libname}/liblibname.so or
1140 ${LIBDO.libname}/liblibname.a added.
1142 This variable may be used for individual libraries, as
1143 well as in parent directories to cache common libraries
1144 as a build-time optimization.
1146 The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
1147 if it exists, as well as the include file <bsd.man.mk>.
1149 It has rules for building profiled objects; profiled libraries are
1152 Libraries are ranlib'd when made.
1155 =-=-=-=-= bsd.links.mk =-=-=-=-=
1157 The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
1158 and is included from from <bsd.lib.mk> and <bsd.prog.mk>.
1160 LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log
1161 is used. The defaults may be modified by other bsd.*.mk files which
1162 include bsd.links.mk. In the future, these variables may be replaced
1163 by a method for explicitly recording hard links in a metadata log.
1165 LINKS The list of hard links, consisting of pairs of paths:
1166 source-file target-file
1167 ${DESTDIR} is prepended to both paths before linking.
1168 For example, to link /bin/test and /bin/[, use:
1169 LINKS=/bin/test /bin/[
1171 CONFIGLINKS Similar semantics to LINKS, except that the links
1172 are installed by the `configinstall' target,
1173 not the `install' target.
1175 SYMLINKS The list of symbolic links, consisting of pairs of paths:
1176 source-file target-file
1177 ${DESTDIR} is only prepended to target-file before linking.
1178 For example, to symlink /usr/bin/tar to /bin/tar resulting
1179 in ${DESTDIR}/usr/bin/tar -> /bin/tar:
1180 SYMLINKS=/bin/tar /usr/bin/tar
1182 CONFIGSYMLINKS Similar semantics to SYMLINKS, except that the symbolic links
1183 are installed by the `configinstall' target,
1184 not the `install' target.
1186 LINKSOWN Link owner. [${BINOWN}]
1188 LINKSGRP Link group. [${BINGRP}]
1190 LINKSMODE Link mode. [${NONBINMODE}]
1192 LINKSOWN_<fn> Link owner of the specific file <fn>.
1194 LINKSGRP_<fn> Link group of the specific file <fn>.
1196 LINKSMODE_<fn> Link mode of the specific file <fn>.
1199 =-=-=-=-= bsd.man.mk =-=-=-=-=
1201 The include file <bsd.man.mk> handles installing manual pages and their
1204 It has a three targets:
1207 Install the preformatted manual pages and their links.
1209 Install the HTML manual pages and their links.
1211 Install the manual page sources and their links.
1213 It sets/uses the following variables:
1215 MANDIR Base path for manual installation.
1217 MANGRP Manual group.
1219 MANOWN Manual owner.
1221 MANMODE Manual mode.
1223 MANSUBDIR Subdirectory under the manual page section, i.e. "/vax"
1224 or "/tahoe" for machine specific manual pages.
1226 MAN The manual pages to be installed (use a .1 - .9 suffix).
1228 MLINKS List of manual page links (using a .1 - .9 suffix). The
1229 linked-to file must come first, the linked file second,
1230 and there may be multiple pairs.
1232 The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
1236 =-=-=-=-= bsd.obj.mk =-=-=-=-=
1238 The include file <bsd.obj.mk> defines targets related to the creation
1239 and use of separated object and source directories.
1241 If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses
1242 ${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if
1243 it exists. Otherwise make(1) looks for the existence of a
1244 subdirectory (or a symlink to a directory) of the source directory
1245 into which built targets should be placed. If an environment variable
1246 named MAKEOBJDIR is set, make(1) uses its value as the name of the
1247 object directory; failing that, make first looks for a subdirectory
1248 named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj".
1250 Object directories are not created automatically by make(1) if they
1251 don't exist; you need to run a separate "make obj". (This will happen
1252 during a top-level build if "MKOBJDIRS" is set to a value other than
1253 "no"). When the source directory is a subdirectory of ${BSDSRCDIR} --
1254 and this is determined by a simple string prefix comparison -- object
1255 directories are created in a separate object directory tree, and a
1256 symlink to the object directory in that tree is created in the source
1257 directory; otherwise, "make obj" assumes that you're not in the main
1258 source tree and that it's not safe to use a separate object tree.
1260 Several variables used by <bsd.obj.mk> control exactly what
1261 directories and links get created during a "make obj":
1263 MAKEOBJDIR If set, this is the component name of the object
1266 OBJMACHINE If this is set but MAKEOBJDIR is not set, creates
1267 object directories or links named "obj.${MACHINE}";
1268 otherwise, just creates ones named "obj".
1270 USR_OBJMACHINE If set, and the current directory is a subdirectory of
1271 ${BSDSRCDIR}, create object directory in the
1272 corresponding subdirectory of ${BSDOBJDIR}.${MACHINE};
1273 otherwise, create it in the corresponding subdirectory
1276 BUILDID If set, the contents of this variable are appended
1277 to the object directory name. If OBJMACHINE is also
1278 set, ".${BUILDID}" is added after ".${MACHINE}".
1281 =-=-=-=-= bsd.prog.mk =-=-=-=-=
1283 The include file <bsd.prog.mk> handles building programs from one or
1284 more source files, along with their manual pages. It has a limited number
1285 of suffixes, consistent with the current needs of the BSD tree.
1286 <bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters.
1288 It has eight targets:
1291 build the program and its manual page. This also
1292 creates a GDB initialization file (.gdbinit) in
1293 the objdir. The .gdbinit file sets the shared library
1294 prefix to ${DESTDIR} to facilitate cross-debugging.
1296 remove the program, any object files and the files a.out,
1297 Errs, errs, mklog, and ${PROG}.core.
1299 remove all of the files removed by the target clean, as
1300 well as .depend, tags, and any manual pages.
1301 `distclean' is a synonym for `cleandir'.
1303 make the dependencies for the source files, and store
1304 them in the file .depend.
1306 install any header files.
1308 install the program and its manual pages; if the Makefile
1309 does not itself define the target install, the targets
1310 beforeinstall and afterinstall may also be used to cause
1311 actions immediately before and after the install target
1314 run lint on the source files
1316 create a tags file for the source files.
1318 It sets/uses the following variables:
1320 BINGRP Binary group.
1322 BINOWN Binary owner.
1324 BINMODE Binary mode.
1326 CLEANDIRFILES Additional files to remove for the cleandir target.
1328 CLEANFILES Additional files to remove for the clean and cleandir targets.
1330 COPTS Additional flags to the compiler when creating C objects.
1332 COPTS.<fn> Additional flags to the compiler when creating the
1334 For <fn>.[ly], "<fn>.c" must be used.
1336 CPUFLAGS Additional flags to the compiler/assembler to select
1337 CPU instruction set options, CPU tuning options, etc.
1339 CPUFLAGS.<fn> Additional flags to the compiler/assembler for <fn>.
1340 For <fn>.[ly], "<fn>.c" must be used.
1342 CPPFLAGS Additional flags to the C pre-processor.
1344 CPPFLAGS.<fn> Additional flags to the C pre-processor for <fn>.
1345 For <fn>.[ly], "<fn>.c" must be used.
1347 GDBINIT List of GDB initialization files to add to "source"
1348 directives in the .gdbinit file that is created in the
1351 LDADD Additional loader objects. Usually used for libraries.
1352 For example, to load with the compatibility and utility
1355 LDADD+=-lutil -lcompat
1357 LDFLAGS Additional linker flags (passed to ${CC} during link).
1359 LINKS See <bsd.links.mk>
1361 OBJCOPTS Additional flags to the compiler when creating ObjC objects.
1363 OBJCOPTS.<fn> Additional flags to the compiler when creating the
1364 ObjC objects for <fn>.
1365 For <fn>.[ly], "<fn>.c" must be used.
1367 SYMLINKS See <bsd.links.mk>
1369 MAN Manual pages (should end in .1 - .9). If no MAN variable is
1370 defined, "MAN=${PROG}.1" is assumed.
1372 PAXCTL_FLAGS If defined, run paxctl(1) on the program binary after link
1373 time, with the value of this variable as args to paxctl(1).
1375 PAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS.
1377 PROG The name of the program to build. If not supplied, nothing
1380 PROG_CXX If defined, the name of the program to build. Also
1381 causes <bsd.prog.mk> to link the program with the C++
1382 compiler rather than the C compiler. PROG_CXX overrides
1383 the value of PROG if PROG is also set.
1385 PROGNAME The name that the above program will be installed as, if
1386 different from ${PROG}.
1388 SRCS List of source files to build the program. If SRCS is not
1389 defined, it's assumed to be ${PROG}.c.
1391 DPSRCS List of source files which are needed for generating
1392 dependencies, but are not needed in ${SRCS}.
1394 DPADD Additional dependencies for the program. Usually used for
1395 libraries. For example, to depend on the compatibility and
1396 utility libraries use:
1398 DPADD+=${LIBCOMPAT} ${LIBUTIL}
1400 The following system libraries are predefined for DPADD:
1402 LIBARCHIVE?= ${DESTDIR}/usr/lib/libarchive.a
1403 LIBASN1?= ${DESTDIR}/usr/lib/libasn1.a
1404 LIBATF_C?= ${DESTDIR}/usr/lib/libatf-c.a
1405 LIBATF_CXX?= ${DESTDIR}/usr/lib/libatf-c++.a
1406 LIBBIND9?= ${DESTDIR}/usr/lib/libbind9.a
1407 LIBBLUETOOTH?= ${DESTDIR}/usr/lib/libbluetooth.a
1408 LIBBSDMALLOC?= ${DESTDIR}/usr/lib/libbsdmalloc.a
1409 LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a
1410 LIBC?= ${DESTDIR}/usr/lib/libc.a
1411 LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a
1412 LIBCOM_ERR?= ${DESTDIR}/usr/lib/libcom_err.a
1413 LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o
1414 LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a
1415 LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a
1416 LIBCRYPTO_IDEA?=${DESTDIR}/usr/lib/libcrypto_idea.a
1417 LIBCRYPTO_MDC2?=${DESTDIR}/usr/lib/libcrypto_mdc2.a
1418 LIBCRYPTO_RC5?= ${DESTDIR}/usr/lib/libcrypto_rc5.a
1419 LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a
1420 LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a
1421 LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a
1422 LIBDES?= ${DESTDIR}/usr/lib/libdes.a
1423 LIBDNS?= ${DESTDIR}/usr/lib/libdns.a
1424 LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a
1425 LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a
1426 LIBEXPAT?= ${DESTDIR}/usr/lib/libexpat.a
1427 LIBFETCH?= ${DESTDIR}/usr/lib/libfetch.a
1428 LIBFORM?= ${DESTDIR}/usr/lib/libform.a
1429 LIBFL?= ${DESTDIR}/usr/lib/libfl.a
1430 LIBG2C?= ${DESTDIR}/usr/lib/libg2c.a
1431 LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a
1432 LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a
1433 LIBGSSAPI?= ${DESTDIR}/usr/lib/libgssapi.a
1434 LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a
1435 LIBHEIMBASE?= ${DESTDIR}/usr/lib/libheimbase.a
1436 LIBHEIMNTLM?= ${DESTDIR}/usr/lib/libheimntlm.a
1437 LIBHX500?= ${DESTDIR}/usr/lib/libhx500.a
1438 LIBINTL?= ${DESTDIR}/usr/lib/libintl.a
1439 LIBIPSEC?= ${DESTDIR}/usr/lib/libipsec.a
1440 LIBISC?= ${DESTDIR}/usr/lib/libisc.a
1441 LIBISCCC?= ${DESTDIR}/usr/lib/libisccc.a
1442 LIBISCFG?= ${DESTDIR}/usr/lib/libiscfg.a
1443 LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a
1444 LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a
1445 LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a
1446 LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a
1447 LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a
1448 LIBL?= ${DESTDIR}/usr/lib/libl.a
1449 LIBLBER?= ${DESTDIR}/usr/lib/liblber.a
1450 LIBLDAP?= ${DESTDIR}/usr/lib/libldap.a
1451 LIBLDAP_R?= ${DESTDIR}/usr/lib/libldap_r.a
1452 LIBLUA?= ${DESTDIR}/usr/lib/liblua.a
1453 LIBLWRES?= ${DESTDIR}/usr/lib/liblwres.a
1454 LIBM?= ${DESTDIR}/usr/lib/libm.a
1455 LIBMAGIC?= ${DESTDIR}/usr/lib/libmagic.a
1456 LIBMENU?= ${DESTDIR}/usr/lib/libmenu.a
1457 LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a
1458 LIBOSSAUDIO?= ${DESTDIR}/usr/lib/libossaudio.a
1459 LIBPAM?= ${DESTDIR}/usr/lib/libpam.a
1460 LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a
1461 LIBPCI?= ${DESTDIR}/usr/lib/libpci.a
1462 LIBPMC?= ${DESTDIR}/usr/lib/libpmc.a
1463 LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a
1464 LIBPTHREAD?= ${DESTDIR}/usr/lib/libpthread.a
1465 LIBPTHREAD_DBG?=${DESTDIR}/usr/lib/libpthread_dbg.a
1466 LIBPUFFS?= ${DESTDIR}/usr/lib/libpuffs.a
1467 LIBQUOTA?= ${DESTDIR}/usr/lib/libquota.a
1468 LIBRADIUS?= ${DESTDIR}/usr/lib/libradius.a
1469 LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a
1470 LIBRMT?= ${DESTDIR}/usr/lib/librmt.a
1471 LIBROKEN?= ${DESTDIR}/usr/lib/libroken.a
1472 LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a
1473 LIBRT?= ${DESTDIR}/usr/lib/librt.a
1474 LIBRUMP?= ${DESTDIR}/usr/lib/librump.a
1475 LIBRUMPFS_CD9660FS?=${DESTDIR}/usr/lib/librumpfs_cd9660fs.a
1476 LIBRUMPFS_EFS?= ${DESTDIR}/usr/lib/librumpfs_efs.a
1477 LIBRUMPFS_EXT2FS?=${DESTDIR}/usr/lib/librumpfs_ext2fs.a
1478 LIBRUMPFS_FFS?= ${DESTDIR}/usr/lib/librumpfs_ffs.a
1479 LIBRUMPFS_HFS?= ${DESTDIR}/usr/lib/librumpfs_hfs.a
1480 LIBRUMPFS_LFS?= ${DESTDIR}/usr/lib/librumpfs_lfs.a
1481 LIBRUMPFS_MSDOSFS?=${DESTDIR}/usr/lib/librumpfs_msdosfs.a
1482 LIBRUMPFS_NFS?= ${DESTDIR}/usr/lib/librumpfs_nfs.a
1483 LIBRUMPFS_NTFS?=${DESTDIR}/usr/lib/librumpfs_ntfs.a
1484 LIBRUMPFS_SYSPUFFS?=${DESTDIR}/usr/lib/librumpfs_syspuffs.a
1485 LIBRUMPFS_TMPFS?=${DESTDIR}/usr/lib/librumpfs_tmpfs.a
1486 LIBRUMPFS_UDF?= ${DESTDIR}/usr/lib/librumpfs_udf.a
1487 LIBRUMPFS_UFS?= ${DESTDIR}/usr/lib/librumpfs_ufs.a
1488 LIBRUMPUSER?= ${DESTDIR}/usr/lib/librumpuser.a
1489 LIBSASLC?= ${DESTDIR}/usr/lib/libsaslc.a
1490 LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a
1491 LIBSL?= ${DESTDIR}/usr/lib/libsl.a
1492 LIBSQLITE3?= ${DESTDIR}/usr/lib/libsqlite3.a
1493 LIBSS?= ${DESTDIR}/usr/lib/libss.a
1494 LIBSSH?= ${DESTDIR}/usr/lib/libssh.a
1495 LIBSSL?= ${DESTDIR}/usr/lib/libssl.a
1496 LIBSSP?= ${DESTDIR}/usr/lib/libssp.a
1497 LIBSTDCXX?= ${DESTDIR}/usr/lib/libstdc++.a
1498 LIBSUPCXX?= ${DESTDIR}/usr/lib/libsupc++.a
1499 LIBTERMINFO?= ${DESTDIR}/usr/lib/libterminfo.a
1500 LIBTRE?= ${DESTDIR}/usr/lib/libtre.a
1501 LIBUSBHID?= ${DESTDIR}/usr/lib/libusbhid.a
1502 LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a
1503 LIBWIND?= ${DESTDIR}/usr/lib/libwind.a
1504 LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a
1505 LIBY?= ${DESTDIR}/usr/lib/liby.a
1506 LIBZ?= ${DESTDIR}/usr/lib/libz.a
1508 The following X-Windows libraries are predefined for DPADD:
1510 LIBFS?= ${DESTDIR}/usr/X11R7/lib/libFS.a
1511 LIBGL?= ${DESTDIR}/usr/X11R7/lib/libGL.a
1512 LIBGLU?= ${DESTDIR}/usr/X11R7/lib/libGLU.a
1513 LIBICE?= ${DESTDIR}/usr/X11R7/lib/libICE.a
1514 LIBSM?= ${DESTDIR}/usr/X11R7/lib/libSM.a
1515 LIBX11?= ${DESTDIR}/usr/X11R7/lib/libX11.a
1516 LIBXTRAP?= ${DESTDIR}/usr/X11R7/lib/libXTrap.a
1517 LIBXAU?= ${DESTDIR}/usr/X11R7/lib/libXau.a
1518 LIBXAW?= ${DESTDIR}/usr/X11R7/lib/libXaw.a
1519 LIBXDMCP?= ${DESTDIR}/usr/X11R7/lib/libXdmcp.a
1520 LIBXEXT?= ${DESTDIR}/usr/X11R7/lib/libXext.a
1521 LIBXFONT?= ${DESTDIR}/usr/X11R7/lib/libXfont.a
1522 LIBXFT?= ${DESTDIR}/usr/X11R7/lib/libXft.a
1523 LIBXI?= ${DESTDIR}/usr/X11R7/lib/libXi.a
1524 LIBXINERAMA?= ${DESTDIR}/usr/X11R7/lib/libXinerama.a
1525 LIBXMU?= ${DESTDIR}/usr/X11R7/lib/libXmu.a
1526 LIBXMUU?= ${DESTDIR}/usr/X11R7/lib/libXmuu.a
1527 LIBXPM?= ${DESTDIR}/usr/X11R7/lib/libXpm.a
1528 LIBXRANDR?= ${DESTDIR}/usr/X11R7/lib/libXrandr.a
1529 LIBXRENDER?= ${DESTDIR}/usr/X11R7/lib/libXrender.a
1530 LIBXSS?= ${DESTDIR}/usr/X11R7/lib/libXss.a
1531 LIBXT?= ${DESTDIR}/usr/X11R7/lib/libXt.a
1532 LIBXTST?= ${DESTDIR}/usr/X11R7/lib/libXtst.a
1533 LIBXV?= ${DESTDIR}/usr/X11R7/lib/libXv.a
1534 LIBXXF86DGA?= ${DESTDIR}/usr/X11R7/lib/libXxf86dga.a
1535 LIBXXF86MISC?= ${DESTDIR}/usr/X11R7/lib/libXxf86misc.a
1536 LIBXXF86VM?= ${DESTDIR}/usr/X11R7/lib/libXxf86vm.a
1537 LIBDPS?= ${DESTDIR}/usr/X11R7/lib/libdps.a
1538 LIBFNTSTUBS?= ${DESTDIR}/usr/X11R7/lib/libfntstubs.a
1539 LIBFONTCACHE?= ${DESTDIR}/usr/X11R7/lib/libfontcache.a
1540 LIBFONTCONFIG?= ${DESTDIR}/usr/X11R7/lib/libfontconfig.a
1541 LIBFONTENC?= ${DESTDIR}/usr/X11R7/lib/libfontenc.a
1542 LIBFREETYPE?= ${DESTDIR}/usr/X11R7/lib/libfreetype.a
1543 LIBLBXUTIL?= ${DESTDIR}/usr/X11R7/lib/liblbxutil.a
1544 LIBXKBFILE?= ${DESTDIR}/usr/X11R7/lib/libxkbfile.a
1546 SHAREDSTRINGS If defined, a new .c.o rule is used that results in shared
1547 strings, using xstr(1). Note that this will not work with
1550 STRIPFLAG The flag passed to the install program to cause the binary
1553 SUBDIR A list of subdirectories that should be built as well.
1554 Each of the targets will execute the same target in the
1557 SCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
1558 These are installed exactly like programs.
1560 SCRIPTSDIR The location to install the scripts. Each script can be
1561 installed to a separate path by setting SCRIPTSDIR_<script>.
1563 SCRIPTSNAME The name that the above program will be installed as, if
1564 different from ${SCRIPTS}. These can be further specialized
1565 by setting SCRIPTSNAME_<script>.
1567 FILES See description of <bsd.files.mk>.
1569 SHLINKDIR Target directory for shared linker. See description of
1570 <bsd.own.mk> for additional information about this variable.
1572 The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
1573 if it exists, as well as the include file <bsd.man.mk>.
1575 Some simple examples:
1577 To build foo from foo.c with a manual page foo.1, use:
1581 .include <bsd.prog.mk>
1583 To build foo from foo.c with a manual page foo.2, add the line:
1587 If foo does not have a manual page at all, add the line:
1591 If foo has multiple source files, add the line:
1593 SRCS= a.c b.c c.c d.c
1596 =-=-=-=-= bsd.rpc.mk =-=-=-=-=
1598 The include file <bsd.rpc.mk> contains a makefile fragment used to
1599 construct source files built by rpcgen.
1601 The following macros may be defined in makefiles which include
1602 <bsd.rpc.mk> in order to control which files get built and how they
1605 RPC_INCS: construct .h file from .x file
1606 RPC_XDRFILES: construct _xdr.c from .x file
1607 (for marshalling/unmarshalling data types)
1608 RPC_SVCFILES: construct _svc.c from .x file
1610 RPC_SVCFLAGS: Additional flags passed to builds of RPC_SVCFILES.
1612 RPC_XDIR: Directory containing .x/.h files
1615 =-=-=-=-= bsd.shlib.mk =-=-=-=-=
1617 The include file <bsd.shlib.mk> computes parameters for shared library
1618 installation and use. It defines no targets. <bsd.own.mk> MUST be
1619 included before <bsd.shlib.mk>.
1621 <bsd.own.mk> sets the following variables, if they are not already defined
1622 (defaults are in brackets):
1624 SHLIBINSTALLDIR If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR}
1625 instead of ${LIBDIR} as the base path for shared library
1626 installation. [/lib]
1628 SHLIBDIR The path to USE_SHLIBDIR shared libraries to use when building
1629 a program. [/lib for programs in /bin and /sbin, /usr/lib
1632 _LIBSODIR Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no",
1633 otherwise set to ${LIBDIR}
1635 SHLINKINSTALLDIR Base path for shared linker. [/libexec]
1637 SHLINKDIR Path to use for shared linker when building a program.
1638 [/libexec for programs in /bin and /sbin, /usr/libexec for
1642 =-=-=-=-= bsd.subdir.mk =-=-=-=-=
1644 The include file <bsd.subdir.mk> contains the default targets for building
1645 subdirectories. It has the same eight targets as <bsd.prog.mk>: all,
1646 clean, cleandir, depend, includes, install, lint, and tags. It uses the
1647 following variables:
1649 NOSUBDIR If this variable is defined, then the SUBDIR variable
1650 will be ignored and subdirectories will not be processed.
1652 SUBDIR For all of the directories listed in ${SUBDIR}, the
1653 specified directory will be visited and the target made.
1655 As a special case, the use of a token .WAIT as an
1656 entry in SUBDIR acts as a synchronization barrier
1657 when multiple make jobs are run; subdirs before the
1658 .WAIT must complete before any subdirs after .WAIT are
1659 started. See make(1) for some caveats on use of .WAIT
1660 and other special sources.
1663 =-=-=-=-= bsd.sys.mk =-=-=-=-=
1665 The include file <bsd.sys.mk> is used by <bsd.prog.mk> and
1666 <bsd.lib.mk>. It contains overrides that are used when building
1667 the NetBSD source tree.
1669 The following variables control how various files are compiled/built.
1670 (Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"):
1672 AR Create, modify, and extract from archives. [ar]
1674 ARFLAGS Options to ${AR}. [rl]
1678 AFLAGS Options to ${CC} when compiling or linking .s or .S
1679 assembly source files. []
1681 BUILDSEED GCC uses random numbers when compiling C++ code.
1682 If this option is present, seed the random number
1683 generator based on the value, source file names and
1684 the output file name to make builds more deterministic.
1685 Additional information is available in the GCC
1686 documentation of -frandom-seed.
1690 CFLAGS Options to ${CC}. [Usually -O or -O2]
1692 CPP C Pre-Processor. [cpp]
1694 CPPFLAGS Options to ${CPP}. []
1696 CPUFLAGS Optimization flags for ${CC}. []
1698 CXX C++ compiler. [c++]
1700 CXXFLAGS Options to ${CXX}. [${CFLAGS}]
1702 ELF2ECOFF Convert ELF-format executable to ECOFF. [elf2ecoff]
1704 FC Fortran compiler. [f77]
1706 FFLAGS Options to {$FC}. [-O]
1708 HOST_SH Shell. This must be an absolute path, because it may be
1709 substituted into "#!" lines in scripts. [/bin/sh]
1711 INSTALL install(1) command. [install]
1713 LEX Lexical analyzer. [lex]
1715 LFLAGS Options to ${LEX}. []
1717 LPREFIX Symbol prefix for ${LEX} (see -P option in lex(1)) [yy]
1721 LDFLAGS Options to ${CC} during the link process. []
1723 LINT C program verifier. [lint]
1725 LINTFLAGS Options to ${LINT}. [-chapbxzFS]
1727 LORDER List dependencies for object files. [lorder]
1729 MAKE make(1). [make]
1731 MKDEP Construct Makefile dependency list. [mkdep]
1733 NM List symbols from object files. [nm]
1735 PC Pascal compiler. [pc] (Not present)
1737 PFLAGS Options to ${PC}. []
1739 OBJC Objective C compiler. [${CC}]
1741 OBJCFLAGS Options to ${OBJC}. [${CFLAGS}]
1743 OBJCOPY Copy and translate object files. [objcopy]
1745 OBJCOPYLIBFLAGS Flags to pass to objcopy when library objects are
1746 being built. [${.TARGET} =~ "*.po" ? -X : -x]
1748 OBJDUMP Display information from object files. [objdump]
1750 RANLIB Generate index to archive. [ranlib]
1752 SIZE List section sizes and total size. [size]
1754 STRIP Discard symbols from object files. [strip]
1756 TSORT Topological sort of a directed graph. [tsort -q]
1758 YACC LALR(1) parser generator. [yacc]
1760 YFLAGS Options to ${YACC}. []
1762 YHEADER If defined, add "-d" to YFLAGS, and add dependencies
1763 from <file>.y to <file>.h and <file>.c, and add
1764 <foo>.h to CLEANFILES.
1766 YPREFIX If defined, add "-p ${YPREFIX}" to YFLAGS.
1769 Other variables of note (incomplete list):
1771 NOGCCERROR If defined, prevents passing certain ${CFLAGS} to GCC
1772 that cause warnings to be fatal, such as:
1773 -Werror -Wa,--fatal-warnings
1774 (The latter being for as(1).)
1776 NOCLANGERROR If defined and clang is used as C compiler, -Werror is not
1779 WARNS Crank up compiler warning options; the distinct levels are:
1786 =-=-=-=-= bsd.x11.mk =-=-=-=-=
1788 The include file <bsd.x11.mk> contains parameters and targets for
1789 cross-building X11 from ${X11SRCDIR.xc} / ${X11MITSRCDIR.*}.
1790 It should be included after the general Makefile contents but before
1791 the include files such as <bsd.prog.mk> and <bsd.lib.mk>.
1793 It provides the following targets:
1794 .man.1 .man.3 .man.4 .man.5 .man.7:
1795 If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
1796 these rules convert from X11's manual page source
1797 into an mdoc.old source file.
1799 It sets the following variables:
1801 BINDIR Set to ${X11BINDIR}.
1802 To override, define after including <bsd.x11.mk>
1804 LIBDIR Set to ${X11USRLIBDIR}.
1805 To override, define after including <bsd.x11.mk>
1807 MANDIR Set to ${X11MANDIR}.
1808 To override, define after including <bsd.x11.mk>
1810 CPPFLAGS Appended with definitions to include from
1811 ${DESTDIR}${X11INCDIR}
1813 LDFLAGS Appended with definitions to link from
1814 ${DESTDIR}${X11USRLIBDIR}
1816 X11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS.
1818 X11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES.
1820 X11FLAGS.LOADABLE Equivalent to X11's LOADABLE.
1822 X11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES.
1824 X11FLAGS.SERVER Equivalent to X11's ServerDefines.
1826 X11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries.
1828 X11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES.
1830 X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
1832 X11FLAGS.DIX Equivalent to X11's DIX_DEFINES.
1834 X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#'
1836 It uses the following variables:
1838 APPDEFS List of app-default files to install.
1840 CPPSCRIPTS List of files/scripts to run through cpp(1)
1841 and then ${X11TOOL_UNXCOMM}. The source files
1842 have a `.cpp' suffix, the generated files do not.
1844 CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS.
1846 CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>.
1849 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=