diff options
Diffstat (limited to 'share/man/man5/make.conf.5')
-rw-r--r-- | share/man/man5/make.conf.5 | 712 |
1 files changed, 712 insertions, 0 deletions
diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5 new file mode 100644 index 0000000..e705749 --- /dev/null +++ b/share/man/man5/make.conf.5 @@ -0,0 +1,712 @@ +.\" Copyright (c) 2000 +.\" Mike W. Meyer +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd May 17, 2014 +.Dt MAKE.CONF 5 +.Os +.Sh NAME +.Nm make.conf +.Nd system build information +.Sh DESCRIPTION +The file +.Nm +contains system-wide settings that will apply to every build using +.Xr make 1 +and the standard +.Pa sys.mk +file. +This is achieved as follows: +.Xr make 1 +processes the system makefile +.Pa sys.mk +before any other file by default, and +.Pa sys.mk +includes +.Nm . +.Pp +The file +.Nm +uses the standard makefile syntax. +However, +.Nm +should not specify any dependencies to +.Xr make 1 . +Instead, +.Nm +is to set +.Xr make 1 +variables that control the actions of other makefiles. +.Pp +The default location of +.Nm +is +.Pa /etc/make.conf , +though an alternative location can be specified in the +.Xr make 1 +variable +.Va __MAKE_CONF . +You may need to override the location of +.Nm +if the system-wide settings are not suitable for a particular build. +For instance, setting +.Va __MAKE_CONF +to +.Pa /dev/null +effectively resets all build controls to their defaults. +.Pp +The primary purpose of +.Nm +is to control the compilation of the +.Fx +sources, documentation, and ported applications, +which are usually found in +.Pa /usr/src , +.Pa /usr/doc , +and +.Pa /usr/ports . +As a rule, the system administrator creates +.Nm +when the values of certain control variables need to be changed +from their defaults. +.Pp +The system build procedures occur in four broad areas: +the world, the kernel, documentation and ports. +Variables set in +.Nm +may be applicable in one, two, or all four of these areas. +In addition, control variables can be specified +for a particular build via the +.Fl D +option of +.Xr make 1 +or in +.Xr environ 7 . +.Pp +The following lists provide a name and short description for each +variable you can use during the indicated builds. +The values of +variables flagged as +.Vt bool +are ignored; the variable being +set at all (even to +.Dq Li FALSE +or +.Dq Li NO ) +causes it to +be treated as if it were set. +.Pp +The following list provides a name and short description for variables +that are used for all builds, or are used by the +.Pa makefiles +for things other than builds. +.Bl -tag -width Ar +.It Va ALWAYS_CHECK_MAKE +.Pq Vt bool +Instructs the top-level makefile in the source tree (normally +.Pa /usr/src ) +to always check if +.Xr make 1 +is up-to-date. +Normally this is only done for the world and buildworld targets to handle +upgrades from older versions of +.Fx . +.It Va CFLAGS +.Pq Vt str +Controls the compiler setting when compiling C code. +Optimization levels other than +.Fl O +and +.Fl O2 +are not supported. +.Va BDECFLAGS +is provided as a set of +.Xr cc 1 +settings suggested by +.An Bruce Evans Aq Mt bde@FreeBSD.org +for developing and testing changes. +They can be used, if set, by: +.Bd -literal -offset indent +CFLAGS+=${BDECFLAGS} +.Ed +.It Va CPUTYPE +.Pq Vt str +Controls which processor should be targeted for generated +code. +This controls processor-specific optimizations in +certain code (currently only OpenSSL) as well as modifying +the value of +.Va CFLAGS +and +.Va COPTFLAGS +to contain the appropriate optimization directive to +.Xr cc 1 . +The automatic setting of +.Va CFLAGS +and +.Va COPTFLAGS +may be overridden using the +.Va NO_CPU_CFLAGS +and +.Va NO_CPU_COPTFLAGS +variables, respectively. +Refer to +.Pa /usr/share/examples/etc/make.conf +for a list of recognized +.Va CPUTYPE +options. +.It Va CXXFLAGS +.Pq Vt str +Controls the compiler settings when compiling C++ code. +.Va CXXFLAGS +is initially set to the value of +.Va CFLAGS . +If you want to +add to the +.Va CXXFLAGS +value, use +.Dq Li += +instead of +.Dq Li = . +.It Va INSTALL +.Pq Vt str +the default install command. +To install only files for which the target differs or does not exist, use +.Bd -literal -offset indent +INSTALL+= -C +.Ed +Note that some makefiles (including those in +.Pa /usr/share/mk ) +may hardcode options for the supplied install command. +.It Va LOCAL_DIRS +.Pq Vt str +List any directories that should be entered when doing +make's in +.Pa /usr/src +in this variable. +.It Va MAKE_SHELL +.Pq Vt str +Controls the shell used internally by +.Xr make 1 +to process the command scripts in makefiles. +.Xr sh 1 , +.Xr ksh 1 , +and +.Xr csh 1 +all currently supported. +.Pp +.Dl "MAKE_SHELL?=sh" +.It Va MTREE_FOLLOWS_SYMLINKS +.Pq Vt str +Set this to +.Dq Fl L +to cause +.Xr mtree 8 +to follow symlinks. +.It Va NO_CPU_CFLAGS +.Pq Vt str +Setting this variable will prevent CPU specific compiler flags +from being automatically added to +.Va CFLAGS +during compile time. +.It Va NO_CPU_COPTFLAGS +.Pq Vt str +Setting this variable will prevent CPU specific compiler flags +from being automatically added to +.Va COPTFLAGS +during compile time. +.It Va NO_DOCUPDATE +.Pq Vt bool +Set this to not update the doc tree during +.Dq Li "make update" . +.It Va NO_PORTSUPDATE +.Pq Vt bool +Set this to not update the ports tree during +.Dq Li "make update" . +.It Va SVN_UPDATE +.Pq Vt bool +Set this to use +.Xr svn 1 +to update your +.Pa src +tree with +.Dq Li "make update" . +Note that since a subversion client is not included in the base system, +you will need to set +.Va SVN +to the full path of a +.Xr svn 1 +binary. +.El +.Ss "BUILDING THE KERNEL" +The following list provides a name and short description for variables +that are only used doing a kernel build: +.Bl -tag -width Ar +.It Va BOOTWAIT +.Pq Vt int +Controls the amount of time the kernel waits for a console keypress +before booting the default kernel. +The value is approximately milliseconds. +Keypresses are accepted by the BIOS before booting from disk, +making it possible to give custom boot parameters even when this is +set to 0. +.It Va COPTFLAGS +.Pq Vt str +Controls the compiler settings when building the +kernel. +Optimization levels above +.Oo Fl O ( O2 , No ...\& ) Oc +are not guaranteed to work. +.It Va KERNCONF +.Pq Vt str +Controls which kernel configurations will be +built by +.Dq Li "${MAKE} buildkernel" +and installed by +.Dq Li "${MAKE} installkernel" . +For example, +.Bd -literal -offset indent +KERNCONF=MINE DEBUG GENERIC OTHERMACHINE +.Ed +.Pp +will build the kernels specified by the config files +.Pa MINE , DEBUG , GENERIC , +and +.Pa OTHERMACHINE , +and install the kernel specified by the config file +.Pa MINE . +It defaults to +.Pa GENERIC . +.It Va MODULES_OVERRIDE +.Pq Vt str +Set to a list of modules to build instead of all of them. +.It Va NO_KERNELCLEAN +.Pq Vt bool +Set this to skip running +.Dq Li "${MAKE} clean" +during +.Dq Li "${MAKE} buildkernel" . +.It Va NO_KERNELCONFIG +.Pq Vt bool +Set this to skip running +.Xr config 8 +during +.Dq Li "${MAKE} buildkernel" . +.It Va NO_KERNELDEPEND +.Pq Vt bool +Set this to skip running +.Dq Li "${MAKE} depend" +during +.Dq Li "${MAKE} buildkernel" . +.It Va NO_KERNELOBJ +.Pq Vt bool +Set this to skip running +.Dq Li "${MAKE} obj" +during +.Dq Li "${MAKE} buildkernel" . +.It Va NO_MODULES +.Pq Vt bool +Set to not build modules with the kernel. +.It Va PORTS_MODULES +Set this to the list of ports you wish to rebuild every time the kernel +is built. +.It Va WITHOUT_MODULES +.Pq Vt str +Set to a list of modules to exclude from the build. +This provides a +somewhat easier way to exclude modules you are certain you will never +need than specifying +.Va MODULES_OVERRIDE . +This is applied +.Em after +.Va MODULES_OVERRIDE . +.El +.Ss "BUILDING THE WORLD" +The following list provides a name and short description for variables +that are used during the world build: +.Bl -tag -width Ar +.It Va BOOT_COMCONSOLE_PORT +.Pq Vt str +The port address to use for the console if the boot blocks have +been configured to use a serial console instead of the keyboard/video card. +.It Va BOOT_COMCONSOLE_SPEED +.Pq Vt int +The baud rate to use for the console if the boot blocks have +been configured to use a serial console instead of the keyboard/video card. +.It Va BOOT_PXELDR_ALWAYS_SERIAL +.Pq Vt bool +Compile in the code into +.Xr pxeboot 8 +that forces the use of a serial console. +This is analogous to the +.Fl h +option in +.Xr boot 8 +blocks. +.It Va BOOT_PXELDR_PROBE_KEYBOARD +.Pq Vt bool +Compile in the code into +.Xr pxeboot 8 +that probes the keyboard. +If no keyboard is found, boot with the dual console configuration. +This is analogous to the +.Fl D +option in +.Xr boot 8 +blocks. +.It Va ENABLE_SUID_K5SU +.Pq Vt bool +Set this if you wish to use the ksu utility. +Otherwise, it will be +installed without the set-user-ID bit set. +.It Va ENABLE_SUID_NEWGRP +.Pq Vt bool +Set this to install +.Xr newgrp 1 +with the set-user-ID bit set. +Otherwise, +.Xr newgrp 1 +will not be able to change users' groups. +.It Va LOADER_TFTP_SUPPORT +.Pq Vt bool +By default the +.Xr pxeboot 8 +loader retrieves the kernel via NFS. +Defining this and recompiling +.Pa /usr/src/sys/boot +will cause it to retrieve the kernel via TFTP. +This allows +.Xr pxeboot 8 +to load a custom BOOTP diskless kernel yet +still mount the server's +.Pa / +rather than load the server's kernel. +.It Va LOADER_FIREWIRE_SUPPORT +.Pq Vt bool +Defining this and recompiling +.Pa /usr/src/sys/boot/i386 +will add +.Xr dcons 4 +console driver to +.Xr loader 8 +and allow access over FireWire(IEEE1394) using +.Xr dconschat 8 . +Currently, only i386 and amd64 are supported. +.It Va MALLOC_PRODUCTION +.Pq Vt bool +Set this to disable assertions and statistics gathering in +.Xr malloc 3 . +It also defaults the A and J runtime options to off. +Disabled by default on -CURRENT. +.It Va MODULES_WITH_WORLD +.Pq Vt bool +Set to build modules with the system instead of the kernel. +.It Va NO_CLEAN +.Pq Vt bool +Set this to disable cleaning during +.Dq Li "make buildworld" . +This should not be set unless you know what you are doing. +.It Va NO_CLEANDIR +.Pq Vt bool +Set this to run +.Dq Li "${MAKE} clean" +instead of +.Dq Li "${MAKE} cleandir" . +.It Va WITH_MANCOMPRESS +.Pq Vt defined +Set to install manual pages compressed. +.It Va WITHOUT_MANCOMPRESS +.Pq Vt defined +Set to install manual pages uncompressed. +.It Va NO_SHARE +.Pq Vt bool +Set to not build in the +.Pa share +subdir. +.It Va NO_SHARED +.Pq Vt bool +Set to build +.Pa /bin +and +.Pa /sbin +statically linked, this can be bad. +If set, every utility that uses +.Pa bsd.prog.mk +will be linked statically. +.It Va PPP_NO_NAT +.Pq Vt bool +Build +.Xr ppp 8 +without support for network address translation (NAT). +.It Va PPP_NO_NETGRAPH +.Pq Vt bool +Set to build +.Xr ppp 8 +without support for Netgraph. +.It Va PPP_NO_RADIUS +.Pq Vt bool +Set to build +.Xr ppp 8 +without support for RADIUS. +.It Va PPP_NO_SUID +.Pq Vt bool +Set to disable the installation of +.Xr ppp 8 +as a set-user-ID root program. +.It Va SENDMAIL_ADDITIONAL_MC +.Pq Vt str +Additional +.Pa .mc +files which should be built into +.Pa .cf +files at build time. +The value should include the full path to the +.Pa .mc +file(s), e.g., +.Pa /etc/mail/foo.mc , +.Pa /etc/mail/bar.mc . +.It Va SENDMAIL_ALIASES +.Pq Vt str +List of +.Xr aliases 5 +files to rebuild when using +.Pa /etc/mail/Makefile . +The default value is +.Pa /etc/mail/aliases . +.It Va SENDMAIL_CFLAGS +.Pq Vt str +Flags to pass to the compile command when building +.Xr sendmail 8 . +The +.Va SENDMAIL_* +flags can be used to provide SASL support with setting such as: +.Bd -literal -offset indent +SENDMAIL_CFLAGS=-I/usr/local/include -DSASL +SENDMAIL_LDFLAGS=-L/usr/local/lib +SENDMAIL_LDADD=-lsasl +.Ed +.It Va SENDMAIL_CF_DIR +.Pq Vt str +Override the default location for the +.Xr m4 1 +configuration files used to build a +.Pa .cf +file from a +.Pa .mc +file. +.It Va SENDMAIL_DPADD +.Pq Vt str +Extra dependencies to add when building +.Xr sendmail 8 . +.It Va SENDMAIL_LDADD +.Pq Vt str +Flags to add to the end of the +.Xr ld 1 +command when building +.Xr sendmail 8 . +.It Va SENDMAIL_LDFLAGS +.Pq Vt str +Flags to pass to the +.Xr ld 1 +command when building +.Xr sendmail 8 . +.It Va SENDMAIL_M4_FLAGS +.Pq Vt str +Flags passed to +.Xr m4 1 +when building a +.Pa .cf +file from a +.Pa .mc +file. +.It Va SENDMAIL_MAP_PERMS +.Pq Vt str +Mode to use when generating alias and map database files using +.Pa /etc/mail/Makefile . +The default value is 0640. +.It Va SENDMAIL_MAP_SRC +.Pq Vt str +Additional maps to rebuild when using +.Pa /etc/mail/Makefile . +The +.Pa access , +.Pa bitdomain , +.Pa domaintable , +.Pa genericstable , +.Pa mailertable , +.Pa uucpdomain , +and +.Pa virtusertable +maps are always rebuilt if they exist. +.It Va SENDMAIL_MAP_TYPE +.Pq Vt str +Database map type to use when generating map database files using +.Pa /etc/mail/Makefile . +The default value is hash. +The alternative is btree. +.It Va SENDMAIL_MC +.Pq Vt str +The default +.Xr m4 1 +configuration file to use at install time. +The value should include the full path to the +.Pa .mc +file, e.g., +.Pa /etc/mail/myconfig.mc . +Use with caution as a make install will overwrite any existing +.Pa /etc/mail/sendmail.cf . +Note that +.Va SENDMAIL_CF +is now deprecated. +.It Va SENDMAIL_SET_USER_ID +.Pq Vt bool +If set, install +.Xr sendmail 8 +as a set-user-ID root binary instead of a set-group-ID binary +and do not install +.Pa /etc/mail/submit.{cf,mc} . +Use of this flag is not recommended and the alternative advice in +.Pa /etc/mail/README +should be followed instead if at all possible. +.It Va SENDMAIL_START_SCRIPT +.Pq Vt str +The script used by +.Pa /etc/mail/Makefile +to start, stop, and restart +.Xr sendmail 8 . +The default value is +.Pa /etc/rc.sendmail . +This value should match the +.Dq Li mta_start_script +setting in +.Xr rc.conf 5 . +.It Va SENDMAIL_SUBMIT_MC +.Pq Vt str +The default +.Xr m4 1 +configuration file for mail submission +to use at install time. +The value should include the full path to the +.Pa .mc +file, e.g., +.Pa /etc/mail/mysubmit.mc . +Use with caution as a make install will overwrite any existing +.Pa /etc/mail/submit.cf . +.It Va TOP_TABLE_SIZE +.Pq Vt int +.Xr top 1 +uses a hash table for the user names. +The size of this hash can be tuned to match the number of local users. +The table size should be a prime number +approximately twice as large as the number of lines in +.Pa /etc/passwd . +The default number is 20011. +.It Va WANT_FORCE_OPTIMIZATION_DOWNGRADE +.Pq Vt int +Causes the system compiler to be built such that it forces high optimization +levels to a lower one. +.Xr cc 1 +.Fl O2 +and above is known to trigger known optimizer bugs at various +times. +The value assigned is the highest optimization value used. +.El +.Ss "BUILDING DOCUMENTATION" +The following list provides a name and short description for variables +that are used when building documentation. +.Bl -tag -width ".Va PRINTERDEVICE" +.It Va DISTDIR +.Pq Vt str +Where distfiles are kept. +Normally, this is +.Pa distfiles +in +.Va PORTSDIR . +.It Va DOC_LANG +.Pq Vt str +The list of languages and encodings to build and install. +.It Va PRINTERDEVICE +.Pq Vt str +The default format for system documentation, depends on your +printer. +This can be set to +.Dq Li ascii +for simple printers, or +.Dq Li ps +for postscript or graphics printers with a ghostscript +filter, or both. +.El +.Ss "BUILDING PORTS" +Several make variables can be set that affect the building of ports. +These variables and their effects are documented in +.Xr ports 7 , +.Pa ${PORTSDIR}/Mk/* +and the +.Fx +Porter's Handbook. +.Sh FILES +.Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact +.It Pa /etc/make.conf +.It Pa /usr/doc/Makefile +.It Pa /usr/ports/Makefile +.It Pa /usr/share/examples/etc/make.conf +.It Pa /usr/share/mk/sys.mk +.It Pa /usr/src/Makefile +.It Pa /usr/src/Makefile.inc1 +.El +.Sh SEE ALSO +.Xr cc 1 , +.Xr install 1 , +.Xr make 1 , +.Xr src.conf 5 , +.Xr environ 7 , +.Xr ports 7 , +.Xr sendmail 8 +.Sh HISTORY +The +.Nm +file appeared sometime before +.Fx 4.0 . +.Sh AUTHORS +This +manual page was written by +.An Mike W. Meyer Aq Mt mwm@mired.org . +.Sh CAVEATS +Note, that +.Ev MAKEOBJDIRPREFIX +and +.Ev MAKEOBJDIR +are environment variables and should not be set in +.Nm +or as command line arguments to +.Xr make 1 , +but in make's environment. +.Sh BUGS +This manual page may occasionally be out of date with respect to +the options currently available for use in +.Nm . +Please check the +.Pa /usr/share/examples/etc/make.conf +file for the latest options which are available. |