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).
		     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	13.2		       November	15, 2022		  MAKE.CONF(5)

NAME | DESCRIPTION | FILES | SEE ALSO | HISTORY | AUTHORS | CAVEATS | BUGS

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

home | help