xref: /netbsd-src/share/man/man5/mk.conf.5 (revision aef5eb5f59cdfe8314f1b5f78ac04eb144e44010)
1.\"	$NetBSD: mk.conf.5,v 1.97 2022/07/09 08:27:35 nia Exp $
2.\"
3.\"  Copyright (c) 1999-2003 The NetBSD Foundation, Inc.
4.\"  All rights reserved.
5.\"
6.\"  This code is derived from software contributed to The NetBSD Foundation
7.\"  by Luke Mewburn.
8.\"
9.\"  Redistribution and use in source and binary forms, with or without
10.\"  modification, are permitted provided that the following conditions
11.\"  are met:
12.\"  1. Redistributions of source code must retain the above copyright
13.\"     notice, this list of conditions and the following disclaimer.
14.\"  2. Redistributions in binary form must reproduce the above copyright
15.\"     notice, this list of conditions and the following disclaimer in the
16.\"     documentation and/or other materials provided with the distribution.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.Dd July 9, 2022
31.Dt MK.CONF 5
32.Os
33.\" turn off hyphenation
34.hym 999
35.
36.Sh NAME
37.Nm mk.conf
38.Nd make configuration file
39.
40.Sh DESCRIPTION
41The
42.Nm
43file overrides various parameters used during the build of the system.
44.Pp
45Listed below are the
46.Nm
47variables that may be set, the values to which each may be set,
48a brief description of what each variable does, and a reference to
49relevant manual pages.
50.
51.Ss NetBSD System variables
52.
53.de YorN
54Can be set to
55.Dq yes
56or
57.Dq no .
58..
59.de DFLT
60.Pp
61.Em Default :
62..
63.de DFLTu
64.DFLT
65Unset.
66..
67.de DFLTy
68.DFLT
69.Dq yes
70..
71.de DFLTn
72.DFLT
73.Dq no
74..
75.Bl -tag -width MKDYNAMICROOT
76.
77.It Sy NETBSDSRCDIR
78The path to the top level of the
79.Nx
80sources.
81If
82.Xr make 1
83is run from within the
84.Nx
85source tree, the default is the top
86level of that tree (as determined by the presence of
87.Pa build.sh
88and
89.Pa tools/ ) ,
90otherwise
91.Sy BSDSRCDIR
92will be used.
93.
94.It Sy BSDOBJDIR
95The real path to the
96.Sq obj
97tree for the
98.Nx
99source tree.
100.DFLT
101.Pa /usr/obj
102.
103.It Sy BSDSRCDIR
104The real path to the
105.Nx
106source tree.
107.DFLT
108.Pa /usr/src
109.
110.It Sy BUILD
111If defined,
112.Sq "make install"
113checks that the targets in the source directories are up-to-date and
114re-makes them if they are out of date, instead of blindly trying to install
115out of date or non-existent targets.
116.DFLTu
117.
118.It Sy BUILDID
119Identifier for the build.
120The identifier will be appended to
121object directory names, and can be consulted in the
122.Xr make 1
123configuration file in order to set additional build parameters,
124such as compiler flags.
125.DFLTu
126.
127.It Sy COPTS
128Extra options for the C compiler.
129Should be appended to (e.g.,
130.Sy COPTS+=-g ) ,
131rather than explicitly set.
132Note that
133.Sy CPUFLAGS ,
134not
135.Sy COPTS ,
136should be used for
137compiler flags that select CPU-related options.
138Also note that
139.Sy CFLAGS
140should never be set in
141.Nm .
142.
143.It Sy CPUFLAGS
144Additional flags passed to the compiler/assembler to select
145CPU instruction set options, CPU tuning options, etc.
146Such options should not be specified in
147.Sy COPTS ,
148because some parts of the build process need to override
149CPU-related compiler options.
150.
151.It Sy DESTDIR
152Directory to contain the built
153.Nx
154system.
155If set, special options are passed to the compilation tools to
156prevent their default use of the host system's
157.Sy /usr/include , /usr/lib ,
158and so forth.
159This pathname should
160.Em not
161end with a slash
162.Pq /
163character (for installation into the system's root directory, set
164.Sy DESTDIR
165to an empty string).
166The directory must reside on a file system which supports long file
167names and hard links.
168.DFLT
169Empty string if
170.Sy USETOOLS
171is
172.Dq yes ;
173unset otherwise.
174.Pp
175.Em Note :
176.Sy build.sh
177will provide a default of
178.Pa destdir. Ns Sy MACHINE
179(in the top-level
180.Sy .OBJDIR )
181unless run in
182.Sq expert
183mode
184.
185.It Sy KERNEL_DIR No Pq experimental
186.YorN
187Indicates if a top-level directory
188.Sy /netbsd/
189is created.
190If
191.Dq yes ,
192the directory will contain a kernel file
193.Pa /netbsd/kernel
194and a corresponding modules directory
195.Pa /netbsd/modules/ .
196System bootstrap procedures will be modified to search for the kernel
197and modules in the
198.Pa /netbsd/
199directory.
200This is intended to simplify system upgrade and rollback procedures by
201keeping the kernel and its associated modules together in one place.
202.Pp
203If
204.Dq no ,
205the kernel file will be stored in
206.Pa /netbsd
207and the modules will be stored within the
208.Pa /stand/${ARCH}/
209directory hierarchy.
210.Pp
211The
212.Sy KERNEL_DIR
213option is a work-in-progress, and is highly experimental.
214It is also subject to change without notice.
215.DFLTn
216.It Sy MAKEVERBOSE
217Level of verbosity of status messages.
218Supported values:
219.Bl -tag -width xxx
220.It 0
221No descriptive messages or commands executed by
222.Xr make 1
223are shown.
224.It 1
225Brief messages are shown describing what is being done,
226but the actual commands executed by
227.Xr make 1
228are not displayed.
229.It 2
230Descriptive messages are shown as above (prefixed with a
231.Sq # ) ,
232and ordinary commands performed by
233.Xr make 1
234are displayed.
235.It 3
236In addition to the above, all commands performed by
237.Xr make 1
238are displayed, even if they would ordinarily have been hidden
239through use of the
240.Dq \&@
241prefix in the relevant makefile.
242.It 4
243In addition to the above, commands executed by
244.Xr make 1
245are traced through use of the
246.Xr sh 1
247.Dq Fl x
248flag.
249.El
250.DFLT
2512
252.
253.It Sy MKATF
254.YorN
255Indicates whether the Automated Testing Framework is built and installed.
256This also controls whether the
257.Nx
258test suite is built and installed,
259as the tests rely on ATF and cannot be built without it.
260.DFLTy
261.
262.It Sy MKBINUTILS
263.YorN
264Indicates whether any of the binutils tools or libraries should be built.
265That is, the libraries
266.Sy libbfd ,
267.Sy libiberty ,
268or any of the things that depend upon them, e.g.
269.Xr as 1 ,
270.Xr ld 1 ,
271.Xr dbsym 8 ,
272or
273.Xr mdsetimage 8 .
274.DFLTy
275.
276.It Sy MKBSDTAR
277.YorN
278If
279.Dq yes ,
280.Sy libarchive Ns - Ns
281based implementations of
282.Xr cpio 1
283and
284.Xr tar 1
285are built and installed.
286If
287.Dq no ,
288.Xr pax 1
289based frontends are used.
290.DFLTy
291.
292.It Sy MKCATPAGES
293.YorN
294Indicates whether preformatted plaintext manual pages will be created
295and installed.
296.DFLTn
297.
298.It Sy MKCLEANSRC
299.YorN
300Indicates whether
301.Sq "make clean"
302and
303.Sq "make cleandir"
304will delete file names in
305.Sy CLEANFILES
306or
307.Sy CLEANDIRFILES
308from both the object directory,
309.Sy .OBJDIR ,
310and the source directory,
311.Sy .SRCDIR .
312.Pp
313If
314.Dq yes ,
315then these file names will be deleted relative to both
316.Sy .OBJDIR
317and
318.Sy .CURDIR .
319If
320.Dq no ,
321then the deletion will be performed relative to
322.Sy .OBJDIR
323only.
324.DFLTy
325.
326.It Sy MKCLEANVERIFY
327.YorN
328Controls whether
329.Sq "make clean"
330and
331.Sq "make cleandir"
332will verify that files have been deleted.
333If
334.Dq yes ,
335then file deletions will be verified using
336.Xr ls 1 .
337If
338.Dq no ,
339then file deletions will not be verified.
340.DFLTy
341.
342.It Sy MKCOMPAT
343.YorN
344Indicates whether support for multiple ABIs is to be built and
345installed.
346.DFLTy
347on amd64, mips64 and sparc64,
348.Dq no
349on other architectures.
350.
351.It Sy MKCOMPLEX
352.YorN
353Indicates whether the
354.Lb libm
355is compiled with support for
356.In complex.h .
357.DFLTy
358.
359.It Sy MKCTF
360.YorN
361Indicates whether CTF tools are to be built and installed.
362If yes, the tools will be used to generate and manipulate
363CTF data of ELF binaries during build.
364.DFLTn
365.
366.It Sy MKCVS
367.YorN
368Indicates whether
369.Xr cvs 1
370is built.
371.DFLTy
372.
373.It Sy MKDEBUG
374.YorN
375Indicates whether separate debugging symbols should be installed into
376.Sy DESTDIR Ns Pa /usr/libdata/debug .
377.DFLTn
378.
379.It Sy MKDEBUGKERNEL
380.YorN
381Indicates whether debugging symbols will be built for kernels
382by default; pretend as if
383.Em makeoptions DEBUG="-g"
384is specified in kernel configuration files.
385This will also put the debug kernel in the kernel sets.
386See
387.Xr options 4
388for details.
389.DFLTn
390.
391.It Sy MKDEBUGLIB
392.YorN
393Indicates whether debug libraries
394.Sy ( lib*_g.a )
395will be built and installed.
396Debug libraries are compiled with
397.Dq Li -g -DDEBUG .
398.DFLTn
399.
400.It Sy MKDEBUGTOOLS
401.YorN
402Indicates whether debug information
403.Sy ( lib*_g.a )
404will be included in the build toolchain.
405.DFLTn
406.
407.It Sy MKDOC
408.YorN
409Indicates whether system documentation destined for
410.Sy DESTDIR Ns Pa /usr/share/doc
411will be installed.
412.DFLTy
413.
414.It Sy MKDTRACE
415.YorN
416Indicates whether the kernel modules, utilities and libraries for
417.Xr dtrace 1
418support are to be built and installed.
419.DFLTn
420.
421.It Sy MKDYNAMICROOT
422.YorN
423Indicates whether all programs should be dynamically linked,
424and to install shared libraries required by
425.Pa /bin
426and
427.Pa /sbin
428and the shared linker
429.Xr ld.elf_so 1
430into
431.Pa /lib .
432If
433.Sq no ,
434link programs in
435.Pa /bin
436and
437.Pa /sbin
438statically.
439.DFLTy
440.
441.It Sy MKGCC
442.YorN
443Indicates whether
444.Xr gcc 1
445or any related libraries
446.Pq Sy libg2c , libgcc , libobjc , libstdc++
447are built.
448.DFLTy
449.
450.It Sy MKGCCCMDS
451.YorN
452Indicates whether
453.Xr gcc 1
454is built.
455If
456.Dq no ,
457then
458.Sy MKGCC
459controls if the
460GCC libraries are built.
461.DFLTy
462.
463.It Sy MKGDB
464.YorN
465Indicates whether
466.Xr gdb 1
467is built.
468.DFLTy
469.
470.It Sy MKHESIOD
471.YorN
472Indicates whether the Hesiod infrastructure
473(libraries and support programs) is built and installed.
474.DFLTy
475.
476.It Sy MKHOSTOBJ
477.YorN
478If set to
479.Dq yes ,
480then for programs intended to be run on the compile host,
481the name, release, and architecture of the host operating system
482will be suffixed to the name of the object directory created by
483.Dq make obj .
484(This allows multiple host systems to compile
485.Nx
486for a single target.)
487If set to
488.Dq no ,
489then programs built to be run on the compile host will use the same
490object directory names as programs built to be run on the target.
491.DFLTn
492.
493.It Sy MKHTML
494.YorN
495Indicates whether the HTML manual pages are created and installed.
496.DFLTy
497.
498.It Sy MKIEEEFP
499.YorN
500Indicates whether code for IEEE754/IEC60559 conformance is built.
501Has no effect on most platforms.
502.DFLTy
503.
504.It Sy MKINET6
505Indicates whether INET6 (IPv6) infrastructure
506(libraries and support programs) is built and installed.
507.DFLTy
508.
509.It Sy MKINFO
510.YorN
511Indicates whether GNU Info files, used for the documentation for
512most of the compilation tools, will be built and installed.
513.DFLTy
514.
515.It Sy MKIPFILTER
516.YorN
517Indicates whether the
518.Xr ipf 4
519programs, headers and other components will be built and installed.
520.DFLTy
521.
522.It Sy MKISCSI
523.YorN
524Indicates whether the iSCSI library and applications are
525built and installed.
526.DFLTy
527.
528.It Sy MKKERBEROS
529.YorN
530Indicates whether the Kerberos v5 infrastructure
531(libraries and support programs) is built and installed.
532Caution: the default
533.Xr pam 8
534configuration requires that Kerberos be present even if not used.
535Do not install a userland without Kerberos without also either
536updating the
537.Xr pam.conf 5
538files or disabling PAM via
539.Sy MKPAM .
540Otherwise all logins will fail.
541.DFLTy
542.
543.It Sy MKKMOD
544.YorN
545Indicates whether kernel modules are built and installed.
546.DFLTy
547.
548.It Sy MKKYUA
549.YorN
550Indicates whether Kyua (the testing infrastructure used by
551.Nx )
552is built and installed.
553Note that
554.Em this does not control the installation of the tests themselves .
555The tests rely on the ATF libraries and therefore their build is controlled
556by the
557.Sy MKATF
558knob.
559.DFLTn
560until the import of Kyua is done and validated.
561.
562.It Sy MKLDAP
563.YorN
564Indicates whether the Lightweight Directory Access Protocol (LDAP)
565infrastructure
566(libraries and support programs) is built and installed.
567.DFLTy
568.
569.It Sy MKLINKLIB
570.YorN
571Indicates whether all of the shared library infrastructure is built.
572If
573.Sq no ,
574prevents:
575installation of the
576.Sy *.a
577libraries,
578installation of the
579.Sy *_pic.a
580libraries on PIC systems,
581building of
582.Sy *.a
583libraries on PIC systems,
584or
585installation of
586.Sy .so
587symlinks on ELF systems.
588.DFLTy
589.Pp
590If
591.Dq no ,
592acts as
593.Sy MKPICINSTALL=no MKPROFILE=no .
594.
595.It Sy MKLINT
596.YorN
597Indicates whether
598.Xr lint 1
599will be run against portions of the
600.Nx
601source code during the build, and whether lint libraries will be
602installed into
603.Sy DESTDIR Ns Pa /usr/libdata/lint .
604.DFLTy
605.
606.It Sy MKLVM
607.YorN
608If not
609.Dq no ,
610build and install the logical volume manager.
611.DFLTy
612.
613.It Sy MKMAN
614.YorN
615Indicates whether manual pages will be installed.
616.DFLTy
617.Pp
618If
619.Dq no ,
620acts as
621.Sy MKCATPAGES=no MKHTML=no .
622.
623.It Sy MKMANZ
624.YorN
625Indicates whether manual pages should be compressed with
626.Xr gzip 1
627at installation time.
628.DFLTn
629.
630.It Sy MKMDNS
631.YorN
632Indicates whether the mDNS (Multicast DNS) infrastructure
633(libraries and support programs) is built and installed.
634.DFLTy
635.
636.It Sy MKNLS
637.YorN
638Indicates whether Native Language System (NLS) locale zone files will be
639built and installed.
640.DFLTy
641.
642.It Sy MKNOUVEAUFIRMWARE
643.YorN
644Indicates whether to install the
645.Pa /libdata/firmware/nouveau
646directory, which is necessary for the nvidia DRM driver.
647.DFLT
648Platform dependent.
649.
650.It Sy MKNPF
651.YorN
652Indicates whether the NPF packet filter is to be built and installed.
653.DFLTy
654.
655.It Sy MKOBJ
656.YorN
657Indicates whether object directories will be created when running
658.Dq make obj .
659If set to
660.Dq no ,
661then all built files will be located inside the regular source tree.
662.DFLTy
663.Pp
664If
665.Dq no ,
666acts as
667.Sy MKOBJDIRS=no .
668.
669.It Sy MKOBJDIRS
670.YorN
671Indicates whether object directories will be created automatically
672(via a
673.Dq make obj
674pass) at the start of a build.
675.DFLTn
676.
677.It Sy MKPAM
678.YorN
679Indicates whether the
680.Xr pam 8
681framework (libraries and support files) is built.
682The pre-PAM code is not supported and may be removed in the future.
683.DFLTy
684.
685.It Sy MKPCC
686.YorN
687Indicates whether
688.Xr pcc 1
689or any related libraries
690.Pq Sy libpcc , libpccsoftfloat
691are built.
692.DFLTn
693.
694.It Sy MKPF
695.YorN
696Indicates whether the
697.Xr pf 4
698programs, headers and LKM will be built and installed.
699.DFLTy
700.
701.It Sy MKPIC
702.YorN
703Indicates whether shared objects and libraries will be created and
704installed.
705If set to
706.Dq no ,
707the entire built system will be statically linked.
708.DFLT
709Platform dependent.
710As of this writing, all platforms except
711.Sy m68000
712default to
713.Dq yes .
714.Pp
715If
716.Dq no ,
717acts as
718.Sy MKPICLIB=no .
719.
720.It Sy MKPICINSTALL
721.YorN
722Indicates whether the
723.Xr ar 1
724format libraries
725.Sy ( lib*_pic.a ) ,
726used to generate shared libraries, are installed.
727.DFLTy
728.
729.It Sy MKPICLIB
730.YorN
731Indicates whether the
732.Xr ar 1
733format libraries
734.Sy ( lib*_pic.a ) ,
735used to generate shared libraries.
736.DFLTy
737.
738.It Sy MKPIE
739Indicates whether Position Independent Executables (PIE)
740are built and installed.
741.DFLT
742Platform dependent.
743.
744.It Sy MKPIGZGZIP
745.YorN
746If
747.Dq no ,
748the
749.Xr pigz 1
750utility is not installed as
751.Xr gzip 1 .
752.DFLTn
753.
754.It Sy MKPOSTFIX
755.YorN
756Indicates whether Postfix is built.
757.DFLTy
758.
759.It Sy MKPROFILE
760.YorN
761Indicates whether profiled libraries
762.Sy ( lib*_p.a )
763will be built and installed.
764.DFLT
765.Dq yes ;
766however, some platforms turn off
767.Sy MKPROFILE
768by default at times due to toolchain problems with profiled code.
769.
770.It Sy MKREPRO
771.YorN
772Indicates whether builds are to be reproducible.
773If
774.Dq yes ,
775two builds from the same source tree will produce the same build
776results.
777.DFLTn
778.
779.It Sy MKRADEONFIRMWARE
780.YorN
781Indicates whether to install the
782.Pa /libdata/firmware/radeon
783directory, which is necessary for the radeon DRM driver.
784.DFLT
785Platform dependent.
786.
787.It Sy MKRELRO
788If
789.Dq partial ,
790set the non-PLT GOT to read-only.
791If
792.Dq full ,
793also force immediate symbol binding.
794.DFLT
795Platform dependent.
796.
797.It Sy MKRUMP
798.YorN
799Indicates whether the
800.Xr rump 3
801headers, libraries and programs are to be installed.
802.DFLTy
803.
804.It Sy MKSHARE
805.YorN
806Indicates whether files destined to reside in
807.Sy DESTDIR Ns Pa /usr/share
808will be built and installed.
809.DFLTy
810.Pp
811If
812.Dq no ,
813acts as
814.Sy MKCATPAGES=no MKDOC=no MKINFO=no MKHTML=no MKMAN=no MKNLS=no .
815.
816.It Sy MKSKEY
817.YorN
818Indicates whether the S/key infrastructure
819(libraries and support programs) is built.
820.DFLTy
821.
822.It Sy MKSOFTFLOAT
823.YorN
824Indicates whether the compiler generates output containing
825library calls for floating point and possibly soft-float library
826support.
827.DFLTn
828.
829.It Sy MKSTATICLIB
830.YorN
831Indicates whether the normal static libraries
832.Sy ( lib*_g.a )
833will be built and installed.
834.DFLTy
835.
836.It Sy MKSTRIPIDENT
837.YorN
838Indicates whether RCS IDs, for use with
839.Xr ident 1 ,
840should be stripped from program binaries and shared libraries.
841.DFLTn
842.
843.It Sy MKSTRIPSYM
844.YorN
845Indicates whether all local symbols should be stripped from shared libraries.
846If
847.Dq yes ,
848strip all local symbols from shared libraries;
849the affect is equivalent to the
850.Fl x
851option of
852.Xr ld 1 .
853If
854.Dq no ,
855strip only temporary local symbols; the affect is equivalent
856to the
857.Fl X
858option of
859.Xr ld 1 .
860Keeping non-temporary local symbols
861such as static function names is useful on using DTrace for
862userland libraries and getting a backtrace from a rump kernel
863loading shared libraries.
864.DFLTy
865.
866.It Sy MKUNPRIVED
867.YorN
868Indicates whether an unprivileged install will occur.
869The user, group, permissions, and file flags, will not be set on
870the installed item; instead the information will be appended to
871a file called
872.Pa METALOG
873in
874.Sy DESTDIR .
875The contents of
876.Pa METALOG
877is used during the generation of the distribution tar files to ensure
878that the appropriate file ownership is stored.
879.DFLTn
880.
881.It Sy MKUPDATE
882.YorN
883Indicates whether all install operations intended to write to
884.Sy DESTDIR
885will compare file timestamps before installing, and skip the install
886phase if the destination files are up-to-date.
887This also has implications on full builds (see next subsection).
888.DFLTn
889.
890.It Sy MKX11
891.YorN
892Indicates whether X11 is built and installed
893(by descending into
894.Pa src/external/mit/xorg ) .
895.DFLTn
896.
897.It Sy MKX11FONTS
898.YorN
899If
900.Dq no ,
901do not build and install the X fonts.
902.DFLTy
903.
904.It Sy X11MOTIFPATH
905Location of the Motif installation to use if setting
906.Sy MKX11MOTIF
907to
908.Dq yes .
909.DFLT
910.Pa /usr/pkg
911.
912.It Sy MKX11MOTIF
913.YorN
914If
915.Dq yes ,
916build the native Xorg libGLw with Motif stubs.
917Requires that Motif can be found via
918.Sy X11MOTIFPATH .
919.DFLTn
920.
921.It Sy MKYP
922.YorN
923Indicates whether the YP (NIS) infrastructure
924(libraries and support programs) is built.
925.DFLTy
926.
927.It Sy MKZFS
928.YorN
929Indicates whether the ZFS kernel module and the utilities and
930libraries used to manage the ZFS system are to be built.
931.DFLTy
932on amd64,
933.Dq no
934on other architectures.
935.
936.It Sy OBJMACHINE
937If defined, creates objdirs of the form
938.Pa obj. Ns Sy MACHINE ,
939where
940.Sy MACHINE
941is the current architecture (as per
942.Sq "uname -m" ) .
943.
944.It Sy RELEASEDIR
945If set, specifies the directory to which a
946.Xr release 7
947layout will be written at the end of a
948.Dq make release .
949.DFLTu
950.Pp
951.Em Note :
952.Sy build.sh
953will provide a default of
954.Pa releasedir
955(in the top-level
956.Sy .OBJDIR )
957unless run in
958.Sq expert
959mode
960.
961.It Sy TOOLDIR
962Directory to hold the host tools, once built.
963This directory should be unique to a given host system and
964.Nx
965source tree.
966(However, multiple targets may share the same
967.Sy TOOLDIR ;
968the target-dependent files have unique names.)
969If unset, a default based
970on the
971.Xr uname 1
972information of the host platform will be created in the
973.Sy .OBJDIR
974of
975.Pa src .
976.DFLTu
977.
978.It Sy USE_FORT
979Indicates whether the so-called
980.Dq FORTIFY_SOURCE
981.Xr security 7
982extensions are enabled; see
983.Xr ssp 3
984for details.
985This imposes some performance penalty.
986.DFLTn
987.
988.It Sy USE_HESIOD
989.YorN
990Indicates whether Hesiod support is
991enabled in the various applications that support it.
992If
993.Sy MKHESIOD=no ,
994.Sy USE_HESIOD
995will also be forced to
996.Dq no .
997.DFLTy
998.
999.It Sy USE_INET6
1000.YorN
1001Indicates whether INET6 (IPv6) support is
1002enabled in the various applications that support it.
1003If
1004.Sy MKINET6=no ,
1005.Sy USE_INET6
1006will also be forced to
1007.Dq no .
1008.DFLTy
1009.
1010.It Sy USE_JEMALLOC
1011.YorN
1012Indicates whether the
1013.Em jemalloc
1014allocator
1015.Pq which is designed for improved performance with threaded applications
1016is used instead of the
1017.Em phkmalloc
1018allocator
1019.Pq that was the default until Nx 5.0 .
1020.DFLTy
1021.
1022.It Sy USE_KERBEROS
1023.YorN
1024Indicates whether Kerberos v5 support is
1025enabled in the various applications that support it.
1026If
1027.Sy MKKERBEROS=no ,
1028.Sy USE_KERBEROS
1029will also be forced to
1030.Dq no .
1031.DFLTy
1032.
1033.It Sy USE_LDAP
1034.YorN
1035Indicates whether LDAP support is
1036enabled in the various applications that support it.
1037If
1038.Sy MKLDAP=no ,
1039.Sy USE_LDAP
1040will also be forced to
1041.Dq no .
1042.DFLTy
1043.
1044.It Sy USE_PAM
1045.YorN
1046Indicates whether
1047.Xr pam 8
1048support is enabled in the various applications that support it.
1049If
1050.Sy MKPAM=no ,
1051.Sy USE_PAM
1052will also be forced to
1053.Dq no .
1054.DFLTy
1055.
1056.It Sy USE_SKEY
1057.YorN
1058Indicates whether S/key support is
1059enabled in the various applications that support it.
1060If
1061.Sy MKSKEY=no ,
1062.Sy USE_SKEY
1063will also be forced to
1064.Dq no .
1065.DFLTy
1066.Pp
1067This is mutually exclusive to
1068.Sy USE_PAM!=no .
1069.
1070.It Sy USE_SSP
1071.YorN
1072Indicates whether GCC stack-smashing protection (SSP) support,
1073which detects stack overflows and aborts the program,
1074is enabled.
1075This imposes some performance penalty.
1076.DFLTy
1077.
1078.It Sy USE_YP
1079.YorN
1080Indicates whether YP (NIS) support is
1081enabled in the various applications that support it.
1082If
1083.Sy MKYP=no ,
1084.Sy USE_YP
1085will also be forced to
1086.Dq no .
1087.DFLTy
1088.
1089.It Sy USETOOLS
1090Indicates whether the tools specified by
1091.Sy TOOLDIR
1092should be used as part of a build in progress.
1093Must be set to
1094.Dq yes
1095if cross-compiling.
1096.Bl -tag -width "never"
1097.It Sy yes
1098Use the tools from
1099.Sy TOOLDIR .
1100.It Sy no
1101Do not use the tools from
1102.Sy TOOLDIR ,
1103but refuse to build native compilation tool components that are
1104version-specific for that tool.
1105.It Sy never
1106Do not use the tools from
1107.Sy TOOLDIR ,
1108even when building native tool components.
1109This is similar to the traditional
1110.Nx
1111build method, but does
1112.Em not
1113verify that the compilation tools in use are up-to-date enough in order
1114to build the tree successfully.
1115This may cause build or runtime problems when building the whole
1116.Nx
1117source tree.
1118.El
1119.DFLT
1120.Dq yes
1121if building all or part of a whole
1122.Nx
1123source tree (detected automatically);
1124.Dq no
1125otherwise (to preserve traditional semantics of the
1126.Aq bsd.*.mk
1127.Xr make 1
1128include files).
1129.
1130.El
1131.
1132.Ss pkgsrc system variables
1133.
1134Please see the pkgsrc guide at
1135.Lk http://www.netbsd.org/Documentation/pkgsrc/
1136or
1137.Pa pkgsrc/doc/pkgsrc.txt
1138for more variables used internally by the package system and
1139.Pa ${PKGSRCDIR}/mk/defaults/mk.conf
1140for package-specific examples.
1141.
1142.Sh FILES
1143.Bl -tag -width /etc/mk.conf
1144.
1145.It Pa /etc/mk.conf
1146This file.
1147.
1148.It Pa ${PKGSRCDIR}/mk/defaults/mk.conf
1149Examples for settings regarding the pkgsrc collection.
1150.El
1151.
1152.Sh SEE ALSO
1153.Xr make 1 ,
1154.Pa /usr/share/mk/bsd.README ,
1155.Pa pkgsrc/doc/pkgsrc.txt ,
1156.Lk http://www.netbsd.org/Documentation/pkgsrc/
1157.Sh HISTORY
1158The
1159.Nm
1160file appeared in
1161.Nx 1.2 .
1162