1.\" Copyright (c) 2000 2.\" Mike W. Meyer 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd Nov 3, 2000 28.Dt MAKE.CONF 5 29.Os 30.Sh NAME 31.Nm make.conf 32.Nd system build information. 33.Sh DESCRIPTION 34The file 35.Nm 36contains settings that control the compilation of the FreeBSD sources 37and ported applications. The file 38.Nm 39is generally created by the system administrator when the values need 40to be changed from their defaults. 41.Pp 42The purpose of 43.Nm 44is not to run commands or perform compilation actions 45directly. Instead, it is included by the 46various makefiles in 47.Pa /usr/src, 48.Pa /usr/ports 49and 50.Pa /usr/doc 51which conditionalize their 52internal actions according to the settings found there. 53.Pp 54The 55.Pa /etc/make.conf 56file is included from the the appropriate Makefile 57which specifies the default settings for all the available options. 58Options need only be specified in 59.Pa /etc/make.conf 60when the system administrator wishes to override these defaults. 61.Pp 62The build procedures occur in four broad areas: the world, the kernel, 63documentations and ports. Variables set in 64.Nm 65may be applicable during builds in one, two, or all four of these 66areas. They may be specified for a particular build via the 67.Op -D 68option of 69.Xr make 1 . 70.Pp 71The following lists provides a name and short description for each 72variable you can use during the indicated builds. The values of 73variables flagged as 74bool 75are ignored; the variable being 76set at all (even to 77.Li Dq FALSE 78or 79.Li Dq NO ) 80cause it to 81be treated as if it were set. 82.Pp 83The following list provides a name and short description for variables 84that are used for all builds, or are used by the 85makefiles for things other than builds. 86.Bl -tag -width Ar 87.It Ar CFLAGS 88(str) Controls the compiler setting when compiling C code. 89Optimization levels above 90.Op -O ( -O2 , ...) 91are not supported. BDECFLAGS 92is provided as a set of gcc settings suggested by Bruce Evans 93for developgin and testing changs. They can be used by: 94.Bd -literal -offset indent 95CXFLAGS+=${BDECFLAGS} 96.Ed 97.It Ar CVS_UPDATE 98(bool) Set this to use cvs to update your ports with 99.Cm "make update" . 100.It Ar CXXFLAGS 101(str) Controls the compiler settings when compiling C++ code. 102CXXFLAGS is initially set to the value of CFLAGS. If you want to 103add to the CXXFLAGS value, use 104.Dq Li += 105instead of 106.Dq Li = . 107.It Ar INSTALL 108(str) the default install command. To have commands compared before doing 109the install, use 110.Bd -literal -offset indent 111INSTALL="install -C" 112.Ed 113.It Ar LOCAL_DIRS 114(str) List any directories that should be entered when doing 115make's in 116.Pa /usr/src 117in this variable. 118.It Ar MTREE_FOLLOWS_SYMLINKS 119(str) Set this to 120.Dq Li -L 121to cause mtree to follow symlinks. 122.It Ar NO_DOCUPDATE 123(bool) Set this to not update the doc tree during 124.Cm "make update" . 125.It Ar NO_PORTSUPDATE 126(bool) Set this to not update the ports tree during 127.Cm "make update" . 128.It Ar SUP_UPDATE 129(bool) Set this to use cvsup to update your ports with 130.Cm "make update" . 131.It Ar SUP 132(str) The location of the cvsup command for 133.Cm "make update" . 134.It Ar SUPFLAGS 135(str) The flag for the sup command when doing 136.Cm "make update" . 137This defaults to 138.Op "-g -L 2" . 139.It Ar SUPHOST 140(str) The hostname of the sup server to use when doing 141.Cm "make update" . 142.It Ar SUPFILE 143(str) The first supfile to use when doing a 144.Cm "make update" . 145This defaults to 146.Pa /usr/share/examples/cvsup/standard-supfile . 147.It Ar SUPFILE1 148(str) The second supfile to use when doing a 149.Cm "make update" . 150This defaults to 151.Pa /usr/share/examples/cvsup/secure-supfile . 152.It Ar SUPFILE2 153(str) The third supfile to use when doing a 154.Cm "make update" . 155This defaults to 156.Pa /usr/share/examples/cvsup/secure-supfile . 157.It Ar PORTSSUPFILE 158(str) The ports supfile to use when doing a 159.Cm "make update" . 160This defaults to 161.Pa /usr/share/examples/cvsup/ports-supfile . 162.It Ar DOCSUPFILE 163(str) The documentation supfile to use when doing a 164.Cm "make update" . 165This defaults to 166.Pa /usr/share/examples/cvsup/doc-supfile . 167.El 168.Pp 169The following list provides a name and short description for variables 170that are only used doing a kernel build: 171.Bl -tag -width Ar 172.It Ar BOOT_COMCONSOLE_PORT 173(str) The port address to use for the console if the boot blocks have 174been configured to use a serial console instead of the keyboard/video card. 175.It Ar BOOT_COMCONSOLE_SPEED 176(int) The baud rate to use for the console if the boot blocks have 177been configured to use a serial console instead of the keyboard/video card. 178.It Ar BOOTWAIT 179(int) Controls the amount of time the kernel waits for a console keypress 180before booting the default kernel. The value is approximately 181milliseconds. Keypresses are accepted by the BIOS before booting from disk, 182making it possible to give custom boot parameters even when this is 183set to 0. 184.It Ar COPTFLAGS 185(str) Controls the compiler settings when building the 186kernel. Optimization levels above 187.Op -O 188.Op -O2 , 189...) are not supported. 190.It Ar NO_KERNELCONFIG 191(bool) Set this to skip running 192.Xr config 8 193during 194.Cm "${MAKE} buildkernel" . 195.It Ar NO_KERNELDEPEND 196(bool) Set this to skip running 197.Cm "${MAKE} depend" 198during 199.Cm "${MAKE} buildkernel" . 200.It Ar NO_MODULES 201(bool) Set to not build modules with the kernel. 202.El 203.Pp 204The following list provides a name and short description for variables 205that are used during the world build: 206.Bl -tag -width Ar 207.It Ar COMPAT1X 208(bool) Set to install the 209.Fx 2101 compatibility libraries. 211.It Ar COMPAT20 212(bool) Set to install the 213.Fx 2.0 214compatibility libraries. 215.It Ar COMPAT21 216(bool) Set to install the 217.Fx 2.1 218compatibility libraries. 219.It Ar COMPAT22 220(bool) Set to install the 221.Fx 2.2 222compatibility libraries. 223.It Ar COMPAT3X 224(bool) Set to install the 225.Fx 2263 compatibility libraries. 227.It Ar ENABLE_SUIDPERL 228(bool) Set to enable the installation of an suid perl binary. 229.It Ar FETCH_CMD 230(str) Command to use to fetch files. Normally 231.Xr fetch 1 . 232.It Ar MAKE_IDEA 233(bool) Set to build the IDEA encryption code. This code is patented in 234the USA and many european countries. It is 235.Em "YOUR RESPONSIBILITY" 236to determine if you can legally use IDEA. 237.It Ar MAKE_KERBEROS4 238(bool) Set this to build KerberosIV (KTH eBones). 239.It Ar MAKE_KERBEROS5 240(bool) Set this to build Kerberos5 (KTH Heimdal). 241.Em WARNING! 242This is still experimental code. If you need stable Kerberos5, use the 243port(s). 244.It Ar MODULES_WITH_WORLD 245(bool) Set to build modules with the system instead of the kernel. 246.It Ar NO_CVS 247(bool) Set to not build CVS. 248.It Ar NO_BIND 249(bool) Set to not build BIND. 250.It Ar NO_FORTRAN 251(bool) Set to not build g77 and related libraries. 252.It Ar NO_LPR 253(bool) Set to not build lpr and related programs. 254.It Ar NO_MAILWRAPPER 255(bool) Set to not build the mailwrapper(8) MTA selector. 256.It Ar NO_MAKEDEV 257(bool) Set to avoid running MAKEDEV all on /dev during install. 258.It Ar NO_OBJC 259(bool) Set to not build Objective C support. 260.It Ar NO_OPENSSH 261(bool) Set to not build OpenSSH. 262.It Ar NO_OPENSSL 263(bool) Set to not build OpenSSL (implies NO_OPENSSH). 264.It Ar NO_SENDMAIL 265(bool) Set to not build sendmail and related programs. 266.It Ar NO_SHAREDOCS 267(bool) Set to not build the 4.4BSD legacy docs. 268.It Ar NO_TCSH 269(bool) Set to not build and install /bin/csh (which is tcsh). 270.It Ar NO_X 271(bool) Set to not compile in XWindows support (e.g. doscmd). 272.It Ar NOCLEAN 273(bool) Set this to disable cleaning during 274.Cm "make buildworld" . 275This should not be set unless you know what you are doing. 276.It Ar NOCLEANDIR 277(bool) Set this to run 278.Cm "${MAKE} clean" 279instead of 280.Cm "${MAKE} cleandir" . 281.It Ar NOCRYPT 282(bool) Set to not build any crypto code. 283.It Ar NOGAMES 284(bool) Set to not build games. 285.It Ar NOINFO 286(bool) Set to not make or install info files. 287.It Ar NOLIBC_R 288(bool) Set to not build libc_r (re-entrant version of libc). 289.It Ar NOMANCOMPRESS 290(bool) Set to install man pages uncompressed. 291.It Ar NOPERL 292(bool) Set to avoid building perl. 293.It Ar NOPROFILE 294(bool) Set to avoid compiling profiled libraries. 295.It Ar NOSECURE 296(bool) set to not build crypto code in secure subdir. 297.It Ar NOSHARE 298(bool) Set to not build in the share subdir. 299.It Ar NOUUCP 300(bool) Set to not build uucp related programs. 301.It Ar PERL_THREADED 302(bool) Set to enable the building and installation of perl with thread 303support. 304.It Ar PPP_NOSUID 305(bool) Set to disable the installation of ppp as an suid root program. 306.It Ar SENDMAIL_CFLAGS 307(str) Flags to pass to the compile command when building sendmail. The 308sendmail flags can be used to provide SASL support with setting such as: 309.Bd -literal -offset indent 310SENDMAIL_CFLAGS=-I/usr/local/include -DSASL 311SENDMAIL_LDFLAGS=-L/usr/local/lib 312SENDMAIL_LDADD=-lsasl 313.Ed 314.It Ar SENDMAIL_LDFLAGS 315(str) Flags to pass to the ld command when building sendmail. 316.It Ar SENDMAIL_LDADD 317(str) Flags to add to the end of the ld command when building sendmail. 318.It Ar SENDMAIL_DPADD 319(str) This variable is undocumented. 320.El 321.Pp 322The following list provides a name and short description for variables 323that are used when building documentation. 324.Bl -tag -width Ar 325.It Ar DISTDIR 326(str) Where distfiles are kept. Normally, this is 327.Pa distfiles 328in 329.Ev PORTSDIR . 330.It Ar DOC_LANG 331(str) The list of languages and encodings to build and install. 332.It Ar PRINTERDEVICE 333(str) The default format for system documentation, depends on your 334printer. This can be set to 335.Dq Li ascii 336for simple printers or 337.Dq Li ps 338for postscript or graphics printers with a ghostscript 339filter. 340.El 341.Pp 342The following list provides a name and short description for variables 343that are used when building ports: 344.Bl -tag -width Ar 345.It Ar FORCE_PKG_RESIDENT 346(bool) Set this to override any existing package registration. 347.It Ar HAVE_MOTIF 348(bool) Set this if you have Motif on your system. 349.It Ar KRB5_HOME 350(str) Set this if you want to install the MIT Kerberos5 port somewhere 351other than 352.Pa /usr/local . 353.It Ar LOCALBASE 354(str) Set this to the base directory that non-X ports should be 355installed in. It provides the default for PREFIX when building in 356.Pa /usr/ports . 357.It Ar MASTER_SITE_AFTERSTEP 358(str) Set this to change the master site for AfterStep ports. The last 359part of the path must be 360.Dq Li /%SUBDIR%/ . 361.It Ar MASTER_SITE_BACKUP 362(str) Controls the site location that ports check for distfiles if the 363locations listed in their 364.Pa Makefile 365do not work. The last part of the path must be 366.Dq Li /${DIST_SUBDIR}/ . 367.It Ar MASTER_SITE_COMP_SOURCES 368(str) Controls the master site location for comp.sources ports. The 369last part of the path must be 370.Dq Li %SUBDIR%/ 371.It Ar MASTER_SITE_GNOME 372(str) Controls the master site location for GNOME ports. The 373last part of the path must be 374.Dq Li /%SUBDIR%/ 375.It Ar MASTER_SITE_GNU 376(str) Controls the master site location for GNU ports. The 377last part of the path must be 378.Dq Li /%SUBDIR%/ 379.It Ar MASTER_SITE_KDE 380(str) Controls the master site location for KDE ports. The 381last part of the path must be 382.Dq Li /%SUBDIR%/ 383.It Ar MASTER_SITE_FREEBSD 384(bool) If set, go to the master 385.Fx 386site for all files. 387.It Ar MASTER_SITE_MOZILLA 388(str) Controls the master site location for Mozilla ports. The 389last part of the path must be 390.Dq Li /%SUBDIR%/ 391.It Ar MASTER_SITE_OVERRIDE 392(str) If set, this site is checked before the sites listed in the ports 393.Pa Makefile . 394You can have it check the backup site first by like so: 395.Bd -literal -offset indent 396MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} 397.Ed 398.It Ar MASTER_SITE_PERL_CPAN 399(str) Controls the master site location for Perl ports. The 400last part of the path must be 401.Bd -literal -offset indent 402/%SUBDIR%/ 403.Ed 404.It Ar MASTER_SORT_REGEX 405(str) Set this to control the sort order for mirror sets. To set it to 406prefer mirrors in the .jp domain, use: 407.Bd -literal -offset indent 408MASTER_SORT_REGEX?= ^file: ^ftp://ftp\.FreeBSD\.org/pub/FreeBSD/ports/local-distfiles/ ://[^/]*\.jp/ ://[^/]*\.jp\. 409.Ed 410Users of other ccTLD domins should change the 411.Dq Li jp 412to the 413appropriate domain. 414.It Ar MASTER_SITE_RINGSERVER 415(str) Controls the master site location for Ringserver ports. The last 416part of the path must be 417.Dq Li /%SUBDIR%/ . 418.It Ar MASTER_SITE_RUBY 419(str) Controls the master site location for Ruby ports. The last 420part of the path must be 421.Dq Li /%SUBDIR%/ . 422.It Ar MASTER_SITE_SUNSITE 423(str) Controls the master site location for Sunsite ports. The last 424part of the path must be 425.Dq Li /%SUBDIR%/ . 426.It Ar MASTER_SITE_TCLTK 427(str) Controls the master site location for Tcl and Tk ports. The last 428part of the path must be 429.Dq Li /%SUBDIR%/ . 430.It Ar MASTER_SITE_TEX_CTAN 431(str) Controls the master site location for TeX ports. The last 432part of the path must be 433.Dq Li /%SUBDIR%/ . 434.It Ar MASTER_SITE_WINDOWMAKER 435(str) Controls the master site location for WindowMaker ports. The last 436part of the path must be 437.Dq Li /%SUBDIR%/ . 438.It Ar MASTER_SITE_XCONTRIB 439(str) Controls the master site location for contributed X ports. The last 440part of the path must be 441.Dq Li /%SUBDIR%/ . 442.It Ar MASTER_SITE_XEMACS 443(str) Controls the master site location for Xemacs ports. The last 444part of the path must be 445.Dq Li /%SUBDIR%/ . 446.It Ar MASTER_SITE_XFREE 447(str) Controls the master site location for XFree ports. The last 448part of the path must be 449.Dq Li /%SUBDIR%/ . 450.It Ar MOTIFLIB 451(str) Location of 452.Pa libXm.a 453and 454.Pa libXm.so . 455.It Ar MOTIF_STATIC 456(bool) Set this if you want ports that use Motif to be built so they 457can be run on systems without the Motif shared libraries. 458.It Ar NOCLEANDEPENDS 459(bool) Set this to prevent 460.Cm "make clean" 461from cleaning the ports that the one being cleaned depends on. 462.It Ar NOPORTDOCS 463(bool) Set this to disable installing additional documentation with ports. 464.It Ar PACKAGES 465(str) Used only for the package target; the directory for the package tree. 466.It Ar PATCH_SITES 467(str) Primary location(s) for the distribution of patch files. 468.It Ar PORTSDIR 469(str) The location of the ports tree. 470.It Ar USA_RESIDENT 471(bool) Set this if you are a resident of the USA so that ports that 472need to can attemp to comply with U.S. export regulations. 473.It Ar WRKDIRPREFIX 474(str) Where to create temporary files used when building ports. 475.It Ar X11BASE 476(str) Should be set to where the X11 distribution has been 477installed if it is installed anywhere other than /usr/X11R6. 478.Sh FILES 479.Bl -tag -width /etc/defaults/make.conf -compact 480.It Pa /etc/defaults/make.conf 481.It Pa /etc/make.conf 482.It Pa /usr/doc/Makefile 483.It Pa /usr/src/Makefile 484.It Pa /usr/src/Makefile.inc1 485.It Pa /usr/ports/Mk/bsd.port.mk 486.It Pa /usr/ports/Mk/bsd.sites.mk 487.Sh SEE ALSO 488.Xr gcc 1 , 489.Xr install 1 , 490.Xr lpd 8 , 491.Xr make 1 , 492.Xr make 7 , 493.Xr ports 7 , 494.Xr sendmail 8 495.Sh HISTORY 496The 497.Nm 498file appeared sometime before 499.Fx 4.0 . 500.Sh AUTHORS 501.An Mike W. Meyer Aq mwm@mired.org . 502