Name Date Size #Lines LOC

..--

MakefileH A D15-Oct-2015830 2918

bsd.READMEH A D15-Oct-201568 KiB2,0331,446

bsd.buildinstall.mkH A D06-Dec-2013765 3017

bsd.clang-analyze.mkH A D12-Sep-20121.2 KiB4129

bsd.clean.mkH A D06-Dec-20133 KiB9235

bsd.dep.mkH A D15-Oct-20153.9 KiB143108

bsd.doc.mkH A D15-Oct-20155.6 KiB220112

bsd.endian.mkH A D15-Oct-20151 KiB3428

bsd.files.mkH A D06-Dec-20133.6 KiB163106

bsd.gcc.mkH A D15-Oct-20151.2 KiB3530

bsd.host.mkH A D15-Oct-20152 KiB7755

bsd.hostlib.mkH A D15-Oct-20151.2 KiB5835

bsd.hostprog.mkH A D15-Oct-20154.6 KiB173140

bsd.inc.mkH A D12-Sep-20121.4 KiB5842

bsd.info.mkH A D12-Sep-20122 KiB8857

bsd.init.mkH A D12-Sep-2012355 146

bsd.ioconf.mkH A D15-Oct-20151.1 KiB4220

bsd.kernobj.mkH A D06-Dec-20131.2 KiB348

bsd.kinc.mkH A D19-Jul-20112.2 KiB8549

bsd.klinks.mkH A D15-Oct-20152.3 KiB8875

bsd.kmodule.mkH A D15-Oct-20157 KiB250193

bsd.lib.mkH A D11-Nov-201526.8 KiB969773

bsd.links.mkH A D25-Jun-20102.2 KiB9775

bsd.lua.mkH A D15-Oct-20154.4 KiB17487

bsd.man.mkH A D15-Oct-20158.5 KiB303226

bsd.nls.mkH A D06-Jun-20121.3 KiB7245

bsd.obj.mkH A D12-Sep-20122.6 KiB11087

bsd.own.mkH A D21-Mar-201847 KiB1,7391,239

bsd.prog.mkH A D13-Feb-201718.4 KiB790657

bsd.rpc.mkH A D15-Oct-20151.5 KiB7747

bsd.shlib.mkH A D12-Sep-2012834 4132

bsd.subdir.mkH A D12-Sep-20121.3 KiB6044

bsd.sys.mkH A D15-Oct-20158.6 KiB290204

bsd.syscall.mkH A D15-Oct-2015419 179

bsd.test.mkH A D06-Dec-20135.6 KiB208159

bsd.x11.mkH A D15-Oct-201512.4 KiB434309

minix.gcov.mkH A D24-Sep-20162.6 KiB5213

minix.service.mkH A D24-Sep-20163 KiB10355

sys.mkH A D13-Nov-20156.5 KiB272209

bsd.README

