150472Speter# $FreeBSD$
21664Sphk#
369040Sben# NOTE:  Please would any committer updating this file also update the
469040Sben# make.conf(5) manual page, if necessary, which is located in
569040Sben# src/share/man/man5/make.conf.5.
669040Sben#
782604Salex# /etc/make.conf, if present, will be read by make (see
882604Salex# /usr/share/mk/sys.mk).  It allows you to override macro definitions
982604Salex# to make without changing your source tree, or anything the source
1082604Salex# tree installs.
111664Sphk#
123023Srgrimes# This file must be in valid Makefile syntax.
133023Srgrimes#
1482604Salex# There are additional things you can put into /etc/make.conf.
1582604Salex# You have to find those in the Makefiles and documentation of
1682604Salex# the source tree.
171664Sphk#
18133476Sharti# Note, that you should not set MAKEOBJDIRPREFIX or MAKEOBJDIR
19133476Sharti# from make.conf (or as command line variables to make).
20133476Sharti# Both variables are environment variables for make and must be used as:
2172679Skris#
22133476Sharti# env MAKEOBJDIRPREFIX=/big/directory make
23133476Sharti#
24133476Sharti#
2599260Sjohan# The CPUTYPE variable controls which processor should be targeted for
2672878Skris# generated code.  This controls processor-specific optimizations in
2772878Skris# certain code (currently only OpenSSL) as well as modifying the value
28243315Sjkim# of CFLAGS to contain the appropriate optimization directive to cc.
2972878Skris# The automatic setting of CFLAGS may be overridden using the
3072878Skris# NO_CPU_CFLAGS variable below.
31243846Sjkim# Currently the following CPU types are recognized:
3273145Skris#   Intel x86 architecture:
33251692Sjkim#       (AMD CPUs)	amdfam10, opteron-sse3, athlon64-sse3, k8-sse3,
34251691Sjkim#			opteron, athlon64, athlon-fx, k8, athlon-mp,
35292198Sbrueffer#			athlon-xp, athlon-4, athlon-tbird, athlon, k7,
36251691Sjkim#			geode, k6-3, k6-2, k6
37243315Sjkim#       (Intel CPUs)	core2, core, nocona, pentium4m, pentium4, prescott,
38243315Sjkim#			pentium3m, pentium3, pentium-m, pentium2,
39243831Sjkim#			pentiumpro, pentium-mmx, pentium, i486
40243315Sjkim#       (VIA CPUs)	c7, c3-2, c3
41252314Sjkim#   AMD64 architecture:	amdfam10, opteron-sse3, athlon64-sse3, k8-sse3,
42252314Sjkim#			opteron, athlon64, k8, core2, nocona
43243315Sjkim#   Intel ia64 architecture:	itanium2, itanium
44216820Smarius#   SPARC-V9 architecture:	v9 (generic 64-bit V9), ultrasparc (default
45216820Smarius#				if omitted), ultrasparc3
46243315Sjkim# Additionally the following CPU types are recognized by clang:
47243315Sjkim#   Intel x86 architecture (for both amd64 and i386):
48263882Sjkim#       (AMD CPUs)	bdver3, bdver2, bdver1, btver2, btver1
49263882Sjkim#       (Intel CPUs)	slm, core-avx2, core-avx-i, corei7-avx, corei7, atom
5072679Skris#
51101232Sru# (?= allows to buildworld for a different CPUTYPE.)
52101232Sru#
53136608Sobrien#CPUTYPE?=pentium3
54136914Sru#NO_CPU_CFLAGS=		# Don't add -march=<cpu> to CFLAGS automatically
55136914Sru#NO_CPU_COPTFLAGS=	# Don't add -march=<cpu> to COPTFLAGS automatically
5672878Skris#
5758648Skris# CFLAGS controls the compiler settings used when compiling C code.
58131467Sdes# Note that optimization settings other than -O and -O2 are not recommended
5958648Skris# or supported for compiling the world or the kernel - please revert any
60244122Seadler# nonstandard optimization settings
61162276Sru# before submitting bug reports without patches to the developers.
621664Sphk#
63269102Sian# CFLAGS.arch provides a mechanism for applying CFLAGS only when building 
64269102Sian# the given architecture.  This is useful primarily on a system used for 
65269102Sian# cross-building, when you have a set of flags to apply to the TARGET_ARCH 
66269102Sian# being cross-built but don't want those settings applied to building the 
67269102Sian# cross-tools or other components that run on the build host machine.  
68269102Sian#
6959006Sobrien# CXXFLAGS controls the compiler settings used when compiling C++ code.
7059006Sobrien# Note that CXXFLAGS is initially set to the value of CFLAGS.  If you wish
7159006Sobrien# to add to CXXFLAGS value, "+=" must be used rather than "=".  Using "="
7259006Sobrien# alone will remove the often needed contents of CFLAGS from CXXFLAGS.
731664Sphk#
74244122Seadler# Additional compiler flags can be specified that extend or override
75244122Seadler# default ones. However, neither the base system nor ports are guaranteed
76244122Seadler# to build and function without problems with non-default settings.
7759006Sobrien#
78244122Seadler# CFLAGS+=	-msse3
79244122Seadler# CXXFLAGS+=	-msse3
80269102Sian# CFLAGS.armv6+= -mfloat-abi=softfp
81244122Seadler#
82104124Sjmallett# MAKE_SHELL controls the shell used internally by make(1) to process the
83104124Sjmallett# command scripts in makefiles.  Three shells are supported, sh, ksh, and
84104124Sjmallett# csh.  Using sh is most common, and advised.  Using ksh *may* work, but is
85104124Sjmallett# not guaranteed to.  Using csh is absurd.  The default is to use sh.
86104124Sjmallett#
87104124Sjmallett#MAKE_SHELL?=sh
88104124Sjmallett#
8962136Sobrien# BDECFLAGS are a set of gcc warning settings that Bruce Evans has suggested
9062136Sobrien# for use in developing FreeBSD and testing changes.  They can be used by
9180452Speter# putting "CFLAGS+=${BDECFLAGS}" in /etc/make.conf.  -Wconversion is not
9299260Sjohan# included here due to compiler bugs, e.g., mkdir()'s mode_t argument.
9362136Sobrien#
9482604Salex#BDECFLAGS=	-W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
9582604Salex#		-Wcast-qual -Wchar-subscripts -Winline \
9682604Salex#		-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
9782604Salex#		-Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings
9862136Sobrien#
9968917Sdougb# To compile just the kernel with special optimizations, you should use
10068263Sobrien# this instead of CFLAGS (which is not applicable to kernel builds anyway).
10168263Sobrien# There is very little to gain by using higher optimization levels, and doing
10268263Sobrien# so can cause problems.
10365380Sobrien#
10465380Sobrien#COPTFLAGS= -O -pipe
10565380Sobrien#
106230306Sschweikh# Compare before install.
107249952Sbdrewery#INSTALL+= -C
10835222Sache#
109230306Sschweikh# Mtree will follow symlinks.
11065957Sache#MTREE_FOLLOWS_SYMLINKS= -L
11165884Sache#
11297387Stjr# To enable installing newgrp(1) with the setuid bit turned on.
11397387Stjr# Without the setuid bit, newgrp cannot change users' groups.
114136914Sru#ENABLE_SUID_NEWGRP=
11597387Stjr#
11651299Speter# To avoid building various parts of the base system:
117136914Sru#NO_MODULES=		# do not build modules with the kernel
118139120Sru#NO_SHARE=		# do not go into the share subdir
119151552Strhodes#NO_SHARED= 		# build /bin and /sbin statically linked (bad idea)
12035206Sphk#
121138896Strhodes# Variables that control how ppp(8) is built.
122139118Sru#PPP_NO_NAT= 		# do not build with NAT support (see make.conf(5))
123139118Sru#PPP_NO_NETGRAPH= 	# do not build with Netgraph support
124151592Smaxim#PPP_NO_RADIUS= 	# do not build with RADIUS support
125139118Sru#PPP_NO_SUID=		# build with normal permissions
126138896Strhodes#
127139125Sru#TRACEROUTE_NO_IPSEC= 	# do not build traceroute(8) with IPSEC support
128139125Sru#
129230306Sschweikh# To build sys/modules when building the world (our old way of doing things).
130136914Sru#MODULES_WITH_WORLD=	# do not build modules when building kernel
13161744Sobrien#
13288461Sru# The list of modules to build instead of all of them.
13388461Sru#MODULES_OVERRIDE=	linux ipfw
13457458Smarkm#
135140546Swes# The list of modules to never build, applied *after* MODULES_OVERRIDE.
136140546Swes#WITHOUT_MODULES=	bktr plip
137140546Swes#
1381684Scsgr# If you do not want unformatted manual pages to be compressed
1391684Scsgr# when they are installed:
1401684Scsgr#
141139103Sru#NO_MANCOMPRESS=
1421697Sache#
1431697Sache#
1441697Sache# Default format for system documentation, depends on your printer.
145230306Sschweikh# Set this to "ascii" for simple printers or screen.
1461697Sache#
14725424Sandreas#PRINTERDEVICE=	ps
1481733Sadam#
1491733Sadam#
15014102Sadam# How long to wait for a console keypress before booting the default kernel.
15114102Sadam# This value is approximately in milliseconds. Keypresses are accepted by the
15214102Sadam# BIOS before booting from disk, making it possible to give custom boot
15314102Sadam# parameters even when this is set to 0.
1541733Sadam#
1551740Sadam#BOOTWAIT=0
1563023Srgrimes#BOOTWAIT=30000
1571733Sadam#
15818927Spst# By default, the system will always use the keyboard/video card as system
15926522Sbde# console.  However, the boot blocks may be dynamically configured to use a
16026522Sbde# serial port in addition to or instead of the keyboard/video console.
1611733Sadam#
16218927Spst# By default we use COM1 as our serial console port *if* we're going to use
16349190Snik# a serial port as our console at all.  Alter as necessary.
16418927Spst#
16549190Snik#   COM1: = 0x3F8, COM2: = 0x2F8, COM3: = 0x3E8, COM4: = 0x2E8
16649190Snik#
16718928Spst#BOOT_COMCONSOLE_PORT=	0x3F8
16818927Spst#
16926522Sbde# The default serial console speed is 9600.  Set the speed to a larger value
17026522Sbde# for better interactive response.
17118927Spst#
17226522Sbde#BOOT_COMCONSOLE_SPEED=	115200
17318927Spst#
17468310Sps# By default the 'pxeboot' loader retrieves the kernel via NFS.  Defining
17568310Sps# this and recompiling /usr/src/sys/boot will cause it to retrieve the kernel
17668310Sps# via TFTP.  This allows pxeboot to load a custom BOOTP diskless kernel yet
17799260Sjohan# still mount the server's '/' (i.e. rather than load the server's kernel).
17818927Spst#
17968310Sps#LOADER_TFTP_SUPPORT= YES
18068310Sps#
18175982Sjim#
18296436Snectar# Kerberos 5 su (k5su)
18396436Snectar# If you want to use the k5su utility, define this to have it installed
18496436Snectar# set-user-ID.
185136914Sru#ENABLE_SUID_K5SU=
18656553Smarkm#
18796436Snectar#
18824225Sjoerg# top(1) uses a hash table for the user names.  The size of this hash
18924225Sjoerg# can be tuned to match the number of local users.  The table size should
19024225Sjoerg# be a prime number approximately twice as large as the number of lines in
19124225Sjoerg# /etc/passwd.  The default number is 20011.
19224225Sjoerg#
19324225Sjoerg#TOP_TABLE_SIZE= 101
19458449Snik#
19558449Snik# Documentation
19658449Snik#
197230306Sschweikh# The list of languages and encodings to build and install.
19858449Snik#
19978035Sache#DOC_LANG=	en_US.ISO8859-1 ru_RU.KOI8-R
20065970Sgshapiro#
20165970Sgshapiro#
20265970Sgshapiro# sendmail
20372846Sgshapiro#
20472846Sgshapiro# The following sets the default m4 configuration file to use at
20572846Sgshapiro# install time.  Use with caution as a make install will overwrite
20672846Sgshapiro# any existing /etc/mail/sendmail.cf.  Note that SENDMAIL_CF is now
20772916Sgshapiro# deprecated.  The value should be a fully qualified path name.
20872846Sgshapiro#
20973836Sgshapiro#SENDMAIL_MC=/etc/mail/myconfig.mc
21072846Sgshapiro#
21194676Sgshapiro# The following sets the default m4 configuration file for mail
21294676Sgshapiro# submission to use at install time.  Use with caution as a make
21394676Sgshapiro# install will overwrite any existing /etc/mail/submit.cf.  The
21494676Sgshapiro# value should be a fully qualified path name.
21594676Sgshapiro#
21694676Sgshapiro#SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc
21794676Sgshapiro#
21872918Sgshapiro# If you need to build additional .cf files during a make buildworld,
21972918Sgshapiro# include the full paths to the .mc files in SENDMAIL_ADDITIONAL_MC.
22072918Sgshapiro#
22172918Sgshapiro#SENDMAIL_ADDITIONAL_MC=/etc/mail/foo.mc /etc/mail/bar.mc
22272918Sgshapiro#
223120397Sgshapiro# The following overrides the default location for the m4 configuration
224120397Sgshapiro# files used to build a .cf file from a .mc file.
225120397Sgshapiro#
226120397Sgshapiro#SENDMAIL_CF_DIR=/usr/local/share/sendmail/cf
227120397Sgshapiro#
22880175Sgshapiro# Setting the following variable modifies the flags passed to m4 when
22980175Sgshapiro# building a .cf file from a .mc file.  It can be used to enable
23080175Sgshapiro# features disabled by default.
23180175Sgshapiro#
23280175Sgshapiro#SENDMAIL_M4_FLAGS=
23380175Sgshapiro#
23478862Sgshapiro# Setting the following variables modifies the build environment for
23565970Sgshapiro# sendmail and its related utilities. For example, SASL support can be
23665970Sgshapiro# added with settings such as:
23765970Sgshapiro#
238103898Sume#    with SASLv1:
239101065Sume#	SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
24065970Sgshapiro#	SENDMAIL_LDFLAGS=-L/usr/local/lib
24165970Sgshapiro#	SENDMAIL_LDADD=-lsasl
24265970Sgshapiro#
243103898Sume#    with SASLv2:
244103898Sume#	SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
245103898Sume#	SENDMAIL_LDFLAGS=-L/usr/local/lib
246103898Sume#	SENDMAIL_LDADD=-lsasl2
247103898Sume#
24869380Sgshapiro# Note: If you are using Cyrus SASL with other applications which require
24993449Sume#	access to the sasldb file, you should add the following to your
25093449Sume#	sendmail.mc file:
25169380Sgshapiro#
25293446Sume#	define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLDBFile')
25369380Sgshapiro#
25465970Sgshapiro#SENDMAIL_CFLAGS=
25565970Sgshapiro#SENDMAIL_LDFLAGS=
25665970Sgshapiro#SENDMAIL_LDADD=
25765970Sgshapiro#SENDMAIL_DPADD=
25890803Sgshapiro#
25990803Sgshapiro# Setting SENDMAIL_SET_USER_ID will install the sendmail binary as a
26090803Sgshapiro# set-user-ID root binary instead of a set-group-ID smmsp binary and will
26190803Sgshapiro# prevent the installation of /etc/mail/submit.cf.
26290803Sgshapiro# This is a deprecated mode of operation.  See etc/mail/README for more
26390803Sgshapiro# information.
26490803Sgshapiro#
26590803Sgshapiro#SENDMAIL_SET_USER_ID=
26697200Sgshapiro#
26797200Sgshapiro# The permissions to use on alias and map databases generated using
26897200Sgshapiro# /etc/mail/Makefile.  Defaults to 0640.
26997200Sgshapiro#
27097200Sgshapiro#SENDMAIL_MAP_PERMS=
271217826Ssem#
272217826Ssem#
273217826Ssem# It is also possible to set variables in make.conf which will only be
274217826Ssem# used when compiling a specific port.  For more details see make(1).
275217826Ssem#
276217826Ssem#.if ${.CURDIR:M*/irc/irssi-devel*}
277217826Ssem#WITH_DEBUG=YES
278217826Ssem#.endif
279217826Ssem#
280217826Ssem# Another approach is to use /usr/ports/ports-mgmt/portconf which has
281217826Ssem# its own config file for port specific options.
282