Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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).   In  the case of world and kernel builds it is possible to put
     these variables into src.conf(5) instead of make.conf.  This way the  envi-
     ronment  for  documentation  and  ports builds is not polluted by unrelated
     variables.

     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).  To set the CPUTYPE value,
		   use "?=" instead of "=" so  that  it  can  be  overridden  by
		   make(1)  targets.   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 recognized
		   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 "=".

     DTC	   (str)  Select the compiler for DTS (Device Tree Syntax) file.
		   DTC is initially set to the value of dtc

     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.

   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/stand  will
		   cause  it  to retrieve the kernel via TFTP.	This allows pxe-
		   boot(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/stand/i386 will
		   add	dcons(4)  console  driver  to loader(8) and allow access
		   over FireWire(IEEE1394) using dconschat(8).	Currently,  only
		   i386 and amd64 are supported.

     MAN_ARCH	   (str)  Space-delimited list of one or more MACHINE and/or MA-
		   CHINE_ARCH values for which section 4 man pages will  be  in-
		   stalled.   The special value `all' installs all available ar-
		   chitectures.  It is also the default value.

     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.

     PKG_REPO_SIGNING_KEY
		   (str)  Path	to rsa private key passed to pkg-repo(8) to sign
		   packages created when building  the	packages  target,  i.e.:
		   pkgbase.   The  variable is named the same in poudriere(8) so
		   it will automatically be picked up when building pkgbase with
		   poudriere.

     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 deprecated.

     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.d/sendmail.

     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.

     DOC_LANG	    (str) The list of languages to build and install when build-
		    ing documentation in /usr/doc.

     PRINTERDEVICE  (str)   The  default  format  for  system  documentation  in
		    /usr/src/share/doc, 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),  style.Makefile(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 ports 15.quarterly	November 15, 2022		    MAKE.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help