1#	$NetBSD: bsd.README,v 1.346 2015/07/23 08:03:26 mrg Exp $
2#	@(#)bsd.README	8.2 (Berkeley) 4/2/94
3
4This is the README file for the make "include" files for the NetBSD
5source tree.  The files are installed in /usr/share/mk, and are,
6by convention, named with the suffix ".mk".
7
8Note, this file is not intended to replace reading through the .mk
9files for anything tricky.
10
11=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
12
13RANDOM THINGS WORTH KNOWING:
14
15The files are simply C-style #include files, and pretty much behave like
16you'd expect.  The syntax is slightly different in that a single '.' is
17used instead of the hash mark, i.e. ".include <bsd.prog.mk>".
18
19One difference that will save you lots of debugging time is that inclusion
20of the file is normally done at the *end* of the Makefile.  The reason for
21this is because .mk files often modify variables and behavior based on the
22values of variables set in the Makefile.  To make this work, remember that
23the FIRST target found is the target that is used, i.e. if the Makefile has:
24
25	a:
26		echo a
27	a:
28		echo a number two
29
30the command "make a" will echo "a".  To make things confusing, the SECOND
31variable assignment is the overriding one, i.e. if the Makefile has:
32
33	a=	foo
34	a=	bar
35
36	b:
37		echo ${a}
38
39the command "make b" will echo "bar".  This is for compatibility with the
40way the V7 make behaved.
41
42It's fairly difficult to make the BSD .mk files work when you're building
43multiple programs in a single directory.  It's a lot easier to split up the
44programs than to deal with the problem.  Most of the agony comes from making
45the "obj" directory stuff work right, not because we switched to a new version
46of make.  So, don't get mad at us, figure out a better way to handle multiple
47architectures so we can quit using the symbolic link stuff.  (Imake doesn't
48count.)
49
50The file .depend in the source directory is expected to contain dependencies
51for the source files.  This file is read automatically by make after reading
52the Makefile.
53
54The variable DESTDIR works as before.  It's not set anywhere but will change
55the tree where the file gets installed.
56
57The profiled libraries are no longer built in a different directory than
58the regular libraries.  A new suffix, ".po", is used to denote a profiled
59object, and ".pico" denotes a shared (position-independent) object.
60
61There are various make variables used during the build.
62
63Many variables support a (case sensitive) value of "no" or "yes",
64and are tested with  ${VAR} == "no"  and  ${VAR} != "no" .
65
66
67The basic rule for the variable naming scheme is as follows:
68
69HOST_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.
72
73MKxxx		Can be set to "no" to disable functionality, or
74		"yes" to enable it.
75		Usually defaults to "yes", although some variables
76		default to "no".
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
81			env MKxxx=value make
82		instead of
83			make MKxxx=value
84
85NOxxx		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>
90		is included.
91
92TOOL_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.
96
97The following variables that control how things are made/installed that
98are not set by default. These should not be set by Makefiles; they're for
99the user to define in MAKECONF (see <bsd.own.mk>, below, or mk.conf(5))
100or on the make(1) command line:
101
102BUILD 		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.
106
107MAKEVERBOSE	Control how "verbose" the standard make(1) rules are.
108		Default: 2
109		Supported values:
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
115
116MKATF		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
120		either.
121		Default: yes
122
123MKBFD		Obsolete, use MKBINUTILS
124
125MKBINUTILS	If "no", don't build binutils (gas, ld, etc and libbfd,
126		libopcodes)
127		Default: yes
128
129MKBSDTAR	If "yes", use the libarchive based cpio and tar instead of
130		the pax frontends.
131		Default: no
132
133MKCATPAGES	If "no", don't build or install the catman pages.
134		Default: no
135
136MKCOMPAT  	If "no", don't build or install the src/compat.
137		Default: yes on amd64/mips64/sparc64, no elsewhere.
138
139MKCOMPATTESTS  	If "yes", build and install the NetBSD test suite when
140		building and installing src/compat.
141		Default: no
142
143MKCOMPATX11  	If "yes", build and install the X11 libraries when
144		building and installing src/compat.
145		Default: no
146
147MKCOMPLEX	If "no", don't build libm support for <complex.h>
148		Default: yes
149
150MKCRYPTO	If "no", no cryptography support will be built into the system,
151		and also acts as "MKKERBEROS=no".
152		Default: yes
153
154MKCRYPTO_RC5	If not "no", RC5 support will be built into libcrypto_rc5
155		Default: no
156
157MKCTF		If "no", do not build and install CTF tools, and also
158		don't generate and manipulate CTF data of ELF binaries
159		during build.
160		Default: no
161
162MKCVS		If "no", don't build or install cvs(1).
163		Default: yes
164
165MKDEBUG		If "no", don't build and install separate debugging symbols
166		into /usr/libdata/debug.
167		Default: no
168
169MKDEBUGLIB	Build *_g.a debugging libraries, which are compiled
170		with -DDEBUG.
171		Default: no
172
173MKDEPINCLUDES	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.
178		Default "no"
179
180MKDOC		If "no", don't build or install the documentation.
181		Default: yes
182
183MKDTRACE	If "no", do not build and install the kernel modules,
184		utilities and libraries used to implement the dtrace(1)
185		facility.
186		Default: no
187
188MKDYNAMICROOT	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.
191		Default: yes
192
193MKEXTSRC        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.
196		Default: no
197
198MKGCC		If "no", don't build gcc(1) or any of the GCC-related
199		libraries (libgcc, libobjc, libstdc++).
200		Default: yes
201
202MKGCCCMDS	If "no", don't build gcc(1), but do build the GCC-related
203		libraries (libgcc, libobjc, libstdc++).
204		Default: yes
205
206MKGDB		If "no", don't build gdb(1).
207		Default: yes
208
209MKGROFFHTMLDOC	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
212		pages.
213		Default: no
214
215MKHESIOD	If "no", disables building of Hesiod infrastructure
216		(libraries and support programs).
217		Default: yes
218
219MKHOSTOBJ	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".
223		Default: no
224
225MKHTML		If "no", don't build or install the HTML man pages.
226		Default: yes
227
228MKIEEEFP	If "no", don't add code for IEEE754/IEC60559 conformance.
229		Has no effect on most platforms.
230		Default: yes
231
232MKSTRIPIDENT	Strip the RCS IDs from program binaries and shared libraries.
233		Default: no
234
235MKINET6		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".
238		Default: yes
239
240MKINFO		If "no", don't build or install Info documentation from
241		Texinfo source files.
242		Default: yes
243
244MKIPFILTER	If "no", don't build or install the IP Filter programs and LKM.
245		Default: yes
246
247MKISCSI		If "no", don't build or install iSCSI library or applications
248		(depends on libpthread.)
249		Default: yes
250
251MKKDEBUG	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.
254
255MKKERBEROS	If "no", disables building of Kerberos v5
256		infrastructure (libraries and support programs).
257		Default: yes
258
259MKKMOD		If "no", disables building of kernel modules.
260		Default: yes
261
262MKKYUA		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)
267
268MKLDAP		If "no", disables building of LDAP infrastructure
269		(libraries and support programs).
270		Default: yes
271
272MKLIBCXX	If not "no", build and install libc++.
273		Default: no
274
275MKLIBSTDCXX	If not "no", build and install libstdc++.
276		Default: yes
277
278MKLINKLIB	If "no", act as "MKLINT=no MKPICINSTALL=no MKPROFILE=no".
279		Also:
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
285		symlink on ELF).
286		Default: yes
287
288MKLINT		If "no", don't build or install the lint libraries.
289		Default: yes
290
291MKLVM		If "no", don't build or install the logical volume manager
292		and device mapper tools and libraries
293		Default: yes
294
295MKMAN		If "no", don't build or install the man or catman pages,
296		and also acts as "MKCATPAGES=no MKHTML=no".
297		Default: yes
298
299MKMANDOC	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".
303		Default: yes
304
305MKMANZ		If not "no", compress manual pages at installation time.
306		Default: no
307
308MKMDNS		If "no", disables building of mDNS infrastructure
309		(libraries and support programs).
310		Default: yes
311
312MKNLS		If "no", don't build or install the NLS files and locale
313		definition files.
314		Default: yes
315
316MKNPF		If "no", don't build or install the NPF and its modules.
317		Default: yes
318
319MKOBJ		If "no", don't enable the rule which creates objdirs,
320		and also acts as "MKOBJDIRS=no".
321		Default: yes
322
323MKOBJDIRS	If "no", don't create objdirs during a "make build".
324		Default: no
325
326MKPAM		If "no", disables building of PAM authentication
327		infrastructure (libraries and support programs).
328		Default: yes
329
330MKPCC		If "no", don't build pcc(1) or any of the PCC-related
331		libraries (libpcc, libpccsoftfloat).
332		Default: no
333
334MKPF		If "no", don't build or install the pf programs and LKM.
335		Default: yes
336
337MKPIC		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)
340
341MKPICINSTALL	If "no", don't install the *_pic.a libraries.
342		Default: yes
343
344MKPICLIB	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.
348		Default: yes
349
350MKPIE		If "no", create regular executables. Otherwise create
351		PIE (Position Independent Executables).
352		Default: no
353
354MKPIGZGZIP	If "no", only install pigz as pigz, not gzip.
355		Default: no
356
357MKPOSTFIX	If "no", don't build or install postfix(1).
358		Default: yes
359
360MKPROFILE	If "no", don't build or install the profiling (*_p.a) libraries.
361		Default: yes
362
363MKREPRO         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.
366		Default: no
367
368MKSHARE		If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no
369		MKMAN=no MKNLS=no".
370		I.e, don't build catman pages, documentation, Info
371		documentation, man pages, NLS files, ...
372		Default: yes
373
374MKSKEY		If "no", disables building of S/key authentication
375		infrastructure (libraries and support programs).
376		Default: yes
377
378MKSLJIT		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.
381
382MKSOFTFLOAT	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.
385		Default: no
386
387MKSTATICLIB	If "no", don't build or install the normal static (*.a)
388		libraries.
389		Default: yes
390
391MKTPM		If "no" then don't build the Trusted Platform Module
392		infrastructure.
393		Default: no
394
395MKUNPRIVED	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".
399		Default: no
400
401MKUPDATE 	If not "no", 'make install' only installs targets that are
402		more recently modified in the source directories that their
403		installed counterparts.
404		Default: no
405
406MKX11		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.
409		Default: no
410
411MKX11FONTS	If not "no", do not build or install the X fonts.  The xfont
412		set is still created but will be empty.
413		Default: yes
414
415MKX11MOTIF:	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.
418		Default: no
419
420MKRADEONFIRMWARE 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.
423
424MKYP		If "no", disables building of YP (NIS)
425		infrastructure (libraries and support programs).
426		Default: yes
427
428MKZFS		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
431		atomic operations.
432		Default: yes on amd64, no elsewhere.
433
434MKRUMP		If "no", do not build and install rump related headers,
435		libraries, and programs.
436		Default: yes
437
438USE_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
441		forced to "no".
442
443USE_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
446		forced to "no".
447
448USE_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.
452
453USE_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".
457
458USE_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".
461
462USE_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".
465
466USE_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".
470		Default: no
471
472USE_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
475		of about 5%.
476		Default: "no", unless "USE_FORT" is set to "yes"
477
478USE_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
485
486USE_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".
489
490USE_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.
493		Default: "no".
494
495COPTS.lib<lib>
496OBJCOPTS.lib<lib>
497LDADD.lib<lib>
498CPPFLAGS.lib<lib>
499CXXFLAGS.lib<lib>
500COPTS.<prog>
501OBJCCOPTS.<prog>
502LDADD.<prog>
503CPPFLAGS.<prog>
504CXXFLAGS.<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
510		the crypto library.
511
512The active compiler is selected using the following variables:
513AVAILABLE_COMPILER
514		List of available compiler suites.  Processed in order
515		for selecting the active compiler for each frontend.
516HAVE_PCC	If defined, PCC is present and enabled.
517HAVE_LLVM	If defined, LLVM/Clang is present and enabled.
518UNSUPPORTED_COMPILER.xxx
519		If defined, the support for compiler "xxx" is disabled.
520
521For the frontends (CC, CPP, CXX, FC and OBJC) the following variables exist:
522ACTIVE_CC	Active compile suite for the CC frontend.
523SUPPORTED_CC	Compile suite with support for the CC frontend.
524TOOL_CC.xxx	Path to the CC frontend for compiler "xxx"
525
526=-=-=-=-=   sys.mk   =-=-=-=-=
527
528The include file <sys.mk> has the default rules for all makes, in the BSD
529environment or otherwise.  You probably don't want to touch this file.
530
531=-=-=-=-=   bsd.own.mk   =-=-=-=-=
532
533The include file <bsd.own.mk> contains source tree configuration parameters,
534such as the owners, groups, etc. for both manual pages and binaries, and
535a few global "feature configuration" parameters.
536
537It has no targets.
538
539To get system-specific configuration parameters, <bsd.own.mk> will try to
540include the file specified by the "MAKECONF" variable.  If MAKECONF is not
541set, or no such file exists, the system make configuration file, /etc/mk.conf
542is included.  These files may define any of the variables described below.
543
544<bsd.own.mk> sets the following variables, if they are not already defined
545(defaults are in brackets):
546
547NETBSDSRCDIR	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.
552
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.
557
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
571		build).
572
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:
576
577			version.c: ${_NETBSD_VERSION_DEPENDS}
578				commands to create version.c
579
580BSDSRCDIR	The real path to the system sources, so that 'make obj'
581		will work correctly.  [/usr/src]
582
583BSDOBJDIR	The real path to the system 'obj' tree, so that 'make obj'
584		will work correctly.  [/usr/obj]
585
586BINGRP		Binary group.  [wheel]
587
588BINOWN		Binary owner.  [root]
589
590BINMODE		Binary mode.  [555]
591
592NONBINMODE	Mode for non-executable files.  [444]
593
594MANDIR		Base path for manual installation.  [/usr/share/man/cat]
595
596MANGRP		Manual group.  [wheel]
597
598MANOWN		Manual owner.  [root]
599
600MANMODE		Manual mode.  [${NONBINMODE}]
601
602MANINSTALL	Manual installation type.  Space separated list:
603			catinstall, htmlinstall, maninstall
604		Default value derived from MKCATPAGES and MKHTML.
605
606LDSTATIC	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.
609
610LIBDIR		Base path for library installation.  [/usr/lib]
611
612LINTLIBDIR	Base path for lint(1) library installation.  [/usr/libdata/lint]
613
614LIBGRP		Library group.  [${BINGRP}]
615
616LIBOWN		Library owner.  [${BINOWN}]
617
618LIBMODE		Library mode.  [${NONBINMODE}]
619
620DOCDIR		Base path for system documentation (e.g. PSD, USD, etc.)
621	        installation.  [/usr/share/doc]
622
623DOCGRP		Documentation group.  [wheel]
624
625DOCOWN		Documentation owner.  [root]
626
627DOCMODE		Documentation mode.  [${NONBINMODE}]
628
629GZIP_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]
632
633NLSDIR		Base path for Native Language Support files installation.
634		[/usr/share/nls]
635
636NLSGRP		Native Language Support files group.  [wheel]
637
638NLSOWN		Native Language Support files owner.  [root]
639
640NLSMODE		Native Language Support files mode.  [${NONBINMODE}]
641
642X11SRCDIR	The path to the xsrc tree.  [${NETBSDSRCDIR}/../xsrc,
643		if that exists; otherwise /usr/xsrc]
644
645X11SRCDIR.local	The path to the local X11 src tree.  [${X11SRCDIR}/local]
646
647X11SRCDIR.lib<package>
648X11SRCDIR.<package>
649		The path to the xorg src tree for the specificed package>.
650		[${X11SRCDIR}/external/mit/xorg/<package>/dist]
651
652X11ROOTDIR	Root directory of the X11 installation.  [/usr/X11R6 or
653		[/usr/X11R7]
654
655X11BINDIR	X11 bin directory.  [${X11ROOTDIR}/bin]
656
657X11FONTDIR	X11 font directory.  [${X11ROOTDIR}/lib/X11/fonts]
658
659X11INCDIR	X11 include directory.  [${X11ROOTDIR}/include]
660
661X11LIBDIR	X11 lib/x11 (config) directory.  [${X11ROOTDIR}/lib/X11]
662
663X11MANDIR	X11 manual directory.  [${X11ROOTDIR}/man]
664
665X11USRLIBDIR	X11 library directory.  [${X11ROOTDIR}/lib]
666
667STRIPFLAG	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.  []
671
672COPY		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
676		a single knob.  [-c]
677
678MAKEDIRTARGETENV
679		Environment variables passed to the child make process
680		invoked by MAKEDIRTARGET.
681
682MAKEDIRTARGET dir target [params]
683		Runs "cd $${dir} && ${MAKE} [params] $${target}",
684		displaying a "pretty" message whilst doing so.
685
686RELEASEMACHINEDIR
687		Subdirectory used below RELEASEDIR when building
688		a release.  [${MACHINE}]
689
690RELEASEMACHINE	Subdirectory or path component used for the following
691		paths:
692			distrib/${RELEASEMACHINE}
693			distrib/notes/${RELEASEMACHINE}
694			etc/etc.${RELEASEMACHINE}
695		Used when building a release.  [${MACHINE}]
696
697Additionally, the following variables may be set by <bsd.own.mk> or in a
698make configuration file to modify the behavior of the system build
699process (default values are in brackets along with comments, if set by
700<bsd.own.mk>):
701
702USETOOLS	Indicates whether the tools specified by ${TOOLDIR} should
703		be used as part of a build in progress.
704		Supported values:
705
706		yes	Use the tools from TOOLDIR.
707			Must be set to this if cross-compiling.
708
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.
712
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.
720
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).
725
726OBJECT_FMT	Object file format.  [set to "ELF" on architectures that
727		use ELF -- currently all architectures].
728
729TOOLCHAIN_MISSING
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
735		value "no".
736		If not "no", ${MKBINUTILS}, ${MKGCC}, and ${MKGDB} are
737		unconditionally assigned the value "no".
738
739EXTERNAL_TOOLCHAIN
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.
749
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.
754
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.
759
760The following variables are defined to commands to perform the
761appropriate operation, with the default in [brackets].  Note that
762the defaults change if USETOOLS == "yes":
763
764TOOL_AMIGAAOUT2BB	aout to Amiga bootblock converter.  [amiga-aout2bb]
765
766TOOL_AMIGAELF2BB	ELF to Amiga bootblock converter.  [amiga-elf2bb]
767
768TOOL_AMIGATXLT		Amige assembly language format translator.  [amiga-txlt]
769
770TOOL_ASN1_COMPILE	ASN1 compiler.  [asn1_compile]
771
772TOOL_AWK		Pattern-directed scanning/processing language.  [awk]
773
774TOOL_CAP_MKDB		Create capability database.  [cap_mkdb]
775
776TOOL_CAT		Concatenate and print files.  [cat]
777
778TOOL_CKSUM		Display file checksums.  [cksum]
779
780TOOL_COMPILE_ET		Error table compiler.  [compile_et]
781
782TOOL_CONFIG		Build kernel compilation directories.  [config]
783
784TOOL_CRUNCHGEN		Generate crunched binary build environment.  [crunchgen]
785
786TOOL_CTAGS		Create a tags file.  [ctags]
787
788TOOL_DB			Manipulate db(3) databases.  [db]
789
790TOOL_DISKLABEL		Read and write disk pack label.  [disklabel]
791
792TOOL_EQN		Format equations for groff.  [eqn]
793
794TOOL_FDISK		MS-DOS partition maintenance program.  [fdisk]
795
796TOOL_FGEN		IEEE 1275 Open Firmware FCode Tokenizer.  [fgen]
797
798TOOL_GENASSYM		Generate constants for assembly files.  [genassym]
799
800TOOL_GENCAT		Generate NLS message catalogs.  [gencat]
801
802TOOL_GMAKE		GNU make utility.  [gmake]
803
804TOOL_GREP		Print lines matching a pattern.  [grep]
805
806TOOL_GROFF		Front end for groff document formatting system.  [groff]
807
808TOOL_GZIP		Compression/decompression tool.  [gzip]
809
810TOOL_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}]
814
815TOOL_HEXDUMP		Ascii, decimal, hexadecimal, octal dump.  [hexdump]
816
817TOOL_HP300MKBOOT	Make bootable image for hp300.  [hp300-mkboot]
818
819TOOL_HPPAMKBOOT		Make bootable image for hppa.  [hppa-mkboot]
820
821TOOL_INDXBIB		Make bibliographic database's inverted index.  [indxbib]
822
823TOOL_INSTALLBOOT	Install disk bootstrap software.  [installboot]
824
825TOOL_INSTALL_INFO	Update info/dir entries.  [install-info]
826
827TOOL_JOIN		Relational database operator.  [join]
828
829TOOL_M4			M4 macro language processor.  [m4]
830
831TOOL_MACPPCFIXCOFF	Fix up xcoff headers for macppc.  [macppc-fixcoff]
832
833TOOL_MAKEFS		Create file system image from directory tree.  [makefs]
834
835TOOL_MAKEINFO		Translate Texinfo documents.  [makeinfo]
836
837TOOL_MAKEWHATIS		Create a whatis.db database.  [makewhatis]
838
839TOOL_MDSETIMAGE		Set kernel RAM disk image.  [mdsetimage]
840
841TOOL_MENUC		Menu compiler.  [menuc]
842
843TOOL_MIPSELF2ECOFF	Convert ELF-format executable to ECOFF for mips.
844			[mips-elf2ecoff]
845
846TOOL_MKCSMAPPER		Make charset mapping table.  [mkcsmapper]
847
848TOOL_MKESDB		Make encoding scheme database.  [mkesdb]
849
850TOOL_MKLOCALE		Make LC_CTYPE locale files.  [mklocale]
851
852TOOL_MKMAGIC		Create database for file(1).  [file]
853
854TOOL_MKNOD		Make device special file.  [mknod]
855
856TOOL_MKTEMP		Make (unique) temporary file name.  [mktemp]
857
858TOOL_MSGC		Simple message list compiler.  [msgc]
859
860TOOL_MTREE		Map a directory hierarchy.  [mtree]
861
862TOOL_NCDCS		Turn ELF kernel into a NCD firmware image. [ncdcs]
863
864TOOL_PAX		Manipulate file archives and copy directories.  [pax]
865
866TOOL_PIC		Compile pictures for groff.  [pic]
867
868TOOL_PIGZ		Parallel compressor.  [pigz]
869
870TOOL_POWERPCMKBOOTIMAGE	Make bootable image for powerpc.  [powerpc-mkbootimage]
871
872TOOL_PWD_MKDB		Generate the password databases.  [pwd_mkdb]
873
874TOOL_REFER		Preprocess bibliographic references for groff.  [refer]
875
876TOOL_ROFF_ASCII		Generate ASCII groff output.  [nroff]
877
878TOOL_ROFF_DVI		Generate DVI groff output.  [${TOOL_GROFF} -Tdvi]
879
880TOOL_ROFF_HTML		Generate HTML groff output.
881			[${TOOL_GROFF} -Tlatin1 -mdoc2html]
882
883TOOL_ROFF_PS		Generate PS groff output.  [${TOOL_GROFF} -Tps]
884
885TOOL_ROFF_RAW		Generate "raw" groff output.  [${TOOL_GROFF} -Z]
886
887TOOL_RPCGEN		Remote Procedure Call (RPC) protocol compiler.  [rpcgen]
888
889TOOL_SED		Stream editor.  [sed]
890
891TOOL_SOELIM		Eliminate .so's from groff input.  [soelim]
892
893TOOL_SPARKCRC		Generate a crc suitable for use in a sparkive file.
894			[sparkcrc]
895
896TOOL_STAT		Display file status.  [stat]
897
898TOOL_STRFILE		Create a random access file for storing strings.
899			[strfile]
900
901TOOL_SUNLABEL		Read or modify a SunOS disk label.  [sunlabel]
902
903TOOL_TBL		Format tables for groff.  [tbl]
904
905TOOL_UUDECODE		Uudecode a binary file.  [uudecode]
906
907TOOL_VGRIND		Grind nice listings of programs.  [vgrind -f]
908
909TOOL_ZIC		Time zone compiler.  [zic]
910
911For each possible value of MACHINE_CPU, MACHINES.${MACHINE_CPU} contain a
912list of what ports can be built for it.  This keeps those definitions in
913centralized place.
914
915<bsd.own.mk> is generally useful when building your own Makefiles so that
916they use the same default owners etc. as the rest of the tree.
917
918
919=-=-=-=-=   bsd.clean.mk   =-=-=-=-=
920
921The include file <bsd.clean.mk> defines the clean and cleandir
922targets.  It uses the following variables:
923
924CLEANFILES	Files to remove for both the clean and cleandir targets.
925
926CLEANDIRFILES	Files to remove for the cleandir target, but not for
927		the clean target.
928
929MKCLEANSRC	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}.
932
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.
937
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
945		directories.
946
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.
951
952MKCLEANVERIFY	Controls whether or not the clean and cleandir targets
953		will verify that files have been deleted.
954
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.
958
959		If MKCLEANVERIFY is set to "yes", then the success of
960		the "rm -f" command will be verified using an "ls"
961		command.
962
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.
967
968To use the clean and cleandir targets defined in <bsd.clean.mk>, other
969Makefiles or bsd.*.mk files should append file names to the CLEANFILES
970or CLEANDIRFILES variables.  For example:
971
972	    CLEANFILES+= a.out
973	    CLEANDIRFILES+= .depend
974
975	    .include <bsd.clean.mk>
976
977The files listed in CLEANFILES and CLEANDIRFILES must not be
978directories, because the potential risk from running "rm -rf" commands
979in bsd.clean.mk is considered too great.  If you want to recursively
980delete a directory as part of "make clean" or "make cleandir" then you
981need to provide your own target.
982
983=-=-=-=-=   bsd.dep.mk   =-=-=-=-=
984
985The include file <bsd.dep.mk> contains the default targets for building
986.depend files.  It creates .d files from entries in SRCS and DPSRCS
987that 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
989dependencies for the .d files.  In order for this to function correctly,
990it should be .included after all other .mk files and directives that may
991modify SRCS or DPSRCS.  It uses the following variables:
992
993SRCS		List of source files to build the program.
994
995DPSRCS		List of source files which are needed for generating
996		dependencies, but are not needed in ${SRCS}.
997
998
999=-=-=-=-=   bsd.files.mk   =-=-=-=-=
1000
1001The include file <bsd.files.mk> handles the FILES variables and is included
1002from <bsd.lib.mk> and <bsd.prog.mk>, and uses the following variables:
1003
1004FILES		The list of files to install.
1005
1006CONFIGFILES	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.
1010
1011FILESOWN	File owner.  [${BINOWN}]
1012
1013FILESGRP	File group.  [${BINGRP}]
1014
1015FILESMODE	File mode.  [${NONBINMODE}]
1016
1017FILESDIR	The location to install the files.
1018
1019FILESNAME	Optional name to install each file as.
1020
1021FILESOWN_<fn>	File owner of the specific file <fn>.
1022
1023FILESGRP_<fn>	File group of the specific file <fn>.
1024
1025FILESMODE_<fn>	File mode of the specific file <fn>.
1026
1027FILESDIR_<fn>	The location to install the specific file <fn>.
1028
1029FILESNAME_<fn>	Optional name to install <fn> as.
1030
1031FILESBUILD	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".
1034
1035FILESBUILD_<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.
1038
1039
1040BUILDSYMLINKS	List of two word items:
1041			lnsrc lntgt
1042		For each lnsrc item, create a symlink named lntgt.
1043		The lntgt symlinks are removed by the cleandir target.
1044
1045UUDECODE_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
1048		not.
1049
1050UUDECODE_FILES_RENAME_<fn>
1051		Rename the output from the decode to the provided name.
1052
1053		*NOTE: These files are simply decoded, with no install or other
1054		       rule applying implicitly except being added to the clean
1055		       target.
1056
1057=-=-=-=-=   bsd.gcc.mk   =-=-=-=-=
1058
1059The include file <bsd.gcc.mk> computes various parameters related to GCC
1060support libraries.  It defines no targets.  <bsd.own.mk> MUST be included
1061before <bsd.gcc.mk>.
1062
1063The primary users of <bsd.gcc.mk> are <bsd.prog.mk> and <bsd.lib.mk>, each
1064of which need to know where to find certain GCC support libraries.
1065
1066The behavior of <bsd.gcc.mk> is influenced by the EXTERNAL_TOOLCHAIN variable,
1067which is generally set by the user.  If EXTERNAL_TOOLCHAIN it set, then
1068the compiler is asked where to find the support libraries, otherwise the
1069support libraries are found in ${DESTDIR}/usr/lib.
1070
1071<bsd.gcc.mk> sets the following variables:
1072
1073_GCC_CRTBEGIN	The full path name to crtbegin.o.
1074
1075_GCC_CRTBEGINS	The full path name to crtbeginS.o.
1076
1077_GCC_CRTEND	The full path name to crtend.o.
1078
1079_GCC_CRTENDS	The full path name to crtendS.o.
1080
1081_GCC_LIBGCCDIR	The directory where libgcc.a is located.
1082
1083
1084=-=-=-=-=   bsd.inc.mk   =-=-=-=-=
1085
1086The include file <bsd.inc.mk> defines the includes target and uses the
1087variables:
1088
1089INCS		The list of include files.
1090
1091INCSDIR		The location to install the include files.
1092
1093INCSNAME	Target name of the include file, if only one; same as
1094		FILESNAME, but for include files.
1095
1096INCSYMLINKS	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.
1099
1100INCSNAME_<file>	The name file <file> should be installed as, if not <file>,
1101		same as FILESNAME_<file>, but for include files.
1102
1103
1104=-=-=-=-=   bsd.info.mk   =-=-=-=-=
1105
1106The include file <bsd.info.mk> is used to generate and install GNU Info
1107documentation from respective Texinfo source files.  It defines three
1108implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the
1109following variables:
1110
1111TEXINFO		List of Texinfo source files.  Info documentation will
1112		consist of single files with the extension replaced by
1113		.info.
1114
1115INFOFLAGS	Flags to pass to makeinfo.  []
1116
1117
1118=-=-=-=-=   bsd.kernobj.mk   =-=-=-=-=
1119
1120The include file <bsd.kernobj.mk> defines variables related to the
1121location of kernel sources and object directories.
1122
1123KERNSRCDIR	Is the location of the top of the kernel src.
1124		[${_SRC_TOP_}/sys]
1125
1126KERNARCHDIR	Is the location of the machine dependent kernel sources.
1127		[arch/${MACHINE}]
1128
1129KERNCONFDIR	Is where the configuration files for kernels are found.
1130		[${KERNSRCDIR}/${KERNARCHDIR}/conf]
1131
1132KERNOBJDIR	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.
1139
1140It is important that Makefiles (such as those under src/distrib) that
1141wish to find compiled kernels use <bsd.kernobj.mk> and ${KERNOBJDIR}
1142rather than make assumptions about the location of the compiled kernel.
1143
1144
1145=-=-=-=-=   bsd.kinc.mk   =-=-=-=-=
1146
1147The include file <bsd.kinc.mk> defines the many targets (includes,
1148subdirectories, etc.), and is used by kernel makefiles to handle
1149include file installation.  It is intended to be included alone, by
1150kernel Makefiles.  It uses similar variables to <bsd.inc.mk>.
1151Please see <bsd.kinc.mk> for more details, and keep the documentation
1152in that file up to date.
1153
1154=-=-=-=-=   bsd.syscall.mk =-=-=-=-=
1155
1156The include file <bsd.syscall.mk> contains the logic to create syscall
1157files for various emulations. It includes <bsd.kinc.mk> to handle the
1158rest of the targets.
1159
1160=-=-=-=-=   bsd.lib.mk   =-=-=-=-=
1161
1162The include file <bsd.lib.mk> has support for building libraries.  It has
1163the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend,
1164includes, install, lint, and tags.  Additionally, it has a checkver target
1165which checks for installed shared object libraries whose version is greater
1166that the version of the source. It has a limited number of suffixes,
1167consistent with the current needs of the BSD tree.  <bsd.lib.mk> includes
1168<bsd.shlib.mk> to get shared library parameters.
1169
1170It sets/uses the following variables:
1171
1172LIB		The name of the library to build.
1173
1174LIBDIR		Target directory for libraries.
1175
1176MKARZERO	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.
1185
1186SHLIBINSTALLDIR	Target directory for shared libraries if ${USE_SHLIBDIR}
1187		is not "no".
1188
1189SHLIB_MAJOR
1190SHLIB_MINOR
1191SHLIB_TEENY	Major, minor, and teeny version numbers of shared library
1192
1193USE_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.
1196		Default: no
1197
1198LIBISMODULE	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".
1201		Default: no
1202
1203LIBISPRIVATE	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.
1206		Default: no
1207
1208LIBISCXX	If not "no", Use ${CXX} instead of ${CC} to link
1209		shared libraries.
1210		This is useful for C++ libraries.
1211		Default: no
1212
1213LINTLIBDIR	Target directory for lint libraries.
1214
1215LIBGRP		Library group.
1216
1217LIBOWN		Library owner.
1218
1219LIBMODE		Library mode.
1220
1221LDADD		Additional loader objects.
1222
1223MAN		The manual pages to be installed (use a .1 - .9 suffix).
1224
1225NOCHECKVER_<library>
1226NOCHECKVER	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
1230		only that library.
1231
1232SRCS		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
1235		versions of make.)
1236
1237LIBDPLIBS	A list of the tuples:
1238			libname  path-to-srcdir-of-libname
1239
1240		For each tuple;
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.
1248
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.
1253
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.
1257
1258The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
1259if it exists, as well as the include file <bsd.man.mk>.
1260
1261It has rules for building profiled objects; profiled libraries are
1262built by default.
1263
1264Libraries are ranlib'd when made.
1265
1266
1267=-=-=-=-=   bsd.links.mk   =-=-=-=-=
1268
1269The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
1270and is included from from <bsd.lib.mk> and <bsd.prog.mk>.
1271
1272LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log
1273is used. The defaults may be modified by other bsd.*.mk files which
1274include bsd.links.mk.  In the future, these variables may be replaced
1275by a method for explicitly recording hard links in a metadata log.
1276
1277LINKS		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/[
1282
1283CONFIGLINKS	Similar semantics to LINKS, except that the links
1284		are installed by the `configinstall' target,
1285		not the `install' target.
1286
1287SYMLINKS	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
1293
1294CONFIGSYMLINKS	Similar semantics to SYMLINKS, except that the symbolic links
1295		are installed by the `configinstall' target,
1296		not the `install' target.
1297
1298LINKSOWN	Link owner.  [${BINOWN}]
1299
1300LINKSGRP	Link group.  [${BINGRP}]
1301
1302LINKSMODE	Link mode.  [${NONBINMODE}]
1303
1304LINKSOWN_<fn>	Link owner of the specific file <fn>.
1305
1306LINKSGRP_<fn>	Link group of the specific file <fn>.
1307
1308LINKSMODE_<fn>	Link mode of the specific file <fn>.
1309
1310
1311=-=-=-=-=   bsd.man.mk   =-=-=-=-=
1312
1313The include file <bsd.man.mk> handles installing manual pages and their
1314links.
1315
1316It has a three targets:
1317
1318	catinstall:
1319		Install the preformatted manual pages and their links.
1320	htmlinstall:
1321		Install the HTML manual pages and their links.
1322	maninstall:
1323		Install the manual page sources and their links.
1324
1325It sets/uses the following variables:
1326
1327MANDIR		Base path for manual installation.
1328
1329MANGRP		Manual group.
1330
1331MANOWN		Manual owner.
1332
1333MANMODE		Manual mode.
1334
1335MANSUBDIR	Subdirectory under the manual page section, i.e. "/vax"
1336		or "/tahoe" for machine specific manual pages.
1337
1338MAN		The manual pages to be installed (use a .1 - .9 suffix).
1339
1340MLINKS		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.
1343
1344The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
1345it exists.
1346
1347
1348=-=-=-=-=   bsd.obj.mk   =-=-=-=-=
1349
1350The include file <bsd.obj.mk> defines targets related to the creation
1351and use of separated object and source directories.
1352
1353If an environment variable named MAKEOBJDIRPREFIX is set, make(1) uses
1354${MAKEOBJDIRPREFIX}${.CURDIR} as the name of the object directory if
1355it exists.  Otherwise make(1) looks for the existence of a
1356subdirectory (or a symlink to a directory) of the source directory
1357into which built targets should be placed.  If an environment variable
1358named MAKEOBJDIR is set, make(1) uses its value as the name of the
1359object directory; failing that, make first looks for a subdirectory
1360named "obj.${MACHINE}", and if that doesn't exist, it looks for "obj".
1361
1362Object directories are not created automatically by make(1) if they
1363don't exist; you need to run a separate "make obj".  (This will happen
1364during a top-level build if "MKOBJDIRS" is set to a value other than
1365"no").  When the source directory is a subdirectory of ${BSDSRCDIR} --
1366and this is determined by a simple string prefix comparison -- object
1367directories are created in a separate object directory tree, and a
1368symlink to the object directory in that tree is created in the source
1369directory; otherwise, "make obj" assumes that you're not in the main
1370source tree and that it's not safe to use a separate object tree.
1371
1372Several variables used by <bsd.obj.mk> control exactly what
1373directories and links get created during a "make obj":
1374
1375MAKEOBJDIR	If set, this is the component name of the object
1376		directory.
1377
1378OBJMACHINE	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".
1381
1382USR_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
1386		of ${BSDOBJDIR}
1387
1388BUILDID		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}".
1391
1392
1393=-=-=-=-=   bsd.prog.mk   =-=-=-=-=
1394
1395The include file <bsd.prog.mk> handles building programs from one or
1396more source files, along with their manual pages.  It has a limited number
1397of suffixes, consistent with the current needs of the BSD tree.
1398<bsd.prog.mk> includes <bsd.shlib.mk> to get shared library parameters.
1399
1400It has eight targets:
1401
1402	all:
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.
1407	clean:
1408		remove the program, any object files and the files a.out,
1409		Errs, errs, mklog, and ${PROG}.core.
1410	cleandir:
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'.
1414	depend:
1415		make the dependencies for the source files, and store
1416		them in the file .depend.
1417	includes:
1418		install any header files.
1419	install:
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
1424		is executed.
1425	lint:
1426		run lint on the source files
1427	tags:
1428		create a tags file for the source files.
1429
1430It sets/uses the following variables:
1431
1432BINGRP		Binary group.
1433
1434BINOWN		Binary owner.
1435
1436BINMODE		Binary mode.
1437
1438CLEANDIRFILES	Additional files to remove for the cleandir target.
1439
1440CLEANFILES	Additional files to remove for the clean and cleandir targets.
1441
1442CONFIGOPTS	Additional flags to config(1) when building kernels.
1443
1444COPTS		Additional flags to the compiler when creating C objects.
1445
1446COPTS.<fn>	Additional flags to the compiler when creating the
1447		C objects for <fn>.
1448		For <fn>.[ly], "<fn>.c" must be used.
1449
1450CPUFLAGS	Additional flags to the compiler/assembler to select
1451		CPU instruction set options, CPU tuning options, etc.
1452
1453CPUFLAGS.<fn>	Additional flags to the compiler/assembler for <fn>.
1454		For <fn>.[ly], "<fn>.c" must be used.
1455
1456CPPFLAGS	Additional flags to the C pre-processor.
1457
1458CPPFLAGS.<fn>	Additional flags to the C pre-processor for <fn>.
1459		For <fn>.[ly], "<fn>.c" must be used.
1460
1461GDBINIT		List of GDB initialization files to add to "source"
1462		directives in the .gdbinit file that is created in the
1463		objdir.
1464
1465LDADD		Additional loader objects.  Usually used for libraries.
1466		For example, to load with the compatibility and utility
1467		libraries, use:
1468
1469			LDADD+=-lutil -lcompat
1470
1471LDFLAGS		Additional linker flags (passed to ${CC} during link).
1472
1473LINKS		See <bsd.links.mk>
1474
1475OBJCOPTS	Additional flags to the compiler when creating ObjC objects.
1476
1477OBJCOPTS.<fn>	Additional flags to the compiler when creating the
1478		ObjC objects for <fn>.
1479		For <fn>.[ly], "<fn>.c" must be used.
1480
1481SYMLINKS	See <bsd.links.mk>
1482
1483MAN		Manual pages (should end in .1 - .9).  If no MAN variable is
1484		defined, "MAN=${PROG}.1" is assumed.
1485
1486PAXCTL_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).
1488
1489PAXCTL_FLAGS.${PROG} Custom override for PAXCTL_FLAGS.
1490
1491PROG		The name of the program to build.  If not supplied, nothing
1492		is built.
1493
1494PROG_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.
1498
1499PROGNAME	The name that the above program will be installed as, if
1500		different from ${PROG}.
1501
1502SRCS		List of source files to build the program.  If SRCS is not
1503		defined, it's assumed to be ${PROG}.c.
1504
1505DPSRCS		List of source files which are needed for generating
1506		dependencies, but are not needed in ${SRCS}.
1507
1508DPADD		Additional dependencies for the program.  Usually used for
1509		libraries.  For example, to depend on the compatibility and
1510		utility libraries use:
1511
1512			DPADD+=${LIBCOMPAT} ${LIBUTIL}
1513
1514		The following system libraries are predefined for DPADD:
1515
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
1625
1626		The following X-Windows libraries are predefined for DPADD:
1627
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
1665
1666SHAREDSTRINGS	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
1668		parallel makes.
1669
1670STRIPFLAG	The flag passed to the install program to cause the binary
1671		to be stripped.
1672
1673SUBDIR		A list of subdirectories that should be built as well.
1674		Each of the targets will execute the same target in the
1675		subdirectories.
1676
1677SCRIPTS		A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
1678		These are installed exactly like programs.
1679
1680SCRIPTSDIR	The location to install the scripts.  Each script can be
1681		installed to a separate path by setting SCRIPTSDIR_<script>.
1682
1683SCRIPTSNAME	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>.
1686
1687FILES		See description of <bsd.files.mk>.
1688
1689SHLINKDIR	Target directory for shared linker.  See description of
1690		<bsd.own.mk> for additional information about this variable.
1691
1692The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
1693if it exists, as well as the include file <bsd.man.mk>.
1694
1695Some simple examples:
1696
1697To build foo from foo.c with a manual page foo.1, use:
1698
1699	PROG=	foo
1700
1701	.include <bsd.prog.mk>
1702
1703To build foo from foo.c with a manual page foo.2, add the line:
1704
1705	MAN=	foo.2
1706
1707If foo does not have a manual page at all, add the line:
1708
1709	MKMAN=	no
1710
1711If foo has multiple source files, add the line:
1712
1713	SRCS=	a.c b.c c.c d.c
1714
1715
1716=-=-=-=-=   bsd.rpc.mk   =-=-=-=-=
1717
1718The include file <bsd.rpc.mk> contains a makefile fragment used to
1719construct source files built by rpcgen.
1720
1721The following macros may be defined in makefiles which include
1722<bsd.rpc.mk> in order to control which files get built and how they
1723are to be built:
1724
1725RPC_INCS:	construct .h file from .x file
1726RPC_XDRFILES:	construct _xdr.c from .x file
1727		(for marshalling/unmarshalling data types)
1728RPC_SVCFILES:	construct _svc.c from .x file
1729		(server-side stubs)
1730RPC_SVCFLAGS:	Additional flags passed to builds of RPC_SVCFILES.
1731
1732RPC_XDIR:	Directory containing .x/.h files
1733
1734
1735=-=-=-=-=   bsd.shlib.mk   =-=-=-=-=
1736
1737The include file <bsd.shlib.mk> computes parameters for shared library
1738installation and use.  It defines no targets.  <bsd.own.mk> MUST be
1739included before <bsd.shlib.mk>.
1740
1741<bsd.own.mk> sets the following variables, if they are not already defined
1742(defaults are in brackets):
1743
1744SHLIBINSTALLDIR	If ${USE_SHLIBDIR} is not "no", use ${SHLIBINSTALLDIR}
1745		instead of ${LIBDIR} as the base path for shared library
1746		installation.  [/lib]
1747
1748SHLIBDIR	The path to USE_SHLIBDIR shared libraries to use when building
1749		a program.  [/lib for programs in /bin and /sbin, /usr/lib
1750		for all others.]
1751
1752_LIBSODIR	Set to ${SHLIBINSTALLDIR} if ${USE_SHLIBDIR} is not "no",
1753		otherwise set to ${LIBDIR}
1754
1755SHLINKINSTALLDIR Base path for shared linker.  [/libexec]
1756
1757SHLINKDIR	Path to use for shared linker when building a program.
1758		[/libexec for programs in /bin and /sbin, /usr/libexec for
1759		all others.]
1760
1761
1762=-=-=-=-=   bsd.subdir.mk   =-=-=-=-=
1763
1764The include file <bsd.subdir.mk> contains the default targets for building
1765subdirectories.  It has the same eight targets as <bsd.prog.mk>: all,
1766clean, cleandir, depend, includes, install, lint, and tags.  It uses the
1767following variables:
1768
1769NOSUBDIR	If this variable is defined, then the SUBDIR variable
1770		will be ignored and subdirectories will not be processed.
1771
1772SUBDIR		For all of the directories listed in ${SUBDIR}, the
1773		specified directory will be visited and the target made.
1774
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.
1781
1782
1783=-=-=-=-=   bsd.x11.mk   =-=-=-=-=
1784
1785The include file <bsd.x11.mk> contains parameters and targets for
1786cross-building X11 from ${X11SRCDIR.<package>}.  It should be included
1787after the general Makefile contents but before the include files such as
1788<bsd.prog.mk> and <bsd.lib.mk>.
1789
1790It 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.
1795
1796It sets the following variables:
1797
1798BINDIR			Set to ${X11BINDIR}.
1799			To override, define after including <bsd.x11.mk>
1800
1801LIBDIR			Set to ${X11USRLIBDIR}.
1802			To override, define after including <bsd.x11.mk>
1803
1804MANDIR			Set to ${X11MANDIR}.
1805			To override, define after including <bsd.x11.mk>
1806
1807CPPFLAGS		Appended with definitions to include from
1808			${DESTDIR}${X11INCDIR}
1809
1810LDFLAGS			Appended with definitions to link from
1811			${DESTDIR}${X11USRLIBDIR}
1812
1813X11FLAGS.CONNECTION	Equivalent to X11's CONNECTION_FLAGS.
1814
1815X11FLAGS.EXTENSION	Equivalent to X11's EXT_DEFINES.
1816
1817X11FLAGS.LOADABLE	Equivalent to X11's LOADABLE.
1818
1819X11FLAGS.OS_DEFINES	Equivalent to X11's OS_DEFINES.
1820
1821X11FLAGS.SERVER		Equivalent to X11's ServerDefines.
1822
1823X11FLAGS.THREADLIB	Equivalent to X11's THREADS_DEFINES for libraries.
1824
1825X11FLAGS.THREADS	Equivalent to X11's THREADS_DEFINES.
1826
1827X11FLAGS.VERSION	cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
1828
1829X11FLAGS.DIX		Equivalent to X11's DIX_DEFINES.
1830
1831X11TOOL_UNXCOMM		Commandline to convert `XCOMM' comments to `#'
1832
1833It uses the following variables:
1834
1835APPDEFS			List of app-default files to install.
1836
1837CPPSCRIPTS		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.
1840
1841CPPSCRIPTFLAGS		Additional flags to cpp(1) when building CPPSCRIPTS.
1842
1843CPPSCRIPTFLAGS_<fn>	Additional flags to cpp(1) when building CPPSCRIPT <fn>.
1844
1845
1846=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
1847
1848The following files are described here for completion, but they are not
1849supposed to be included directly from other Makefiles; they are used
1850internally by other system files.
1851
1852=-=-=-=-=   bsd.sys.mk   =-=-=-=-=
1853
1854The include file <bsd.sys.mk> is used by other system mk files and
1855it is not intended to be included standalone. It contains rules and
1856system build variables. It requires bsd.own.mk to be included first.
1857It contains overrides that are used when building the NetBSD source tree.
1858
1859The following variables control how various files are compiled/built.
1860(Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"):
1861
1862AR		Create, modify, and extract from archives.  [ar]
1863
1864ARFLAGS		Options to ${AR}.  [rl]
1865
1866AS		Assembler.  [as]
1867
1868AFLAGS		Options to ${CC} when compiling or linking .s or .S
1869		assembly source files.  []
1870
1871BUILDSEED	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.
1877
1878CC		C compiler.  [cc]
1879
1880CFLAGS		Options to ${CC}.  [Usually -O or -O2]
1881
1882CPP		C Pre-Processor.  [cpp]
1883
1884CPPFLAGS	Options to ${CPP}.  []
1885
1886CPUFLAGS	Optimization flags for ${CC}.  []
1887
1888CXX		C++ compiler.  [c++]
1889
1890CXXFLAGS	Options to ${CXX}.  [${CFLAGS}]
1891
1892ELF2ECOFF	Convert ELF-format executable to ECOFF.  [elf2ecoff]
1893
1894FC		Fortran compiler.  [f77]
1895
1896FFLAGS		Options to {$FC}.  [-O]
1897
1898HOST_SH		Shell.	This must be an absolute path, because it may be
1899		substituted into "#!" lines in scripts.	 [/bin/sh]
1900
1901INSTALL		install(1) command.  [install]
1902
1903LEX		Lexical analyzer.  [lex]
1904
1905LFLAGS		Options to ${LEX}.  []
1906
1907LPREFIX		Symbol prefix for ${LEX} (see -P option in lex(1)) [yy]
1908
1909LD		Linker.  [ld]
1910
1911LDFLAGS		Options to ${CC} during the link process.  []
1912
1913LINT		C program verifier.  [lint]
1914
1915LINTFLAGS	Options to ${LINT}.  [-chapbxzgFS]
1916
1917LORDER		List dependencies for object files.  [lorder]
1918
1919MAKE		make(1).  [make]
1920
1921MKDEP		Construct Makefile dependency list.  [mkdep]
1922
1923MKDEPCXX	Construct Makefile dependency list for C++ files.  [mkdep]
1924
1925NM		List symbols from object files.  [nm]
1926
1927PC		Pascal compiler.  [pc]  (Not present)
1928
1929PFLAGS		Options to ${PC}.  []
1930
1931OBJC		Objective C compiler.  [${CC}]
1932
1933OBJCFLAGS	Options to ${OBJC}.  [${CFLAGS}]
1934
1935OBJCOPY		Copy and translate object files.  [objcopy]
1936
1937OBJCOPYLIBFLAGS	Flags to pass to objcopy when library objects are
1938		being built. [${.TARGET} =~ "*.po" ? -X : -x]
1939
1940OBJDUMP		Display information from object files.  [objdump]
1941
1942RANLIB		Generate index to archive.  [ranlib]
1943
1944READELF		Display information from ELF object files.  [readelf]
1945
1946SIZE		List section sizes and total size.  [size]
1947
1948STRINGS		Display printable character sequences in files.  [strings]
1949
1950STRIP		Discard symbols from object files.  [strip]
1951
1952TSORT		Topological sort of a directed graph.  [tsort -q]
1953
1954YACC		LALR(1) parser generator.  [yacc]
1955
1956YFLAGS		Options to ${YACC}.  []
1957
1958YHEADER		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.
1961
1962YPREFIX		If defined, add "-p ${YPREFIX}" to YFLAGS.
1963
1964
1965Other variables of note (incomplete list):
1966
1967NOGCCERROR	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).)
1971
1972NOCLANGERROR	If defined and clang is used as C compiler, -Werror is not
1973		passed to it.
1974
1975WARNS		Crank up compiler warning options; the distinct levels are:
1976			WARNS=1
1977			WARNS=2
1978			WARNS=3
1979			WARNS=4
1980			WARNS=5
1981			WARNS=6
1982
1983=-=-=-=-=   bsd.host.mk  =-=-=-=-=
1984
1985This file is automatically included from bsd.own.mk. It contains settings
1986for all the HOST_* variables that are used in host programs and libraries.
1987
1988HOST_AR			The host archive processing command
1989
1990HOST_CC			The host c compiler
1991
1992HOST_CFLAGS		The host c compiler flags
1993
1994HOST_COMPILE.c		The host c compiler line with flags
1995
1996HOST_COMPILE.cc		The host c++ compiler line with flags
1997
1998HOST_CPP		The host c pre-processor
1999
2000HOST_CPPFLAGS		The cost c pre-processor flags
2001
2002HOST_CXX		The host c++ compiler
2003
2004HOST_CXXFLAGS		The host c++ compiler flags
2005
2006HOST_INSTALL_DIR	The host command to install a directory
2007
2008HOST_INSTALL_FILE	The host command to install a file
2009
2010HOST_INSTALL_SYMLINK	The host command to install a symlink
2011
2012HOST_LD			The host linker command
2013
2014HOST_LDFLAGS		The host linker flags
2015
2016HOST_LINK.c		The host c linker line with flags
2017
2018HOST_LINK.cc		The host c++ linker line with flags
2019
2020HOST_LN			The host command to link two files
2021
2022HOST_MKDEP		The host command to create dependencies for c programs
2023
2024HOST_MKDEPCXX		The host command to create dependencies for c++ programs
2025
2026HOST_OSTYPE		The host OSNAME-RELEASE-ARCH tupple
2027
2028HOST_RANLIB		The host command to create random access archives
2029
2030HOST_SH			The host Bourne shell interpreter name (absolute path)
2031
2032=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2033