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  follows: make(1) processes	the system makefile sys.mk be-
       fore 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 alterna-
       tive 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,  set-
       ting  __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 usu-
       ally  found in /usr/src,	/usr/doc, and /usr/ports.  As a	rule, the sys-
       tem administrator 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
       kernel, documentation and ports.	 Variables set in make.conf may	be ap-
       plicable	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 environment	for documentation and ports builds is not pol-
       luted by	unrelated variables.

       The following lists provide a name and short description	for each vari-
       able 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	targets	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
		     generated	code.	This controls processor-specific opti-
		     mizations 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	recog-
		     nized 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 "+=" in-
		     stead 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  in-
		     stall 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 sym-
		     links.

       NO_CPU_CFLAGS
		     (str) Setting this	variable  will	prevent	 CPU  specific
		     compiler  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
		     console keypress before booting the default kernel.   The
		     value  is approximately milliseconds.  Keypresses are ac-
		     cepted 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
		     kernel.  Optimization levels above	[-O  (-O2,  ...)]  are
		     not guaranteed to work.

       KERNCONF	     (str)  Controls which kernel configurations will be built
		     by	 "${MAKE}  buildkernel"	 and  installed	 by   "${MAKE}
		     installkernel".  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  in-
		     stead 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  in-
		     stead 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 console 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.  Oth-
		     erwise,  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  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/stand/i386
		     will add dcons(4) console driver to loader(8)  and	 allow
		     access  over FireWire(IEEE1394) using dconschat(8).  Cur-
		     rently, only i386 and amd64 are supported.

       MAN_ARCH	     (str) Space-delimited list	of one or more MACHINE	and/or
		     MACHINE_ARCH values for which section 4 man pages will be
		     installed.	  The  special value `all' installs all	avail-
		     able architectures.  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) config-
		     uration 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
		     sendmail(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 data-
		     base 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 in-
		     stall time.  The value should include the	full  path  to
		     the .mc file, e.g., /etc/mail/myconfig.mc.	 Use with cau-
		     tion  as  a  make	install	 will  overwrite  any existing
		     /etc/mail/sendmail.cf.  Note that SENDMAIL_CF  is	depre-
		     cated.

       SENDMAIL_SET_USER_ID
		     (bool)  If	set, install sendmail(8) as a set-user-ID root
		     binary instead of a set-group-ID binary and  do  not  in-
		     stall  /etc/mail/submit.{cf,mc}.  Use of this flag	is not
		     recommended    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  sub-
		     mission 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  in-
		     stall 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 lo-
		     cal users.	 The table size	should be a prime  number  ap-
		     proximately  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 opti-
		     mization 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
		      building 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 post-
		      script 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
       options 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	15.0 STABLE	       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&manpath=FreeBSD+15.0-STABLE>

home | help