MK.CONF(5)                NetBSD File Formats Manual                MK.CONF(5)

NAME
     mk.conf -- make configuration file

DESCRIPTION
     The mk.conf file overrides various parameters used during the build of
     the system.

     Listed below are the mk.conf variables that may be set, the values to
     which each may be set, a brief description of what each variable does,
     and a reference to relevant manual pages.

   NetBSD System variables
     NETBSDSRCDIR   The path to the top level of the NetBSD sources.  If
                    make(1) is run from within the NetBSD source tree, the
                    default is the top level of that tree (as determined by
                    the presence of build.sh and tools/), otherwise BSDSRCDIR
                    will be used.

     BSDOBJDIR      The real path to the `obj' tree for the NetBSD source
                    tree.

                    Default: /usr/obj

     BSDSRCDIR      The real path to the NetBSD source tree.

                    Default: /usr/src

     BUILD          If defined, `make install' checks that the targets in the
                    source directories are up-to-date and re-makes them if
                    they are out of date, instead of blindly trying to install
                    out of date or non-existent targets.

                    Default: Unset.

     BUILDID        Identifier for the build.  The identifier will be appended
                    to object directory names, and can be consulted in the
                    make(1) configuration file in order to set additional
                    build parameters, such as compiler flags.

                    Default: Unset.

     COPTS          Extra options for the C compiler.  Should be appended to
                    (e.g., COPTS+=-g), rather than explicitly set.  Note that
                    CPUFLAGS, not COPTS, should be used for compiler flags
                    that select CPU-related options.  Also note that CFLAGS
                    should never be set in mk.conf.

     CPUFLAGS       Additional flags passed to the compiler/assembler to
                    select CPU instruction set options, CPU tuning options,
                    etc.  Such options should not be specified in COPTS,
                    because some parts of the build process need to override
                    CPU-related compiler options.

     DESTDIR        Directory to contain the built NetBSD system.  If set,
                    special options are passed to the compilation tools to
                    prevent their default use of the host system's
                    /usr/include, /usr/lib, and so forth.  This pathname
                    should not end with a slash (/) character (for
                    installation into the system's root directory, set DESTDIR
                    to an empty string).  The directory must reside on a file
                    system which supports long file names and hard links.

                    Default: Empty string if USETOOLS is ``yes''; unset
                    otherwise.

                    Note: build.sh will provide a default of destdir.MACHINE
                    (in the top-level .OBJDIR) unless run in `expert' mode

     MAKEVERBOSE    Level of verbosity of status messages.  Supported values:

                    0    No descriptive messages are shown.

                    1    Descriptive messages are shown.

                    2    Descriptive messages (prefixed with a `#') and
                         command output is not suppressed.

                    Default: 2

     MKATF          Can be set to ``yes'' or ``no''.  Indicates whether the
                    Automated Testing Framework is built and installed.

                    Default: ``yes''

     MKBFD          Can be set to ``yes'' or ``no''.  Indicates whether
                    libbfd, libiberty, or any of the things that depend upon
                    them (such as the binutils, as(1), gdb(1), ld(1),
                    dbsym(8), or mdsetimage(8)) should be built.

                    Default: ``yes''

     MKCATPAGES     Can be set to ``yes'' or ``no''.  Indicates whether
                    preformatted plaintext manual pages will be created and
                    installed.

                    Default: ``yes''

     MKCOMPLEX      Can be set to ``yes'' or ``no''.  Indicates whether the
                    Math Library (libm, -lm) is compiled with support for
                    <complex.h>.

                    Default: ``yes''

     MKCRYPTO       Can be set to ``yes'' or ``no''.  Indicates whether
                    cryptographic code will be included in a build; provided
                    for the benefit of countries that do not allow strong
                    cryptography.  Will not affect use of the standard low-
                    security password encryption system, crypt(3).

                    Default: ``yes''

                    If ``no'', acts as MKKERBEROS=no.

     MKCRYPTO_IDEA  Can be set to ``yes'' or ``no''.  Indicates whether IDEA
                    support will be built into libcrypto_idea.a.

                    Default: ``no''

     MKCRYPTO_MDC2  Can be set to ``yes'' or ``no''.  Indicates whether MDC2
                    support will be built into libcrypto_mdc2.a.

                    Default: ``no''

     MKCRYPTO_RC5   Can be set to ``yes'' or ``no''.  Indicates whether RC5
                    support will be built into libcrypto_rc5.a.

                    Default: ``no''

     MKCVS          Can be set to ``yes'' or ``no''.  Indicates whether cvs(1)
                    is built.

                    Default: ``yes''

     MKDEBUG        Can be set to ``yes'' or ``no''.  Indicates whether
                    separate debugging symbols should be installed into
                    DESTDIR/usr/libdata/debug.

                    Default: ``no''

     MKDEBUGLIB     Can be set to ``yes'' or ``no''.  Indicates whether debug
                    libraries (lib*_g.a) will be built and installed.  Debug
                    libraries are compiled with ``-g -DDEBUG''.

                    Default: ``no''

     MKDOC          Can be set to ``yes'' or ``no''.  Indicates whether system
                    documentation destined for DESTDIR/usr/share/doc will be
                    installed.

                    Default: ``yes''

     MKDYNAMICROOT  Can be set to ``yes'' or ``no''.  Indicates whether all
                    programs should be dynamically linked, and to install
                    shared libraries required by /bin and /sbin and the shared
                    linker ld.elf_so(1) into /lib.  If `no', link programs in
                    /bin and /sbin statically.

     MKGCC          Can be set to ``yes'' or ``no''.  Indicates whether gcc(1)
                    or any related libraries (libg2c, libgcc, libobjc,
                    libstdc++) are built.

                    Default: ``yes''

     MKGCCCMDS      Can be set to ``yes'' or ``no''.  Indicates whether gcc(1)
                    is built.  If ``no'', then MKGCC controls if the GCC
                    libraries are built.

                    Default: ``yes''

     MKGDB          Can be set to ``yes'' or ``no''.  Indicates whether gdb(1)
                    is built.

                    Default: ``yes''

     MKHESIOD       Can be set to ``yes'' or ``no''.  Indicates whether the
                    Hesiod infrastructure (libraries and support programs) is
                    built and installed.

                    Default: ``yes''

     MKHOSTOBJ      Can be set to ``yes'' or ``no''.  If set to ``yes'', then
                    for programs intended to be run on the compile host, the
                    name, release, and architecture of the host operating
                    system will be suffixed to the name of the object
                    directory created by ``make obj''.  (This allows multiple
                    host systems to compile NetBSD for a single target.)  If
                    set to ``no'', then programs built to be run on the
                    compile host will use the same object directory names as
                    programs built to be run on the target.

                    Default: ``no''

     MKHTML         Can be set to ``yes'' or ``no''.  Indicates whether the
                    HTML manual pages are created and installed.

                    Default: ``yes''

     MKIEEEFP       Can be set to ``yes'' or ``no''.  Indicates whether code
                    for IEEE754/IEC60559 conformance is built.  Has no effect
                    on most platforms.

                    Default: ``yes''

     MKINET6        Indicates whether INET6 (IPv6) infrastructure (libraries
                    and support programs) is built and installed.

                    Default: ``yes''

     MKINFO         Can be set to ``yes'' or ``no''.  Indicates whether GNU
                    Info files, used for the documentation for most of the
                    compilation tools, will be built and installed.

                    Default: ``yes''

     MKIPFILTER     Can be set to ``yes'' or ``no''.  Indicates whether the
                    ipf(4) programs, headers and LKM will be built and
                    installed.

                    Default: ``yes''

     MKISCSI        Can be set to ``yes'' or ``no''.  Indicates whether the
                    iSCSI library and applications are built and installed.

                    Default: ``yes''

     MKKERBEROS     Can be set to ``yes'' or ``no''.  Indicates whether the
                    Kerberos v5 infrastructure (libraries and support
                    programs) is built and installed.

                    Default: ``yes''

     MKLDAP         Can be set to ``yes'' or ``no''.  Indicates whether the
                    Lightweight Directory Access Protocol (LDAP)
                    infrastructure (libraries and support programs) is built
                    and installed.

                    Default: ``yes''

     MKLINKLIB      Can be set to ``yes'' or ``no''.  Indicates whether all of
                    the shared library infrastructure is built.  If `no',
                    prevents: installation of the *.a libraries, installation
                    of the *_pic.a libraries on PIC systems, building of *.a
                    libraries on PIC systems, or installation of .so symlinks
                    on ELF systems.

                    Default: ``yes''

                    If ``no'', acts as MKPICINSTALL=no MKPROFILE=no.

     MKLINT         Can be set to ``yes'' or ``no''.  Indicates whether
                    lint(1) will be run against portions of the NetBSD source
                    code during the build, and whether lint libraries will be
                    installed into DESTDIR/usr/libdata/lint.

                    Default: ``yes''

     MKMAN          Can be set to ``yes'' or ``no''.  Indicates whether manual
                    pages will be installed.

                    Default: ``yes''

                    If ``no'', acts as MKCATPAGES=no MKHTML=no.

     MKMANZ         Can be set to ``yes'' or ``no''.  Indicates whether manual
                    pages should be compressed with gzip(1) at installation
                    time.

                    Default: ``no''

     MKMODULAR      Can be set to ``yes'' or ``no''.  Indicates whether
                    support for the new kernel modules framework should be
                    built.  This will install new versions of modload(8),
                    modstat(8) and modunload(8) that will not work with the
                    ones used to manage LKMs.  You will also need a kernel
                    built with options MODULAR for this to be useful.

                    Default: ``no''

     MKNLS          Can be set to ``yes'' or ``no''.  Indicates whether Native
                    Language System (NLS) locale zone files will be built and
                    installed.

                    Default: ``yes''

     MKOBJ          Can be set to ``yes'' or ``no''.  Indicates whether object
                    directories will be created when running ``make obj''.  If
                    set to ``no'', then all built files will be located inside
                    the regular source tree.

                    Default: ``yes''

                    If ``no'', acts as MKOBJDIRS=no.

     MKOBJDIRS      Can be set to ``yes'' or ``no''.  Indicates whether object
                    directories will be created automatically (via a ``make
                    obj'' pass) at the start of a build.

                    Default: ``no''

     MKPAM          Can be set to ``yes'' or ``no''.  Indicates whether the
                    pam(8) framework (libraries and support files) is built.
                    The pre-PAM code is not supported and may be removed in
                    the future.

                    Default: ``yes''

     MKPCC          Can be set to ``yes'' or ``no''.  Indicates whether pcc(1)
                    or any related libraries (libpcc, libpccsoftfloat) are
                    built.

                    Default: ``no''

     MKPCCCMDS      Can be set to ``yes'' or ``no''.  Indicates whether pcc(1)
                    is built.  If ``no'', then MKPCC controls if the PCC
                    libraries are built.

                    Default: ``no''

     MKPF           Can be set to ``yes'' or ``no''.  Indicates whether the
                    pf(4) programs, headers and LKM will be built and
                    installed.

                    Default: ``yes''

     MKPIC          Can be set to ``yes'' or ``no''.  Indicates whether shared
                    objects and libraries will be created and installed.  If
                    set to ``no'', the entire built system will be statically
                    linked.

                    Default: Platform dependent.  As of this writing, all
                    platforms except m68000 and sh3 default to ``yes''.

                    If ``no'', acts as MKPICLIB=no.

     MKPICINSTALL   Can be set to ``yes'' or ``no''.  Indicates whether the
                    ar(1) format libraries (lib*_pic.a), used to generate
                    shared libraries, are installed.

                    Default: ``yes''

     MKPICLIB       Can be set to ``yes'' or ``no''.  Indicates whether the
                    ar(1) format libraries (lib*_pic.a), used to generate
                    shared libraries.

                    Default: ``yes''

     MKPIE          Indicates whether Position Independent Executables (PIE)
                    are built and installed.

                    Default: ``no''

     MKPOSTFIX      Can be set to ``yes'' or ``no''.  Indicates whether
                    Postfix is built.

                    Default: ``yes''

     MKPROFILE      Can be set to ``yes'' or ``no''.  Indicates whether
                    profiled libraries (lib*_p.a) will be built and installed.

                    Default: ``yes''; however, some platforms turn off
                    MKPROFILE by default at times due to toolchain problems
                    with profiled code.

     MKSHARE        Can be set to ``yes'' or ``no''.  Indicates whether files
                    destined to reside in DESTDIR/usr/share will be built and
                    installed.

                    Default: ``yes''

                    If ``no'', acts as MKCATPAGES=no MKDOC=no MKINFO=no
                    MKHTML=no MKMAN=no MKNLS=no.

     MKSKEY         Can be set to ``yes'' or ``no''.  Indicates whether the
                    S/key infrastructure (libraries and support programs) is
                    built.

                    Default: ``yes''

     MKSOFTFLOAT    Can be set to ``yes'' or ``no''.  Indicates whether the
                    compiler generates output containing library calls for
                    floating point and possibly soft-float library support.

                    Default: ``no''

     MKSTATICLIB    Can be set to ``yes'' or ``no''.  Indicates whether the
                    normal static libraries (lib*_g.a) will be built and
                    installed.

                    Default: ``yes''

     MKSTRIPIDENT   Can be set to ``yes'' or ``no''.  Indicates whether
                    program binaries and shared libraries should be built to
                    include RCS IDs for use with ident(1).

                    Default: ``no''

     MKUNPRIVED     Can be set to ``yes'' or ``no''.  Indicates whether an
                    unprivileged install will occur.  The user, group,
                    permissions, and file flags, will not be set on the
                    installed item; instead the information will be appended
                    to a file called METALOG in DESTDIR.  The contents of
                    METALOG is used during the generation of the distribution
                    tar files to ensure that the appropriate file ownership is
                    stored.

                    Default: ``no''

     MKUPDATE       Can be set to ``yes'' or ``no''.  Indicates whether all
                    install operations intended to write to DESTDIR will
                    compare file timestamps before installing, and skip the
                    install phase if the destination files are up-to-date.
                    This also has implications on full builds (see next
                    subsection).

                    Default: ``no''

     MKX11          Can be set to ``yes'' or ``no''.  Indicates whether X11 is
                    built and installed (by descending into src/x11 or
                    src/external/mit/xorg depending on the value of
                    X11FLAVOUR).

                    Default: ``no''

     MKYP           Can be set to ``yes'' or ``no''.  Indicates whether the YP
                    (NIS) infrastructure (libraries and support programs) is
                    built.

                    Default: ``yes''

     OBJMACHINE     If defined, creates objdirs of the form obj.MACHINE, where
                    MACHINE is the current architecture (as per `uname -m').

     RELEASEDIR     If set, specifies the directory to which a release(7)
                    layout will be written at the end of a ``make release''.

                    Default: Unset.

                    Note: build.sh will provide a default of releasedir (in
                    the top-level .OBJDIR) unless run in `expert' mode

     TOOLDIR        Directory to hold the host tools, once built.  This
                    directory should be unique to a given host system and
                    NetBSD source tree.  (However, multiple targets may share
                    the same TOOLDIR; the target-dependent files have unique
                    names.)  If unset, a default based on the uname(1)
                    information of the host platform will be created in the
                    .OBJDIR of src.

                    Default: Unset.

     USE_HESIOD     Can be set to ``yes'' or ``no''.  Indicates whether Hesiod
                    support is enabled in the various applications that
                    support it.  If MKHESIOD=no, USE_HESIOD will also be
                    forced to ``no''.

                    Default: ``yes''

     USE_INET6      Can be set to ``yes'' or ``no''.  Indicates whether INET6
                    (IPv6) support is enabled in the various applications that
                    support it.  If MKINET6=no, USE_INET6 will also be forced
                    to ``no''.

                    Default: ``yes''

     USE_JEMALLOC   Can be set to ``yes'' or ``no''.  Indicates whether the
                    jemalloc allocator (which is designed for improved
                    performance with threaded applications) is used instead of
                    the phkmalloc allocator (that was the default until
                    NetBSD 5.0).

                    Default: ``yes''

     USE_KERBEROS   Can be set to ``yes'' or ``no''.  Indicates whether
                    Kerberos v5 support is enabled in the various applications
                    that support it.  If MKKERBEROS=no, USE_KERBEROS will also
                    be forced to ``no''.

                    Default: ``yes''

     USE_LDAP       Can be set to ``yes'' or ``no''.  Indicates whether LDAP
                    support is enabled in the various applications that
                    support it.  If MKLDAP=no, USE_LDAP will also be forced to
                    ``no''.

                    Default: ``yes''

     USE_PAM        Can be set to ``yes'' or ``no''.  Indicates whether pam(8)
                    support is enabled in the various applications that
                    support it.  If MKPAM=no, USE_PAM will also be forced to
                    ``no''.

                    Default: ``yes''

     USE_SKEY       Can be set to ``yes'' or ``no''.  Indicates whether S/key
                    support is enabled in the various applications that
                    support it.  If MKSKEY=no, USE_SKEY will also be forced to
                    ``no''.

                    Default: ``yes''

                    This is mutually exclusive to USE_PAM!=no.

     USE_SSP        Can be set to ``yes'' or ``no''.  Indicates whether GCC
                    stack-smashing protection (SSP) support, which detects
                    stack overflows and aborts the program, is enabled.  This
                    imposes some performance penalty.

                    Default: ``no''

     USE_YP         Can be set to ``yes'' or ``no''.  Indicates whether YP
                    (NIS) support is enabled in the various applications that
                    support it.  If MKYP=no, USE_YP will also be forced to
                    ``no''.

                    Default: ``yes''

     USETOOLS       Indicates whether the tools specified by TOOLDIR should be
                    used as part of a build in progress.  Must be set to
                    ``yes'' if cross-compiling.

                    yes    Use the tools from TOOLDIR.

                    no     Do not use the tools from TOOLDIR, but refuse to
                           build native compilation tool components that are
                           version-specific for that tool.

                    never  Do not use the tools from TOOLDIR, even when
                           building native tool components.  This is similar
                           to the traditional NetBSD build method, but does
                           not verify that the compilation tools in use are
                           up-to-date enough in order to build the tree
                           successfully.  This may cause build or runtime
                           problems when building the whole NetBSD source
                           tree.

                    Default: ``yes'' if building all or part of a whole NetBSD
                    source tree (detected automatically); ``no'' otherwise (to
                    preserve traditional semantics of the <bsd.*.mk> make(1)
                    include files).

     X11FLAVOUR     Picks which X11 distribution to cross-build with NetBSD.
                    Set to either ``Xorg'' or ``XFree86''.  Only relevant if
                    MKX11!=no.

                    Default: ``Xorg'' on alpha, i386, macppc, shark and
                    sparc64 platforms.  ``XFree86'' on everything else.

   pkgsrc system variables
     Please see the pkgsrc guide at
     http://www.netbsd.org/Documentation/pkgsrc/ or pkgsrc/doc/pkgsrc.txt for
     more variables used internally by the package system and
     ${PKGSRCDIR}/mk/defaults/mk.conf for package-specific examples.

FILES
     /etc/mk.conf  This file.

     ${PKGSRCDIR}/mk/defaults/mk.conf
                   Examples for settings regarding the pkgsrc collection.

SEE ALSO
     make(1), /usr/share/mk/bsd.README, pkgsrc/doc/pkgsrc.txt,
     http://www.netbsd.org/Documentation/pkgsrc/

HISTORY
     The mk.conf file appeared in NetBSD 1.2.

NetBSD 5.0_STABLE             September 10, 2008             NetBSD 5.0_STABLE
