4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 .Dd September 27, 2004
32 .Nd system build information
36 contains settings that control the compilation of the
39 and ported applications.
42 is generally created by the system administrator when the values need
43 to be changed from their defaults.
47 is not to run commands or perform compilation actions
49 Instead, it is included by the
55 which conditionalize their
56 internal actions according to the settings found there.
60 file is included from the appropriate
62 which specifies the default settings for all the available options.
63 Options need only be specified in
65 when the system administrator wishes to override these defaults.
67 The build procedures occur in four broad areas: the world, the kernel,
68 documentations and ports.
71 may be applicable during builds in one, two, or all four of these
73 They may be specified for a particular build via the
78 The following lists provide a name and short description for each
79 variable you can use during the indicated builds.
83 are ignored; the variable being
89 be treated as if it were set.
91 The following list provides a name and short description for variables
92 that are used for all builds, or are used by the
94 for things other than builds.
96 .It Va ALWAYS_CHECK_MAKE
98 Instructs the top-level makefile in the source tree (normally
103 Normally this is only done for the world and buildworld targets to handle
104 upgrades from older versions of
108 Controls the compiler setting when compiling C code.
109 Optimization levels other than
115 is provided as a set of
117 settings suggested by
118 .An "Bruce Evans" Aq bde@FreeBSD.org
119 for developing and testing changes.
120 They can be used, if set, by:
122 .Bd -literal -offset indent
127 Controls which processor should be targeted for generated
129 This controls processor-specific optimizations in
130 certain code (currently only OpenSSL) as well as modifying
135 to contain the appropriate optimization directive to
137 The automatic setting of
141 may be overridden using the
145 variables, respectively.
147 .Pa /usr/share/examples/etc/make.conf
148 for a list of recognized
153 Setting this variable will prevent CPU specific compiler flags
154 from being automatically added to
157 .It Va NO_CPU_COPTFLAGS
159 Setting this variable will prevent CPU specific compiler flags
160 from being automatically added to
167 to update your ports with
168 .Dq Li "make update" .
171 Controls the compiler settings when compiling C++ code.
173 is initially set to the value of
184 the default install command.
185 To install only files for which the target differs or does not exist, use
186 .Bd -literal -offset indent
189 Note that some makefiles (including those in
191 may hardcode options for the supplied install command.
194 List any directories that should be entered when doing
200 Controls the shell used internally by
202 to process the command scripts in makefiles.
207 all currently supported.
210 .It Va MTREE_FOLLOWS_SYMLINKS
219 Set this to not update the doc tree during
220 .Dq Li "make update" .
221 .It Va NO_PORTSUPDATE
223 Set this to not update the ports tree during
224 .Dq Li "make update" .
229 to update your ports with
230 .Dq Li "make update" .
236 .Dq Li "make update" .
242 .Dq Li "make update" .
247 The hostname of the sup server to use when doing
248 .Dq Li "make update" .
254 .Dq Li "make update" .
256 .Pa /usr/share/examples/cvsup/standard\-supfile .
262 .Dq Li "make update" .
264 .Pa /usr/share/examples/cvsup/secure\-supfile .
270 .Dq Li "make update" .
272 .Pa /usr/share/examples/cvsup/secure\-supfile .
278 .Dq Li "make update" .
280 .Pa /usr/share/examples/cvsup/ports\-supfile .
286 .Dq Li "make update" .
288 .Pa /usr/share/examples/cvsup/doc\-supfile .
291 The following list provides a name and short description for variables
292 that are only used doing a kernel build:
294 .It Va BOOT_COMCONSOLE_PORT
296 The port address to use for the console if the boot blocks have
297 been configured to use a serial console instead of the keyboard/video card.
298 .It Va BOOT_COMCONSOLE_SPEED
300 The baud rate to use for the console if the boot blocks have
301 been configured to use a serial console instead of the keyboard/video card.
304 Controls the amount of time the kernel waits for a console keypress
305 before booting the default kernel.
306 The value is approximately milliseconds.
307 Keypresses are accepted by the BIOS before booting from disk,
308 making it possible to give custom boot parameters even when this is
312 Controls the compiler settings when building the
314 Optimization levels above
315 .Oo Fl O ( O2 , No ...\& ) Oc
316 are not guaranteed to work.
319 Controls which kernel configurations will be
321 .Dq Li "${MAKE} buildkernel"
323 .Dq Li "${MAKE} installkernel" .
325 .Bd -literal -offset indent
326 KERNCONF=MINE DEBUG GENERIC OTHERMACHINE
329 will build the kernels specified by the config files
330 .Pa MINE , DEBUG , GENERIC ,
333 and install the kernel specified by the config file
337 .It Va LOADER_TFTP_SUPPORT
339 While not a buildkernel-affected option, there is no better place for this.
342 loader retrieves the kernel via NFS.
343 Defining this and recompiling
344 .Pa /usr/src/sys/boot
345 will cause it to retrieve the kernel via TFTP.
348 to load a custom BOOTP diskless kernel yet
349 still mount the server's
351 rather than load the server's kernel.
352 .It Va MODULES_OVERRIDE
354 Set to a list of modules to build instead of all of them.
355 .It Va NO_KERNELCONFIG
357 Set this to skip running
360 .Dq Li "${MAKE} buildkernel" .
361 .It Va NO_KERNELDEPEND
363 Set this to skip running
364 .Dq Li "${MAKE} depend"
366 .Dq Li "${MAKE} buildkernel" .
369 Set to not build modules with the kernel.
372 The following list provides a name and short description for variables
373 that are used during the world build:
379 1 compatibility libraries.
384 compatibility libraries.
389 compatibility libraries.
394 compatibility libraries.
400 compatibility libraries.
406 compatibility libraries.
409 Set to build the IDEA encryption code.
410 This code is patented in the USA and many European countries.
412 .Em "YOUR RESPONSIBILITY"
413 to determine if you can legally use IDEA.
414 .It Va NO_DYNAMICROOT
416 Set this if you do not want to link
423 Set this if you do not want to build Kerberos 5 (KTH Heimdal).
424 .It Va ENABLE_SUID_K5SU
426 Set this if you wish to use the ksu utility.
427 Otherwise, it will be
428 installed without the set-user-ID bit set.
429 .It Va ENABLE_SUID_NEWGRP
433 with the set-user-ID bit set.
436 will not be able to change users' groups.
437 .It Va ENABLE_SUID_SSH
441 with the set-user-ID bit turned on.
442 .It Va MODULES_WITH_WORLD
444 Set to build modules with the system instead of the kernel.
447 Set to not build Bluetooth related kernel modules, programs and libraries.
450 Set to not build the boot blocks and loader.
453 Set to not build CVS.
458 and related libraries.
463 and related libraries.
470 Set to not build isdn4bsd package.
473 Set to not build IP Filter package.
476 Set to not build PF firewall package.
484 programs used for program development,
485 compilers, debuggers etc.
489 programs and libraries related to IPv6 networking.
493 programs and libraries related to ATM networking.
498 and related programs.
503 and related programs.
509 and related programs.
514 and related programs.
515 .It Va NO_MAILWRAPPER
522 Set to not build manual pages.
525 Set to not build Objective C support.
528 Set to not build OpenSSH.
531 Set to not build OpenSSL (implies
539 and related programs.
547 Set to not build and install
553 Set this to disable cleaning during
554 .Dq Li "make buildworld" .
555 This should not be set unless you know what you are doing.
559 .Dq Li "${MAKE} clean"
561 .Dq Li "${MAKE} cleandir" .
564 Set to not build any crypto code.
567 Set to not build games.
570 Set to not make or install
577 (reentrant version of
593 Set to install man pages uncompressed.
596 Set to avoid compiling profiled libraries.
599 Set to not build in the
604 Setting this variable will prevent any part of BIND from being built,
605 regardless of the presence of any of the other *_BIND_* variables below.
606 .It Va NO_BIND_DNSSEC
608 Set to avoid building or installing the DNSSEC related binaries,
611 .Xr dnssec-signzone 8 .
614 Set to avoid installing the default files to
616 .It Va NO_BIND_LIBS_LWRES
618 Set to avoid installing the lightweight resolver library in
620 The library that is private to the build system may still be built as needed.
623 Set to avoid building or installing
626 .Xr named-checkconf 8 ,
627 .Xr named-checkzone 8 ,
633 Set to avoid building or installing the BIND userland utilities,
639 .It Va WITH_BIND_LIBS
641 Set to install BIND libraries and include files.
644 Set to disable the installation of
646 as an suid root program.
651 configuration file to use at install time.
652 The value should include the full path to the
655 .Pa /etc/mail/myconfig.mc .
656 Use with caution as a make install will overwrite any existing
657 .Pa /etc/mail/sendmail.cf .
661 .It Va SENDMAIL_SUBMIT_MC
665 configuration file for mail submission
666 to use at install time.
667 The value should include the full path to the
670 .Pa /etc/mail/mysubmit.mc .
671 Use with caution as a make install will overwrite any existing
672 .Pa /etc/mail/submit.cf .
673 .It Va SENDMAIL_ADDITIONAL_MC
677 files which should be built into
680 The value should include the full path to the
684 .Pa /etc/mail/bar.mc .
685 .It Va SENDMAIL_CF_DIR
687 Override the default location for the
689 configuration files used to build a
694 .It Va SENDMAIL_M4_FLAGS
703 .It Va SENDMAIL_CFLAGS
705 Flags to pass to the compile command when building
709 flags can be used to provide SASL support with setting such as:
710 .Bd -literal -offset indent
711 SENDMAIL_CFLAGS=-I/usr/local/include -DSASL
712 SENDMAIL_LDFLAGS=-L/usr/local/lib
713 SENDMAIL_LDADD=-lsasl
715 .It Va SENDMAIL_LDFLAGS
719 command when building
721 .It Va SENDMAIL_LDADD
723 Flags to add to the end of the
725 command when building
727 .It Va SENDMAIL_DPADD
729 Extra dependencies to add when building
731 .It Va SENDMAIL_SET_USER_ID
735 as a set-user-ID root binary instead of a set-group-ID binary
737 .Pa /etc/mail/submit.{cf,mc} .
738 Use of this flag is not recommended and the alternative advice in
740 should be followed instead if at all possible.
741 .It Va SENDMAIL_MAP_PERMS
743 Mode to use when generating alias and map database files using
744 .Pa /etc/mail/Makefile .
745 The default value is 0640.
746 .It Va TOP_TABLE_SIZE
749 uses a hash table for the user names.
750 The size of this hash can be tuned to match the number of local users.
751 The table size should be a prime number
752 approximately twice as large as the number of lines in
754 The default number is 20011.
755 .It Va WANT_FORCE_OPTIMIZATION_DOWNGRADE
757 Causes the system compiler to be built such that it forces high optimization
758 levels to a lower one.
761 and above is known to trigger known optimizer bugs at various
762 times \(em this is worse on the Alpha platform.
763 The value assigned is the highest optimization value used.
766 The following list provides a name and short description for variables
767 that are used when building documentation.
771 Where distfiles are kept.
778 The list of languages and encodings to build and install.
781 The default format for system documentation, depends on your
785 for simple printers, or
787 for postscript or graphics printers with a ghostscript
791 .Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact
792 .It Pa /etc/make.conf
793 .It Pa /usr/doc/Makefile
794 .It Pa /usr/share/examples/etc/make.conf
795 .It Pa /usr/src/Makefile
796 .It Pa /usr/src/Makefile.inc1
808 file appeared sometime before
812 manual page was written by
813 .An Mike W. Meyer Aq mwm@mired.org .
815 This manual page may occasionally be out of date with respect to
816 the options currently available for use in
819 .Pa /usr/share/examples/etc/make.conf
820 file for the latest options which are available.
826 are environment variables and should not be set in
828 but in make's environment.