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: src/share/man/man5/make.conf.5,v 1.12.2.30 2003/05/18 17:05:55 brueffer Exp $ 26.\" $DragonFly: src/share/man/man5/make.conf.5,v 1.26 2007/03/22 23:31:22 swildner Exp $ 27.\" 28.Dd March 23, 2007 29.Dt MAKE.CONF 5 30.Os 31.Sh NAME 32.Nm make.conf 33.Nd system build information 34.Sh DESCRIPTION 35The file 36.Nm 37contains settings that control the compilation of the 38.Dx 39sources. 40The file 41.Nm 42is generally created by the system administrator when the values need 43to be changed from their defaults. 44.Pp 45The purpose of 46.Nm 47is not to run commands or perform compilation actions 48directly. 49Instead, it is included by the various makefiles in 50.Pa /usr/src 51which conditionalize their internal actions according to the settings 52found there. 53.Pp 54The 55.Pa /etc/make.conf 56file is included from the appropriate 57.Pa Makefile 58which specifies the default settings for all the available options. 59Options need only be specified in 60.Pa /etc/make.conf 61when the system administrator wishes to override these defaults. 62.Pp 63The build procedures occur in three areas: world, kernel, and 64documentation. 65Variables set in 66.Nm 67may be applicable during builds in one, two, or all of these areas. 68They may be specified for a particular build via the 69.Fl D 70option of 71.Xr make 1 . 72.Pp 73The following lists provide a name and short description for each 74variable you can use during the indicated builds. 75The values of variables flagged as 76.Vt bool 77are ignored; the variable being set at all (even to 78.Dq Li FALSE 79or 80.Dq Li NO ) 81causes it to be 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 85.Pa makefiles 86for things other than builds. 87.Bl -tag -width Ar 88.It Va CPUTYPE 89.Pq Vt str 90Controls which processor should be targeted for generated code. 91This controls processor-specific optimizations in certain code 92(currently only OpenSSL) as well as modifying the value of 93.Va CFLAGS 94and 95.Va COPTFLAGS 96to contain the appropriate optimization directive to 97.Xr gcc 1 . 98The automatic setting of 99.Va CFLAGS 100and 101.Va COPTFLAGS 102may be overridden using the 103.Va NO_CPU_CFLAGS 104and 105.Va NO_CPU_COPTFLAGS 106variables, respectively. Refer to 107.Pa /usr/share/examples/etc/defaults/make.conf 108for a list of recognized 109.Va CPUTYPE 110options. 111.It Va CCVER 112.Pq Vt str 113Controls which GCC version to use by default. It should be set as 114CCVER?= so as not to interfere with overrides from userland. We 115currently recommend that an override NOT be set in 116.Pa /etc/make.conf . 117Currently accepted values are 118.Dq gcc34 119and 120.Dq gcc41 121(experimental). 122.It Va CFLAGS 123.Pq Vt str 124Controls the compiler setting when compiling C code. 125Optimization levels above 126.Fl O 127.Pq Fl O2 , No ... 128are not supported. 129.Va BDECFLAGS 130is provided as a set of 131.Xr gcc 1 132settings suggested by 133.An "Bruce Evans" Aq bde@FreeBSD.org 134for developing and testing changes. 135They can be used, if set, by: 136.Pp 137.Bd -literal -offset indent 138CFLAGS+=${BDECFLAGS} 139.Ed 140.It Va NO_CPU_CFLAGS 141.Pq Vt str 142Setting this variable will prevent CPU specific compiler flags 143from being automatically added to 144.Va CFLAGS 145during compile time. 146.It Va CXXFLAGS 147.Pq Vt str 148Controls the compiler settings when compiling C++ code. 149.Va CXXFLAGS 150is initially set to the value of 151.Va CFLAGS . 152If you want to add to the 153.Va CXXFLAGS 154value, use 155.Dq Li += 156instead of 157.Dq Li = . 158.It Va INSTALL 159.Pq Vt str 160the default install command. 161To have components compared before doing the install, use 162.Bd -literal -offset indent 163INSTALL="install -C" 164.Ed 165.It Va LOCAL_DIRS 166.Pq Vt str 167List any directories that should be entered when running make 168.Pa /usr/src 169in this variable. 170.It Va MAKE_SHELL 171.Pq Vt str 172Controls the shell used internally by 173.Xr make 1 174to process the command scripts in makefiles. 175.Xr sh 1 , 176.Xr ksh 1 , 177and 178.Xr csh 1 179all currently supported. 180.Bd -literal -offset indent 181MAKE_SHELL?=sh 182.Ed 183.It Va MODULES_OVERRIDE 184.Pq Vt str 185Set to a list of modules to build instead of all of them. 186.It Va MTREE_FOLLOWS_SYMLINKS 187.Pq Vt str 188Set this to 189.Dq Fl L 190to cause 191.Xr mtree 8 192to follow symlinks. 193.It Va NO_DOCUPDATE 194.Pq Vt bool 195Set this to not update the doc tree during 196.Dq Li "make update" . 197.It Va STRIP 198.Pq Vt str 199Set this to the flag to pass the 200.Xr strip 1 201command. 202If set to a blank value, components will be installed with debugging 203symbols. 204.It Va SUP_UPDATE 205.Pq Vt bool 206Set this to use 207.Xr cvsup 1 208to update your ports with 209.Dq Li "make update" . 210.It Va SUP 211.Pq Vt str 212The location of the 213.Xr cvsup 1 214command for 215.Dq Li "make update" . 216.It Va SUPFLAGS 217.Pq Vt str 218The flag for the 219.Xr sup 1 220command when doing 221.Dq Li "make update" . 222This defaults to 223.Dq Fl g L Ar 2 . 224.It Va SUPHOST 225.Pq Vt str 226The hostname of the sup server to use when doing 227.Dq Li "make update" . 228.It Va SUPFILE 229.Pq Vt str 230The first 231.Ar supfile 232to use when doing a 233.Dq Li "make update" . 234This defaults to 235.Pa /usr/share/examples/cvsup/standard\-supfile . 236.It Va SUPFILE1 237.Pq Vt str 238The second 239.Ar supfile 240to use when doing a 241.Dq Li "make update" . 242This defaults to 243.Pa /usr/share/examples/cvsup/secure\-supfile . 244.It Va SUPFILE2 245.Pq Vt str 246The third 247.Ar supfile 248to use when doing a 249.Dq Li "make update" . 250This defaults to 251.Pa /usr/share/examples/cvsup/secure\-supfile . 252.It Va DOCSUPFILE 253.Pq Vt str 254The documentation 255.Ar supfile 256to use when doing a 257.Dq Li "make update" . 258This defaults to 259.Pa /usr/share/examples/cvsup/doc\-supfile . 260.It Va WARNS_WERROR 261Causes 262.Fl Werror 263to be added to 264.Va CFLAGS 265when WARNS is in effect. 266.El 267.Pp 268The following list provides a name and short description for variables 269that are only used doing a kernel build: 270.Bl -tag -width Ar 271.It Va BOOT_COMCONSOLE_PORT 272.Pq Vt str 273The port address to use for the console if the boot blocks have 274been configured to use a serial console instead of the keyboard/video card. 275.It Va BOOT_COMCONSOLE_SPEED 276.Pq Vt int 277The baud rate to use for the console if the boot blocks have 278been configured to use a serial console instead of the keyboard/video card. 279.It Va COPTFLAGS 280.Pq Vt str 281Controls the compiler settings when building the 282kernel. 283Optimization levels above 284.Fl O 285.Pq Fl O2 , No ... 286are not guaranteed to work. 287.It Va KERNCONF 288.Pq Vt str 289Controls which kernel configurations will be 290built by 291.Dq Li "${MAKE} buildkernel" 292and installed by 293.Dq Li "${MAKE} installkernel" . 294For example, 295.Bd -literal -offset indent 296KERNCONF=MINE DEBUG GENERIC OTHERMACHINE 297.Ed 298.Pp 299will build the kernels specified by the config files 300.Pa MINE , DEBUG , GENERIC , 301and 302.Pa OTHERMACHINE , 303and install the kernel specified by the config file 304.Pa MINE . 305It defaults to 306.Pa GENERIC . 307.It Va LOADER_TFTP_SUPPORT 308.Pq Vt bool 309While not a buildkernel-affected option, there is no better place for this. 310By default the 311.Xr pxeboot 8 312loader retrieves the kernel via NFS. 313Defining this and recompiling 314.Pa /usr/src/sys/boot 315will cause it to retrieve the kernel via TFTP. 316This allows pxeboot to load a custom BOOTP diskless kernel yet 317still mount the server's 318.Pa / 319rather than load the server's kernel. 320.It Va NO_CPU_COPTFLAGS 321.Pq Vt str 322Setting this variable will prevent CPU specific compiler flags 323from being automatically added to 324.Va COPTFLAGS 325during compile time. 326.It Va NO_KERNELCLEAN 327.Pq Vt bool 328Set this to skip the clean target when using 329.Dq Li "${MAKE} buildkernel" . 330.It Va NO_KERNELCONFIG 331.Pq Vt bool 332Set this to skip running 333.Xr config 8 334during 335.Dq Li "${MAKE} buildkernel" . 336.It Va NO_KERNELDEPEND 337.Pq Vt bool 338Set this to skip running 339.Dq Li "${MAKE} depend" 340during 341.Dq Li "${MAKE} buildkernel" . 342.It Va NO_KERNEL_OLD_STRIP 343.Pq Vt bool 344Set this to skip stripping debugging symbols from old kernel and modules 345(kernel.old, modules.old) during 346.Dq Li "${MAKE} installkernel" . 347.It Va NO_MODULES 348.Pq Vt bool 349Set to not build modules with the kernel. 350.El 351.Pp 352The following list provides a name and short description for variables 353that are used during the world build: 354.Bl -tag -width Ar 355.It Va ENABLE_SUID_K5SU 356.Pq Vt bool 357Set this if you wish to use the k5su utility. 358Otherwise, it will be installed without the set-user-ID bit set. 359This is only relevant if 360.Va WANT_KERBEROS 361is defined. 362.It Va ENABLE_SUID_SSH 363.Pq Vt bool 364Set this to install 365.Xr ssh 1 366with the setuid bit turned on. 367.It Va MODULES_WITH_WORLD 368.Pq Vt bool 369Set to build modules with the system instead of the kernel. 370.It Va NO_BIND 371.Pq Vt bool 372Set to not build BIND. 373.It Va NO_CRYPT 374.Pq Vt bool 375Set to not build crypto code. 376.It Va NO_CVS 377.Pq Vt bool 378Set to not build CVS. 379.It Va NO_FORTRAN 380.Pq Vt bool 381Set to not build 382.Xr g77 1 383and related libraries. 384.It Va NO_GAMES 385.Pq Vt bool 386Set to not build games. 387.It Va NO_GCC41 388.Pq Vt bool 389Set to not build the upcoming version of GCC (4.1). 390.It Va NO_GDB 391.Pq Vt bool 392Set to not build 393.Xr gdb 1 394.It Va NO_I4B 395.Pq Vt bool 396Set to not build isdn4bsd package. 397.It Va NO_IPFILTER 398.Pq Vt bool 399Set to not build IP Filter package. 400.It Va NO_LIBC_R 401.Pq Vt bool 402Set to not build 403.Nm libc_r 404(reentrant version of 405.Nm libc ) . 406.It Va NO_LPR 407.Pq Vt bool 408Set to not build 409.Xr lpr 1 410and related programs. 411.It Va NO_MAILWRAPPER 412.Pq Vt bool 413Set to not build the 414.Xr mailwrapper 8 415MTA selector. 416.It Va NO_MAKEDEV 417.Pq Vt bool 418Set to avoid running 419.Dq Li "MAKEDEV all" 420on 421.Pa /dev 422during install. 423.It Va NO_OBJC 424.Pq Vt bool 425Set to not build Objective C support. 426.It Va NO_OPENSSH 427.Pq Vt bool 428Set to not build OpenSSH. 429.It Va NO_OPENSSL 430.Pq Vt bool 431Set to not build OpenSSL (implies 432.Va NO_OPENSSH ) . 433.It Va NO_SENDMAIL 434.Pq Vt bool 435Set to not build 436.Xr sendmail 8 437and related programs. 438.It Va NO_SHARE 439.Pq Vt bool 440Set to not enter the share subdirectory. 441.It Va NO_X 442.Pq Vt bool 443Set to not compile in X\-Windows support (e.g.\& 444.Xr doscmd 1 ) . 445.It Va NOCLEAN 446.Pq Vt bool 447Set this to disable cleaning during 448.Dq Li "make buildworld" . 449This should not be set unless you know what you are doing. 450.It Va NOCLEANDIR 451.Pq Vt bool 452Set this to run 453.Dq Li "${MAKE} clean" 454instead of 455.Dq Li "${MAKE} cleandir" . 456.It Va NOFSCHG 457.Pq Vt bool 458Set to not install certain components with flag fschg. 459This is useful in a jailed environment. 460.It Va NOINFO 461.Pq Vt bool 462Set to not make or install 463.Xr info 5 464files. 465.It Va NOINFOCOMPRESS 466.Pq Vt bool 467Set to not compress the info pages. 468.It Va NOMAN 469.Pq Vt bool 470Set to not build manual pages 471.It Va NOMANCOMPRESS 472.Pq Vt bool 473Set to not compress the manual pages. 474.It Va NOPROFILE 475.Pq Vt bool 476Set to avoid compiling profiled libraries. 477.It Va PPP_NOSUID 478.Pq Vt bool 479Set to disable the installation of 480.Xr ppp 8 481with the set-user-ID bit on. 482.It Va SENDMAIL_MC 483.Pq Vt str 484The default 485.Xr m4 1 486configuration file to use at install time. 487The value should include the full path to the 488.Pa .mc 489file, e.g., 490.Pa /etc/mail/myconfig.mc . 491Use with caution as a make install will overwrite any existing 492.Pa /etc/mail/sendmail.cf . 493Note that 494.Va SENDMAIL_CF 495is now deprecated. 496.It Va SENDMAIL_SUBMIT_MC 497.Pq Vt str 498The default 499.Xr m4 1 500configuration file for mail submission 501to use at install time. 502The value should include the full path to the 503.Pa .mc 504file, e.g., 505.Pa /etc/mail/mysubmit.mc . 506Use with caution as a make install will overwrite any existing 507.Pa /etc/mail/submit.cf . 508.It Va SENDMAIL_ADDITIONAL_MC 509.Pq Vt str 510Additional 511.Pa .mc 512files which should be built into 513.Pa .cf 514files at build time. 515The value should include the full path to the 516.Pa .mc 517file(s), e.g., 518.Pa /etc/mail/foo.mc 519.Pa /etc/mail/bar.mc . 520.It Va SENDMAIL_CF_DIR 521.Pq Vt str 522Override the default location for the 523.Xr m4 1 524configuration files used to build a 525.Pa .cf 526file from a 527.Pa .mc 528file. 529.It Va SENDMAIL_M4_FLAGS 530.Pq Vt str 531Flags passed to 532.Xr m4 1 533when building a 534.Pa .cf 535file from a 536.Pa .mc 537file. 538.It Va SENDMAIL_CFLAGS 539.Pq Vt str 540Flags to pass to the compile command when building 541.Xr sendmail 8 . 542The 543.Va SENDMAIL_* 544flags can be used to provide SASL support with setting such as: 545.Bd -literal -offset indent 546SENDMAIL_CFLAGS=-I/usr/local/include -DSASL 547SENDMAIL_LDFLAGS=-L/usr/local/lib 548SENDMAIL_LDADD=-lsasl 549.Ed 550.It Va SENDMAIL_LDFLAGS 551.Pq Vt str 552Flags to pass to the 553.Xr ld 1 554command when building 555.Xr sendmail 8 . 556.It Va SENDMAIL_LDADD 557.Pq Vt str 558Flags to add to the end of the 559.Xr ld 1 560command when building 561.Xr sendmail 8 . 562.It Va SENDMAIL_DPADD 563.Pq Vt str 564Extra dependencies to add when building 565.Xr sendmail 8 . 566.It Va SENDMAIL_SET_USER_ID 567.Pq Vt bool 568If set, install 569.Xr sendmail 8 570as a set-user-ID root binary instead of a set-group-ID binary 571and do not install 572.Pa /etc/mail/submit.{cf,mc} . 573Use of this flag is not recommended and the alternative advice in 574.Pa /etc/mail/README 575should be followed instead if at all possible. 576.It Va SENDMAIL_MAP_PERMS 577.Pq Vt str 578Mode to use when generating alias and map database files using 579.Pa /etc/mail/Makefile . 580The default value is 0640. 581.It Va TOP_TABLE_SIZE 582.Pq Vt int 583.Xr top 1 584uses a hash table for the user names. The size of this hash can be tuned 585to match the number of local users. The table size should be a prime number 586approximately twice as large as the number of lines in 587.Pa /etc/passwd . 588The default number is 20011. 589.It Va WANT_IDEA 590.Pq Vt bool 591Set to build the IDEA encryption code. 592This code is patented in the USA and many European countries. 593It is 594.Em "YOUR RESPONSIBILITY" 595to determine if you can legally use IDEA. 596.It Va WANT_KERBEROS 597.Pq Vt bool 598Set this to build Kerberos5 (KTH Heimdal). 599.Em WARNING ! 600This is still experimental code. 601.El 602.Pp 603The following list provides a name and short description for variables 604that are used when building documentation. 605.Bl -tag -width Ar 606.It Va DOC_LANG 607.Pq Vt str 608The list of languages and encodings to build and install. 609.It Va PRINTERDEVICE 610.Pq Vt str 611The default format for system documentation, depends on your 612printer. 613This can be set to 614.Dq Li ascii 615for simple printers or 616.Dq Li ps 617for postscript or graphics printers with a ghostscript 618filter. 619.It Va GROFF_PAPER_SIZE 620.Pq Vt str 621The default paper size for 622.Xr groff 1 623(either 624.Dq letter 625or 626.Dq A4 ) . 627.El 628.Sh FILES 629.Bl -tag -width /etc/defaults/make.conf -compact 630.It Pa /etc/defaults/make.conf 631.It Pa /etc/make.conf 632.It Pa /usr/src/Makefile 633.It Pa /usr/src/Makefile.inc1 634.El 635.Sh SEE ALSO 636.Xr gcc 1 , 637.Xr install 1 , 638.Xr make 1 , 639.Xr lpd 8 , 640.Xr sendmail 8 641.Sh HISTORY 642The 643.Nm 644file appeared sometime before 645.Fx 4.0 . 646.Sh AUTHORS 647This manual page was written by 648.An Mike W. Meyer Aq mwm@mired.org . 649.Sh BUGS 650This manual page may occasionally be out of date with respect to 651the options currently available for use in 652.Nm . 653Please check the 654.Pa /etc/defaults/make.conf 655file for the latest options which are available. 656