home | help
MAKE.CONF(5)		       File Formats Manual		    MAKE.CONF(5)

NAME
     make.conf -- system build information

DESCRIPTION
     The  file	make.conf contains system-wide settings that will apply to every
     build using make(1) and the standard sys.mk file.	This is achieved as fol-
     lows: make(1) processes the system makefile sys.mk before any other file by
     default, and sys.mk includes make.conf.

     The file make.conf uses the standard makefile syntax.   However,  make.conf
     should  not  specify any dependencies to make(1).	Instead, make.conf is to
     set make(1) variables that control the actions of other makefiles.

     The default location of make.conf is /etc/make.conf, though an  alternative
     location  can  be	specified  in the make(1) variable __MAKE_CONF.  You may
     need to override the location of make.conf if the system-wide settings  are
     not  suitable for a particular build.  For instance, setting __MAKE_CONF to
     /dev/null effectively resets all build controls to their defaults.

     The primary purpose of make.conf is  to  control  the  compilation  of  the
     FreeBSD  sources, documentation, and ported applications, which are usually
     found in /usr/src, /usr/doc, and /usr/ports.  As a rule, the system  admin-
     istrator  creates	make.conf  when  the values of certain control variables
     need to be changed from their defaults.

     The system build procedures occur in four broad areas: the world, the  ker-
     nel, documentation and ports.  Variables set in make.conf 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 -D option of make(1) or  in
     environ(7).

     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  bool  are  ignored;  the  variable being set at all (even to "FALSE" or
     "NO") causes it to be treated as if it were set.

     The following list provides a name and short description for variables that
     are used for all builds, or are used by the makefiles for things other than
     builds.

     ALWAYS_CHECK_MAKE
		   (bool) Instructs the top-level makefile in  the  source  tree
		   (normally /usr/src) to always check if make(1) is up-to-date.
		   Normally  this is only done for the world and buildworld tar-
		   gets to handle upgrades from older versions of FreeBSD.

     CFLAGS	   (str) Controls the compiler setting when  compiling	C  code.
		   Optimization levels other than -O and -O2 are not supported.

     CPUTYPE	   (str)  Controls which processor should be targeted for gener-
		   ated code.  This controls processor-specific optimizations in
		   certain code (currently only OpenSSL) as  well  as  modifying
		   the	value of CFLAGS and COPTFLAGS to contain the appropriate
		   optimization directive to cc(1).  The  automatic  setting  of
		   CFLAGS  may	be  overridden using the NO_CPU_CFLAGS variable.
		   Refer to /usr/share/examples/etc/make.conf for a list of rec-
		   ognized CPUTYPE options.

     CXXFLAGS	   (str) Controls the compiler settings when compiling C++ code.
		   CXXFLAGS is initially set to the value  of  CFLAGS.	 If  you
		   want to add to the CXXFLAGS value, use "+=" instead of "=".

     INSTALL	   (str) the default install command.  To install only files for
		   which the target differs or does not exist, use

			 INSTALL+= -C
		   Note  that  some makefiles (including those in /usr/share/mk)
		   may hardcode options for the supplied install command.

     LOCAL_DIRS    (str) List any directories that should be entered when  doing
		   make's in /usr/src in this variable.

     MAKE_SHELL    (str)  Controls  the  shell	used  internally  by  make(1) to
		   process the command scripts in makefiles.  sh(1), ksh(1), and
		   csh(1) all currently supported.

			 MAKE_SHELL?=sh

     MTREE_FOLLOWS_SYMLINKS
		   (str) Set this to "-L" to cause mtree(8) to follow symlinks.

     NO_CPU_CFLAGS
		   (str) Setting this variable will prevent  CPU  specific  com-
		   piler  flags  from being automatically added to CFLAGS during
		   compile time.

     NO_DOCUPDATE  (bool) Set this to not update the doc tree during  "make  up-
		   date".

     NO_PORTSUPDATE
		   (bool) Set this to not update the ports tree during "make up-
		   date".

     SVN_UPDATE    (bool)  Set	this  to use svn(1) to update your src tree with
		   "make update".  Note that since a subversion  client  is  not
		   included  in the base system, you will need to set SVN to the
		   full path of a svn(1) binary.

   BUILDING THE KERNEL
     The following list provides a name and short description for variables that
     are only used doing a kernel build:

     BOOTWAIT	   (int) Controls the amount of time the kernel waits for a con-
		   sole 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.

     COPTFLAGS	   (str) Controls the compiler settings when building  the  ker-
		   nel.  Optimization levels above [-O (-O2, ...)] are not guar-
		   anteed to work.

     KERNCONF	   (str)  Controls  which kernel configurations will be built by
		   "${MAKE} buildkernel" and installed by  "${MAKE}  installker-
		   nel".  For example,

			 KERNCONF=MINE DEBUG GENERIC OTHERMACHINE

		   will  build	the  kernels specified by the config files MINE,
		   DEBUG, GENERIC, and	OTHERMACHINE,  and  install  the  kernel
		   specified by the config file MINE.  It defaults to GENERIC.

     MODULES_OVERRIDE
		   (str)  Set  to  a  list of modules to build instead of all of
		   them.

     NO_KERNELCLEAN
		   (bool) Set  this  to  skip  running	"${MAKE}  clean"  during
		   "${MAKE} buildkernel".

     NO_KERNELCONFIG
		   (bool)  Set	this  to  skip running config(8) during "${MAKE}
		   buildkernel".

     NO_KERNELOBJ  (bool) Set this to skip running "${MAKE} obj" during "${MAKE}
		   buildkernel".

     NO_MODULES    (bool) Set to not build modules with the kernel.

     PORTS_MODULES
		   Set this to the list of ports you wish to rebuild every  time
		   the kernel is built.

     WITHOUT_MODULES
		   (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
		   MODULES_OVERRIDE.  This is applied after MODULES_OVERRIDE.

   BUILDING THE WORLD
     The following list provides a name and short description for variables that
     are used during the world build:

     BOOT_COMCONSOLE_PORT
		   (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.

     BOOT_COMCONSOLE_SPEED
		   (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.

     BOOT_PXELDR_ALWAYS_SERIAL
		   (bool)  Compile  in	the code into pxeboot(8) that forces the
		   use of a serial console.  This is analogous to the -h  option
		   in boot(8) blocks.

     BOOT_PXELDR_PROBE_KEYBOARD
		   (bool)  Compile  in	the code into pxeboot(8) that probes the
		   keyboard.  If no keyboard is found, boot with the  dual  con-
		   sole  configuration.   This	is analogous to the -D option in
		   boot(8) blocks.

     ENABLE_SUID_K5SU
		   (bool) Set this if you wish to use the ksu  utility.   Other-
		   wise, it will be installed without the set-user-ID bit set.

     ENABLE_SUID_NEWGRP
		   (bool) Set this to install newgrp(1) with the set-user-ID bit
		   set.   Otherwise, newgrp(1) will not be able to change users'
		   groups.

     LOADER_TFTP_SUPPORT
		   (bool) By default the pxeboot(8) loader retrieves the  kernel
		   via	NFS.   Defining  this  and recompiling /usr/src/sys/boot
		   will cause it to retrieve the kernel via TFTP.   This  allows
		   pxeboot(8)  to  load a custom BOOTP diskless kernel yet still
		   mount the server's / rather than load the server's kernel.

     LOADER_FIREWIRE_SUPPORT
		   (bool) Defining this and  recompiling  /usr/src/sys/boot/i386
		   will  add  dcons(4) console driver to loader(8) and allow ac-
		   cess over FireWire(IEEE1394) using dconschat(8).   Currently,
		   only i386 and amd64 are supported.

     MALLOC_PRODUCTION
		   (bool)  Set this to disable assertions and statistics gather-
		   ing in malloc(3).  It also defaults the A and J  runtime  op-
		   tions to off.  Disabled by default on -CURRENT.

     MODULES_WITH_WORLD
		   (bool)  Set	to  build modules with the system instead of the
		   kernel.

     NO_CLEAN	   (bool) Set this to disable cleaning during "make buildworld".
		   This should not be set unless you know what you are doing.

     NO_CLEANDIR   (bool) Set this to run "${MAKE} clean"  instead  of	"${MAKE}
		   cleandir".

     WITH_MANCOMPRESS
		   (defined) Set to install manual pages compressed.

     WITHOUT_MANCOMPRESS
		   (defined) Set to install manual pages uncompressed.

     NO_SHARE	   (bool) Set to not build in the share subdir.

     NO_SHARED	   (bool)  Set	to  build /bin and /sbin statically linked, this
		   can be bad.	If set, every utility that uses bsd.prog.mk will
		   be linked statically.

     PPP_NO_NAT    (bool) Build  ppp(8)  without  support  for	network  address
		   translation (NAT).

     PPP_NO_NETGRAPH
		   (bool) Set to build ppp(8) without support for Netgraph.

     PPP_NO_RADIUS
		   (bool) Set to build ppp(8) without support for RADIUS.

     PPP_NO_SUID   (bool)  Set	to  disable the installation of ppp(8) as a set-
		   user-ID root program.

     SENDMAIL_ADDITIONAL_MC
		   (str) Additional .mc files which should  be	built  into  .cf
		   files  at build time.  The value should include the full path
		   to the .mc file(s), e.g., /etc/mail/foo.mc, /etc/mail/bar.mc.

     SENDMAIL_ALIASES
		   (str)  List	of  aliases(5)	files  to  rebuild  when   using
		   /etc/mail/Makefile.	The default value is /etc/mail/aliases.

     SENDMAIL_CFLAGS
		   (str)  Flags  to  pass  to  the compile command when building
		   sendmail(8).  The SENDMAIL_* flags can  be  used  to  provide
		   SASL support with setting such as:

			 SENDMAIL_CFLAGS=-I/usr/local/include -DSASL
			 SENDMAIL_LDFLAGS=-L/usr/local/lib
			 SENDMAIL_LDADD=-lsasl

     SENDMAIL_CF_DIR
		   (str)  Override the default location for the m4(1) configura-
		   tion files used to build a .cf file from a .mc file.

     SENDMAIL_DPADD
		   (str) Extra dependencies to add when building sendmail(8).

     SENDMAIL_LDADD
		   (str) Flags to add to the  end  of  the  ld(1)  command  when
		   building sendmail(8).

     SENDMAIL_LDFLAGS
		   (str)  Flags to pass to the ld(1) command when building send-
		   mail(8).

     SENDMAIL_M4_FLAGS
		   (str) Flags passed to m4(1) when building a .cf file  from  a
		   .mc file.

     SENDMAIL_MAP_PERMS
		   (str)  Mode	to  use  when  generating alias and map database
		   files using /etc/mail/Makefile.  The default value is 0640.

     SENDMAIL_MAP_SRC
		   (str)    Additional	  maps	  to	rebuild    when    using
		   /etc/mail/Makefile.	  The  access,	bitdomain,  domaintable,
		   genericstable,  mailertable,  uucpdomain,  and  virtusertable
		   maps are always rebuilt if they exist.

     SENDMAIL_MAP_TYPE
		   (str)  Database  map type to use when generating map database
		   files using /etc/mail/Makefile.  The default value  is  hash.
		   The alternative is btree.

     SENDMAIL_MC   (str)  The default m4(1) configuration file to use at install
		   time.  The value should include the	full  path  to	the  .mc
		   file,  e.g.,  /etc/mail/myconfig.mc.   Use  with caution as a
		   make     install	will	 overwrite     any	existing
		   /etc/mail/sendmail.cf.   Note  that SENDMAIL_CF is now depre-
		   cated.

     SENDMAIL_SET_USER_ID
		   (bool) If set, install sendmail(8) as a set-user-ID root  bi-
		   nary  instead  of  a  set-group-ID  binary and do not install
		   /etc/mail/submit.{cf,mc}.  Use of this  flag  is  not  recom-
		   mended  and the alternative advice in /etc/mail/README should
		   be followed instead if at all possible.

     SENDMAIL_START_SCRIPT
		   (str) The script used by /etc/mail/Makefile to  start,  stop,
		   and	  restart    sendmail(8).     The   default   value   is
		   /etc/rc.sendmail.	 This	 value	  should    match    the
		   "mta_start_script" setting in rc.conf(5).

     SENDMAIL_SUBMIT_MC
		   (str)  The  default m4(1) configuration file for mail submis-
		   sion to use at install time.  The value  should  include  the
		   full  path to the .mc file, e.g., /etc/mail/mysubmit.mc.  Use
		   with caution as a make install will	overwrite  any	existing
		   /etc/mail/submit.cf.

     TOP_TABLE_SIZE
		   (int)  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 /etc/passwd.  The default
		   number is 20011.

     WANT_FORCE_OPTIMIZATION_DOWNGRADE
		   (int) Causes the system compiler to be  built  such	that  it
		   forces  high  optimization  levels to a lower one.  cc(1) -O2
		   and above is known to trigger known optimizer bugs at various
		   times.  The value assigned is the highest optimization  value
		   used.

   BUILDING DOCUMENTATION
     The following list provides a name and short description for variables that
     are used when building documentation.

     DISTDIR	    (str) Where distfiles are kept.  Normally, this is distfiles
		    in PORTSDIR.

     DOC_LANG	    (str)  The	list of languages and encodings to build and in-
		    stall.

     PRINTERDEVICE  (str) The default format for system  documentation,  depends
		    on	your  printer.	 This  can  be set to "ascii" for simple
		    printers, or "ps" for postscript or graphics printers with a
		    ghostscript filter, or both.

   BUILDING PORTS
     Several make variables can be set that affect the building of ports.  These
     variables and their effects are documented  in  ports(7),	${PORTSDIR}/Mk/*
     and the FreeBSD Porter's Handbook.

FILES
     /etc/make.conf
     /usr/doc/Makefile
     /usr/ports/Makefile
     /usr/share/examples/etc/make.conf
     /usr/share/mk/sys.mk
     /usr/src/Makefile
     /usr/src/Makefile.inc1

SEE ALSO
     cc(1), install(1), make(1), src.conf(5), environ(7), ports(7), sendmail(8)

HISTORY
     The make.conf file appeared sometime before FreeBSD 4.0.

AUTHORS
     This manual page was written by Mike W. Meyer <mwm@mired.org>.

CAVEATS
     Note,  that  MAKEOBJDIRPREFIX  and MAKEOBJDIR are environment variables and
     should not be set in make.conf or as command line arguments to make(1), but
     in make's environment.

BUGS
     This manual page may occasionally be out of date with respect  to	the  op-
     tions   currently	available  for	use  in  make.conf.   Please  check  the
     /usr/share/examples/etc/make.conf file for the  latest  options  which  are
     available.

FreeBSD 11.1			 March 29, 2016 		    MAKE.CONF(5)

home | help