1 .\" $NetBSD: mk.conf.5,v 1.49 2009/09/08 07:54:49 wiz Exp $
3 .\" Copyright (c) 1999-2003 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
6 .\" This code is derived from software contributed to The NetBSD Foundation
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
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.
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.
33 .\" turn off hyphenation
38 .Nd make configuration file
43 file overrides various parameters used during the build of the system.
47 variables that may be set, the values to which each may be set,
48 a brief description of what each variable does, and a reference to
49 relevant manual pages.
51 .Ss NetBSD System variables
75 .Bl -tag -width MKDYNAMICROOT
78 The path to the top level of the
83 is run from within the
85 source tree, the default is the top
86 level of that tree (as determined by the presence of
113 checks that the targets in the source directories are up-to-date and
114 re-makes them if they are out of date, instead of blindly trying to install
115 out of date or non-existent targets.
119 Identifier for the build.
120 The identifier will be appended to
121 object directory names, and can be consulted in the
123 configuration file in order to set additional build parameters,
124 such as compiler flags.
128 Extra options for the C compiler.
129 Should be appended to (e.g.,
131 rather than explicitly set.
137 compiler flags that select CPU-related options.
140 should never be set in
144 Additional flags passed to the compiler/assembler to select
145 CPU instruction set options, CPU tuning options, etc.
146 Such options should not be specified in
148 because some parts of the build process need to override
149 CPU-related compiler options.
152 Directory to contain the built
155 If set, special options are passed to the compilation tools to
156 prevent their default use of the host system's
157 .Sy /usr/include , /usr/lib ,
163 character (for installation into the system's root directory, set
166 The directory must reside on a file system which supports long file
167 names and hard links.
177 will provide a default of
178 .Pa destdir. Ns Sy MACHINE
186 Level of verbosity of status messages.
190 No descriptive messages or commands executed by
194 Brief messages are shown describing what is being done,
195 but the actual commands executed by
199 Descriptive messages are shown as above (prefixed with a
201 and ordinary commands performed by
205 In addition to the above, all commands performed by
207 are displayed, even if they would ordinarily have been hidden
210 prefix in the relevant makefile.
212 In addition to the above, commands executed by
214 are traced through use of the
224 Indicates whether the Automated Testing Framework is built and installed.
229 Indicates whether any of the binutils tools or libraries should be built.
230 That is, the libraries
233 or any of the things that depend upon them, e.g.
243 Indicates whether preformatted plaintext manual pages will be created
249 Indicates whether the
251 is compiled with support for
257 Indicates whether cryptographic code will be included in a build;
258 provided for the benefit of countries that do not allow strong
260 Will not affect use of the standard low-security password encryption system,
271 Indicates whether IDEA support will be built into
272 .Sy libcrypto_idea.a .
277 Indicates whether MDC2 support will be built into
278 .Sy libcrypto_mdc2.a .
283 Indicates whether RC5 support will be built into
284 .Sy libcrypto_rc5.a .
296 Indicates whether separate debugging symbols should be installed into
297 .Sy DESTDIR Ns Pa /usr/libdata/debug .
302 Indicates whether debug libraries
304 will be built and installed.
305 Debug libraries are compiled with
311 Indicates whether system documentation destined for
312 .Sy DESTDIR Ns Pa /usr/share/doc
318 Indicates whether all programs should be dynamically linked,
319 and to install shared libraries required by
323 and the shared linker
340 or any related libraries
341 .Pq Sy libg2c , libgcc , libobjc , libstdc++
355 GCC libraries are built.
367 Indicates whether the Hesiod infrastructure
368 (libraries and support programs) is built and installed.
375 then for programs intended to be run on the compile host,
376 the name, release, and architecture of the host operating system
377 will be suffixed to the name of the object directory created by
379 (This allows multiple host systems to compile
381 for a single target.)
384 then programs built to be run on the compile host will use the same
385 object directory names as programs built to be run on the target.
390 Indicates whether the HTML manual pages are created and installed.
395 Indicates whether code for IEEE754/IEC60559 conformance is built.
396 Has no effect on most platforms.
400 Indicates whether INET6 (IPv6) infrastructure
401 (libraries and support programs) is built and installed.
406 Indicates whether GNU Info files, used for the documentation for
407 most of the compilation tools, will be built and installed.
412 Indicates whether the
414 programs, headers and other components will be built and installed.
419 Indicates whether the iSCSI library and applications are
425 Indicates whether the Kerberos v5 infrastructure
426 (libraries and support programs) is built and installed.
431 Indicates whether the Lightweight Directory Access Protocol (LDAP)
433 (libraries and support programs) is built and installed.
438 Indicates whether all of the shared library infrastructure is built.
447 libraries on PIC systems,
450 libraries on PIC systems,
454 symlinks on ELF systems.
460 .Sy MKPICINSTALL=no MKPROFILE=no .
466 will be run against portions of the
468 source code during the build, and whether lint libraries will be
470 .Sy DESTDIR Ns Pa /usr/libdata/lint .
475 Indicates whether manual pages will be installed.
481 .Sy MKCATPAGES=no MKHTML=no .
485 Indicates whether manual pages should be compressed with
487 at installation time.
492 Indicates whether the mDNS (Multicast DNS) infrastructure
493 (libraries and support programs) is built and installed.
498 Indicates whether Native Language System (NLS) locale zone files will be
504 Indicates whether object directories will be created when running
508 then all built files will be located inside the regular source tree.
518 Indicates whether object directories will be created automatically
521 pass) at the start of a build.
526 Indicates whether the
528 framework (libraries and support files) is built.
529 The pre-PAM code is not supported and may be removed in the future.
536 or any related libraries
537 .Pq Sy libpcc , libpccsoftfloat
551 PCC libraries are built.
556 Indicates whether the
558 programs, headers and LKM will be built and installed.
563 Indicates whether shared objects and libraries will be created and
567 the entire built system will be statically linked.
570 As of this writing, all platforms except
584 Indicates whether the
588 used to generate shared libraries, are installed.
593 Indicates whether the
597 used to generate shared libraries.
601 Indicates whether Position Independent Executables (PIE)
602 are built and installed.
607 Indicates whether Postfix is built.
612 Indicates whether profiled libraries
614 will be built and installed.
617 however, some platforms turn off
619 by default at times due to toolchain problems with profiled code.
623 Indicates whether files destined to reside in
624 .Sy DESTDIR Ns Pa /usr/share
625 will be built and installed.
631 .Sy MKCATPAGES=no MKDOC=no MKINFO=no MKHTML=no MKMAN=no MKNLS=no .
635 Indicates whether the S/key infrastructure
636 (libraries and support programs) is built.
641 Indicates whether the compiler generates output containing
642 library calls for floating point and possibly soft-float library
648 Indicates whether the normal static libraries
650 will be built and installed.
655 Indicates whether program binaries and shared libraries should be built
656 to include RCS IDs for use with
662 Indicates whether an unprivileged install will occur.
663 The user, group, permissions, and file flags, will not be set on
664 the installed item; instead the information will be appended to
671 is used during the generation of the distribution tar files to ensure
672 that the appropriate file ownership is stored.
677 Indicates whether all install operations intended to write to
679 will compare file timestamps before installing, and skip the install
680 phase if the destination files are up-to-date.
681 This also has implications on full builds (see next subsection).
686 Indicates whether X11 is built and installed
690 .Pa src/external/mit/xorg
691 depending on the value of
698 Indicates whether the YP (NIS) infrastructure
699 (libraries and support programs) is built.
703 If defined, creates objdirs of the form
704 .Pa obj. Ns Sy MACHINE ,
707 is the current architecture (as per
711 If set, specifies the directory to which a
713 layout will be written at the end of a
719 will provide a default of
728 Directory to hold the host tools, once built.
729 This directory should be unique to a given host system and
732 (However, multiple targets may share the same
734 the target-dependent files have unique names.)
735 If unset, a default based
738 information of the host platform will be created in the
746 Indicates whether Hesiod support is
747 enabled in the various applications that support it.
751 will also be forced to
757 Indicates whether INET6 (IPv6) support is
758 enabled in the various applications that support it.
762 will also be forced to
768 Indicates whether the
771 .Pq which is designed for improved performance with threaded applications
772 is used instead of the
775 .Pq that was the default until Nx 5.0 .
780 Indicates whether Kerberos v5 support is
781 enabled in the various applications that support it.
785 will also be forced to
791 Indicates whether LDAP support is
792 enabled in the various applications that support it.
796 will also be forced to
804 support is enabled in the various applications that support it.
808 will also be forced to
814 Indicates whether S/key support is
815 enabled in the various applications that support it.
819 will also be forced to
823 This is mutually exclusive to
828 Indicates whether GCC stack-smashing protection (SSP) support,
829 which detects stack overflows and aborts the program,
831 This imposes some performance penalty.
836 Indicates whether YP (NIS) support is
837 enabled in the various applications that support it.
841 will also be forced to
846 Indicates whether the tools specified by
848 should be used as part of a build in progress.
852 .Bl -tag -width "never"
857 Do not use the tools from
859 but refuse to build native compilation tool components that are
860 version-specific for that tool.
862 Do not use the tools from
864 even when building native tool components.
865 This is similar to the traditional
867 build method, but does
869 verify that the compilation tools in use are up-to-date enough in order
870 to build the tree successfully.
871 This may cause build or runtime problems when building the whole
877 if building all or part of a whole
879 source tree (detected automatically);
881 otherwise (to preserve traditional semantics of the
887 Picks which X11 distribution to cross-build with
898 on alpha, i386, macppc, shark and sparc64 platforms.
904 .Ss pkgsrc system variables
906 Please see the pkgsrc guide at
907 .Pa http://www.netbsd.org/Documentation/pkgsrc/
909 .Pa pkgsrc/doc/pkgsrc.txt
910 for more variables used internally by the package system and
911 .Pa ${PKGSRCDIR}/mk/defaults/mk.conf
912 for package-specific examples.
915 .Bl -tag -width /etc/mk.conf
920 .It Pa ${PKGSRCDIR}/mk/defaults/mk.conf
921 Examples for settings regarding the pkgsrc collection.
926 .Pa /usr/share/mk/bsd.README ,
927 .Pa pkgsrc/doc/pkgsrc.txt ,
928 .Pa http://www.netbsd.org/Documentation/pkgsrc/