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 November 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 37.Fx 38sources 39and ported applications. 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 50various makefiles in 51.Pa /usr/src , 52.Pa /usr/ports 53and 54.Pa /usr/doc 55which conditionalize their 56internal actions according to the settings found there. 57.Pp 58The 59.Pa /etc/make.conf 60file is included from the the appropriate 61.Pa Makefile 62which specifies the default settings for all the available options. 63Options need only be specified in 64.Pa /etc/make.conf 65when the system administrator wishes to override these defaults. 66.Pp 67The build procedures occur in four broad areas: the world, the kernel, 68documentations and ports. 69Variables set in 70.Nm 71may be applicable during builds in one, two, or all four of these 72areas. 73They may be specified for a particular build via the 74.Fl D 75option of 76.Xr make 1 . 77.Pp 78The following lists provide a name and short description for each 79variable you can use during the indicated builds. 80The values of 81variables flagged as 82.Vt bool 83are ignored; the variable being 84set at all (even to 85.Dq Li FALSE 86or 87.Dq Li NO ) 88cause it to 89be treated as if it were set. 90.Pp 91The following list provides a name and short description for variables 92that are used for all builds, or are used by the 93.Pa makefiles 94for things other than builds. 95.Bl -tag -width Ar 96.It Va CFLAGS 97.Pq Vt str 98Controls the compiler setting when compiling C code. 99Optimization levels above 100.Oo Fl O ( O2 , No ...\& ) Oc 101are not supported. 102.Va BDECFLAGS 103is provided as a set of 104.Xr gcc 1 105settings suggested by 106.An "Bruce Evans" Aq bde@FreeBSD.org 107for developing and testing changes. 108They can be used by: 109.Pp 110.Bd -literal -offset indent 111CXFLAGS+=${BDECFLAGS} 112.Ed 113.It Va CVS_UPDATE 114.Pq Vt bool 115Set this to use 116.Xr cvs 1 117to update your ports with 118.Dq Li "make update" . 119.It Va CXXFLAGS 120.Pq Vt str 121Controls the compiler settings when compiling C++ code. 122.Va CXXFLAGS 123is initially set to the value of 124.Va CFLAGS . 125If you want to 126add to the 127.Va CXXFLAGS 128value, use 129.Dq Li += 130instead of 131.Dq Li = . 132.It Va INSTALL 133.Pq Vt str 134the default install command. 135To have commands compared before doing 136the install, use 137.Bd -literal -offset indent 138INSTALL="install -C" 139.Ed 140.It Va LOCAL_DIRS 141.Pq Vt str 142List any directories that should be entered when doing 143make's in 144.Pa /usr/src 145in this variable. 146.It Va MTREE_FOLLOWS_SYMLINKS 147.Pq Vt str 148Set this to 149.Dq Fl L 150to cause 151.Xr mtree 8 152to follow symlinks. 153.It Va NO_DOCUPDATE 154.Pq Vt bool 155Set this to not update the doc tree during 156.Dq Li "make update" . 157.It Va NO_PORTSUPDATE 158.Pq Vt bool 159Set this to not update the ports tree during 160.Dq Li "make update" . 161.It Va SUP_UPDATE 162.Pq Vt bool 163Set this to use 164.Xr cvsup 1 165to update your ports with 166.Dq Li "make update" . 167.It Va SUP 168.Pq Vt str 169The location of the 170.Xr cvsup 1 171command for 172.Dq Li "make update" . 173.It Va SUPFLAGS 174.Pq Vt str 175The flag for the 176.Xr sup 1 177command when doing 178.Dq Li "make update" . 179This defaults to 180.Op Fl g L Ar 2 . 181.It Va SUPHOST 182.Pq Vt str 183The hostname of the sup server to use when doing 184.Dq Li "make update" . 185.It Va SUPFILE 186.Pq Vt str 187The first 188.Ar supfile 189to use when doing a 190.Dq Li "make update" . 191This defaults to 192.Pa /usr/share/examples/cvsup/standard\-supfile . 193.It Va SUPFILE1 194.Pq Vt str 195The second 196.Ar supfile 197to use when doing a 198.Dq Li "make update" . 199This defaults to 200.Pa /usr/share/examples/cvsup/secure\-supfile . 201.It Va SUPFILE2 202.Pq Vt str 203The third 204.Ar supfile 205to use when doing a 206.Dq Li "make update" . 207This defaults to 208.Pa /usr/share/examples/cvsup/secure\-supfile . 209.It Va PORTSSUPFILE 210.Pq Vt str 211The ports 212.Ar supfile 213to use when doing a 214.Dq Li "make update" . 215This defaults to 216.Pa /usr/share/examples/cvsup/ports\-supfile . 217.It Va DOCSUPFILE 218.Pq Vt str 219The documentation 220.Ar supfile 221to use when doing a 222.Dq Li "make update" . 223This defaults to 224.Pa /usr/share/examples/cvsup/doc\-supfile . 225.El 226.Pp 227The following list provides a name and short description for variables 228that are only used doing a kernel build: 229.Bl -tag -width Ar 230.It Va BOOT_COMCONSOLE_PORT 231.Pq Vt str 232The port address to use for the console if the boot blocks have 233been configured to use a serial console instead of the keyboard/video card. 234.It Va BOOT_COMCONSOLE_SPEED 235.Pq Vt int 236The baud rate to use for the console if the boot blocks have 237been configured to use a serial console instead of the keyboard/video card. 238.It Va BOOTWAIT 239.Pq Vt int 240Controls the amount of time the kernel waits for a console keypress 241before booting the default kernel. 242The value is approximately milliseconds. 243Keypresses are accepted by the BIOS before booting from disk, 244making it possible to give custom boot parameters even when this is 245set to 0. 246.It Va COPTFLAGS 247.Pq Vt str 248Controls the compiler settings when building the 249kernel. 250Optimization levels above 251.Oo Fl O ( O2 , No ...\& ) Oc 252are not supported. 253.It Va KERNEL 254.Pq Vt str 255Controls which kernel configurations will be 256built by 257.Dq Li "${MAKE} buildkernel" 258and installed by 259.Dq Li "${MAKE} installkernel" . 260For example, 261.Bd -literal -offset indent 262KERNEL=MINE DEBUG GENERIC OTHERMACHINE 263.Ed 264.Pp 265will build the the kernels specified by the config files 266.Pa MINE , DEBUG , GENERIC , 267and 268.Pa OTHERMACHINE , 269and install the kernel specified by the config file 270.Pa MINE . 271It defaults to 272.Pa GENERIC . 273.It Va NO_KERNELCONFIG 274.Pq Vt bool 275Set this to skip running 276.Xr config 8 277during 278.Dq Li "${MAKE} buildkernel" . 279.It Va NO_KERNELDEPEND 280.Pq Vt bool 281Set this to skip running 282.Dq Li "${MAKE} depend" 283during 284.Dq Li "${MAKE} buildkernel" . 285.It Va NO_MODULES 286.Pq Vt bool 287Set to not build modules with the kernel. 288.El 289.Pp 290The following list provides a name and short description for variables 291that are used during the world build: 292.Bl -tag -width Ar 293.It Va COMPAT1X 294.Pq Vt bool 295Set to install the 296.Fx 2971 compatibility libraries. 298.It Va COMPAT20 299.Pq Vt bool 300Set to install the 301.Fx 2.0 302compatibility libraries. 303.It Va COMPAT21 304.Pq Vt bool 305Set to install the 306.Fx 2.1 307compatibility libraries. 308.It Va COMPAT22 309.Pq Vt bool 310Set to install the 311.Fx 2.2 312compatibility libraries. 313.It Va COMPAT3X 314.Pq Vt bool 315Set to install the 316.Fx 3173 318compatibility libraries. 319.It Va ENABLE_SUIDPERL 320.Pq Vt bool 321Set to enable the installation of an suid 322.Xr perl 1 323binary. 324.It Va FETCH_CMD 325.Pq Vt str 326Command to use to fetch files. 327Normally 328.Xr fetch 1 . 329.It Va MAKE_IDEA 330.Pq Vt bool 331Set to build the IDEA encryption code. 332This code is patented in the USA and many European countries. 333It is 334.Em "YOUR RESPONSIBILITY" 335to determine if you can legally use IDEA. 336.It Va MAKE_KERBEROS4 337.Pq Vt bool 338Set this to build KerberosIV (KTH eBones). 339.It Va MAKE_KERBEROS5 340.Pq Vt bool 341Set this to build Kerberos5 (KTH Heimdal). 342.Em WARNING ! 343This is still experimental code. 344If you need stable Kerberos5, use the 345port(s). 346.It Va MODULES_WITH_WORLD 347.Pq Vt bool 348Set to build modules with the system instead of the kernel. 349.It Va NO_CVS 350.Pq Vt bool 351Set to not build CVS. 352.It Va NO_BIND 353.Pq Vt bool 354Set to not build BIND. 355.It Va NO_FORTRAN 356.Pq Vt bool 357Set to not build 358.Xr g77 1 359and related libraries. 360.It Va NO_I4B 361.Pq Vt bool 362Set to not build isdn4bsd package. 363.It Va NO_LPR 364.Pq Vt bool 365Set to not build 366.Xr lpr 1 367and related programs. 368.It Va NO_MAILWRAPPER 369.Pq Vt bool 370Set to not build the 371.Xr mailwrapper 8 372MTA selector. 373.It Va NO_MAKEDEV_INSTALL 374.Pq Vt bool 375Set to avoid installing 376.Pa MAKEDEV 377in 378.Pa /dev . 379This implies the 380.Va NO_MAKEDEV_RUN 381variable. 382.It Va NO_MAKEDEV_RUN 383.Pq Vt bool 384Set to avoid running 385.Dq Li "MAKEDEV all" 386on 387.Pa /dev 388during install. 389.It Va NO_OBJC 390.Pq Vt bool 391Set to not build Objective C support. 392.It Va NO_OPENSSH 393.Pq Vt bool 394Set to not build OpenSSH. 395.It Va NO_OPENSSL 396.Pq Vt bool 397Set to not build OpenSSL (implies 398.Va NO_OPENSSH ) . 399.It Va NO_SENDMAIL 400.Pq Vt bool 401Set to not build 402.Xr sendmail 8 403and related programs. 404.It Va NO_SHAREDOCS 405.Pq Vt bool 406Set to not build the 407.Bx 4.4 408legacy docs. 409.It Va NO_TCSH 410.Pq Vt bool 411Set to not build and install 412.Pa /bin/csh 413(which is 414.Xr tcsh 1 ) . 415.It Va NO_X 416.Pq Vt bool 417Set to not compile in X\-Windows support (e.g.\& 418.Xr doscmd 1 ) . 419.It Va NOCLEAN 420.Pq Vt bool 421Set this to disable cleaning during 422.Dq Li "make buildworld" . 423This should not be set unless you know what you are doing. 424.It Va NOCLEANDIR 425.Pq Vt bool 426Set this to run 427.Dq Li "${MAKE} clean" 428instead of 429.Dq Li "${MAKE} cleandir" . 430.It Va NOCRYPT 431.Pq Vt bool 432Set to not build any crypto code. 433.It Va NOGAMES 434.Pq Vt bool 435Set to not build games. 436.It Va NOINFO 437.Pq Vt bool 438Set to not make or install 439.Xr info 5 440files. 441.It Va NOLIBC_R 442.Pq Vt bool 443Set to not build 444.Nm libc_r 445(reentrant version of 446.Nm libc ) . 447.It Va NOMANCOMPRESS 448.Pq Vt bool 449Set to install man pages uncompressed. 450.It Va NOPERL 451.Pq Vt bool 452Set to avoid building 453.Xr perl 1 . 454.It Va NOPROFILE 455.Pq Vt bool 456Set to avoid compiling profiled libraries. 457.It Va NOSECURE 458.Pq Vt bool 459set to not build crypto code in 460.Pa secure 461subdir. 462.It Va NOSHARE 463.Pq Vt bool 464Set to not build in the 465.Pa share 466subdir. 467.It Va NOUUCP 468.Pq Vt bool 469Set to not build 470.Xr uucp 1 471related programs. 472.It Va PERL_THREADED 473.Pq Vt bool 474Set to enable the building and installation of 475.Xr perl 1 476with thread 477support. 478.It Va PPP_NOSUID 479.Pq Vt bool 480Set to disable the installation of 481.Xr ppp 8 482as an suid root program. 483.It Va SENDMAIL_MC 484.Pq Vt str 485The default m4 configuration file to use at install time. 486The value should include the full path to the .mc file, e.g., 487.Pa /etc/mail/myconfig.mc . 488Use with caution as a make install will overwrite any existing 489.Pa /etc/mail/sendmail.cf . 490Note that 491.Va SENDMAIL_CF 492is now deprecated. 493.It Va SENDMAIL_ADDITIONAL_MC 494.Pq Vt str 495Additional .mc files which should be built into .cf files at build time. 496The value should include the full path to the .mc file(s), e.g., 497.Pa /etc/mail/foo.mc 498.Pa /etc/mail/bar.mc . 499.It Va SENDMAIL_CFLAGS 500.Pq Vt str 501Flags to pass to the compile command when building 502.Xr sendmail 8 . 503The 504.Va SENDMAIL_* 505flags can be used to provide SASL support with setting such as: 506.Bd -literal -offset indent 507SENDMAIL_CFLAGS=-I/usr/local/include -DSASL 508SENDMAIL_LDFLAGS=-L/usr/local/lib 509SENDMAIL_LDADD=-lsasl 510.Ed 511.It Va SENDMAIL_LDFLAGS 512.Pq Vt str 513Flags to pass to the 514.Xr ld 1 515command when building 516.Xr sendmail 8 . 517.It Va SENDMAIL_LDADD 518.Pq Vt str 519Flags to add to the end of the 520.Xr ld 1 521command when building 522.Xr sendmail 8 . 523.It Va SENDMAIL_DPADD 524.Pq Vt str 525This variable is undocumented. 526.El 527.Pp 528The following list provides a name and short description for variables 529that are used when building documentation. 530.Bl -tag -width Ar 531.It Va DISTDIR 532.Pq Vt str 533Where distfiles are kept. 534Normally, this is 535.Pa distfiles 536in 537.Va PORTSDIR . 538.It Va DOC_LANG 539.Pq Vt str 540The list of languages and encodings to build and install. 541.It Va PRINTERDEVICE 542.Pq Vt str 543The default format for system documentation, depends on your 544printer. 545This can be set to 546.Dq Li ascii 547for simple printers or 548.Dq Li ps 549for postscript or graphics printers with a ghostscript 550filter. 551.El 552.Pp 553The following list provides a name and short description for variables 554that are used when building ports: 555.Bl -tag -width Ar 556.It Va FORCE_PKG_RESIDENT 557.Pq Vt bool 558Set this to override any existing package registration. 559.It Va HAVE_MOTIF 560.Pq Vt bool 561Set this if you have Motif on your system. 562.It Va KRB5_HOME 563.Pq Vt str 564Set this if you want to install the MIT Kerberos5 port somewhere 565other than 566.Pa /usr/local . 567.It Va LOCALBASE 568.Pq Vt str 569Set this to the base directory that non\-X ports should be 570installed in. 571It provides the default for 572.Va PREFIX 573when building in 574.Pa /usr/ports . 575.It Va MASTER_SITE_AFTERSTEP 576.Pq Vt str 577Set this to change the master site for AfterStep ports. 578The last 579part of the path must be 580.Dq Li /%SUBDIR%/ . 581.It Va MASTER_SITE_BACKUP 582.Pq Vt str 583Controls the site location that ports check for distfiles if the 584locations listed in their 585.Pa Makefile 586do not work. 587The last part of the path must be 588.Dq Li /${DIST_SUBDIR}/ . 589.It Va MASTER_SITE_COMP_SOURCES 590.Pq Vt str 591Controls the master site location for 592.Pa comp.sources 593ports. 594The 595last part of the path must be 596.Dq Li %SUBDIR%/ 597.It Va MASTER_SITE_GNOME 598.Pq Vt str 599Controls the master site location for GNOME ports. 600The 601last part of the path must be 602.Dq Li /%SUBDIR%/ 603.It Va MASTER_SITE_GNU 604.Pq Vt str 605Controls the master site location for GNU ports. 606The 607last part of the path must be 608.Dq Li /%SUBDIR%/ 609.It Va MASTER_SITE_KDE 610.Pq Vt str 611Controls the master site location for KDE ports. 612The 613last part of the path must be 614.Dq Li /%SUBDIR%/ 615.It Va MASTER_SITE_FREEBSD 616.Pq Vt bool 617If set, go to the master 618.Fx 619site for all files. 620.It Va MASTER_SITE_MOZILLA 621.Pq Vt str 622Controls the master site location for Mozilla ports. 623The 624last part of the path must be 625.Dq Li /%SUBDIR%/ 626.It Va MASTER_SITE_OVERRIDE 627.Pq Vt str 628If set, this site is checked before the sites listed in the ports 629.Pa Makefile . 630You can have it check the backup site first by like so: 631.Bd -literal -offset indent 632MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} 633.Ed 634.It Va MASTER_SITE_PERL_CPAN 635.Pq Vt str 636Controls the master site location for Perl ports. 637The 638last part of the path must be 639.Bd -literal -offset indent 640/%SUBDIR%/ 641.Ed 642.It Va MASTER_SORT_REGEX 643.Pq Vt str 644Set this to control the sort order for mirror sets. 645To set it to 646prefer mirrors in the 647.Pa .jp 648domain, use: 649.Bd -literal -offset indent 650MASTER_SORT_REGEX?= ^file: ^ftp://ftp\.FreeBSD\.org/pub/FreeBSD/ports/local-distfiles/ ://[^/]*\.jp/ ://[^/]*\.jp\. 651.Ed 652.Pp 653Users of other ccTLD domains should change the 654.Dq Li jp 655to the 656appropriate domain. 657.It Va MASTER_SITE_RINGSERVER 658.Pq Vt str 659Controls the master site location for Ringserver ports. 660The last 661part of the path must be 662.Dq Li /%SUBDIR%/ . 663.It Va MASTER_SITE_RUBY 664.Pq Vt str 665Controls the master site location for Ruby ports. 666The last 667part of the path must be 668.Dq Li /%SUBDIR%/ . 669.It Va MASTER_SITE_SUNSITE 670.Pq Vt str 671Controls the master site location for Sunsite ports. 672The last 673part of the path must be 674.Dq Li /%SUBDIR%/ . 675.It Va MASTER_SITE_TCLTK 676.Pq Vt str 677Controls the master site location for Tcl and Tk ports. 678The last 679part of the path must be 680.Dq Li /%SUBDIR%/ . 681.It Va MASTER_SITE_TEX_CTAN 682.Pq Vt str 683Controls the master site location for TeX ports. 684The last 685part of the path must be 686.Dq Li /%SUBDIR%/ . 687.It Va MASTER_SITE_WINDOWMAKER 688.Pq Vt str 689Controls the master site location for WindowMaker ports. 690The last 691part of the path must be 692.Dq Li /%SUBDIR%/ . 693.It Va MASTER_SITE_XCONTRIB 694.Pq Vt str 695Controls the master site location for contributed X ports. 696The last 697part of the path must be 698.Dq Li /%SUBDIR%/ . 699.It Va MASTER_SITE_XEMACS 700.Pq Vt str 701Controls the master site location for Xemacs ports. 702The last 703part of the path must be 704.Dq Li /%SUBDIR%/ . 705.It Va MASTER_SITE_XFREE 706.Pq Vt str 707Controls the master site location for XFree ports. 708The last 709part of the path must be 710.Dq Li /%SUBDIR%/ . 711.It Va MOTIFLIB 712.Pq Vt str 713Location of 714.Pa libXm.a 715and 716.Pa libXm.so . 717.It Va MOTIF_STATIC 718.Pq Vt bool 719Set this if you want ports that use Motif to be built so they 720can be run on systems without the Motif shared libraries. 721.It Va NOCLEANDEPENDS 722.Pq Vt bool 723Set this to prevent 724.Dq Li "make clean" 725from cleaning the ports that the one being cleaned depends on. 726.It Va NOPORTDOCS 727.Pq Vt bool 728Set this to disable installing additional documentation with ports. 729.It Va PACKAGES 730.Pq Vt str 731Used only for the package target; the directory for the package tree. 732.It Va PATCH_SITES 733.Pq Vt str 734Primary location(s) for the distribution of patch files. 735.It Va PORTSDIR 736.Pq Vt str 737The location of the ports tree. 738.It Va USA_RESIDENT 739.Pq Vt bool 740Set this if you are a resident of the USA so that ports that 741need to can attempt to comply with U.S. export regulations. 742.It Va WITHOUT_X 743.Pq Vt bool 744Set this so that ports that can be built with or without X support will build 745without X support by default. 746.It Va WRKDIRPREFIX 747.Pq Vt str 748Where to create temporary files used when building ports. 749.It Va X11BASE 750.Pq Vt str 751Should be set to where the X11 distribution has been 752installed if it is installed anywhere other than 753.Pa /usr/X11R6 . 754.El 755.Sh FILES 756.Bl -tag -width /etc/defaults/make.conf -compact 757.It Pa /etc/defaults/make.conf 758.It Pa /etc/make.conf 759.It Pa /usr/doc/Makefile 760.It Pa /usr/src/Makefile 761.It Pa /usr/src/Makefile.inc1 762.It Pa /usr/ports/Mk/bsd.port.mk 763.It Pa /usr/ports/Mk/bsd.sites.mk 764.El 765.Sh SEE ALSO 766.Xr gcc 1 , 767.Xr install 1 , 768.Xr lpd 8 , 769.Xr make 1 , 770.Xr ports 7 , 771.Xr sendmail 8 772.Sh HISTORY 773The 774.Nm 775file appeared sometime before 776.Fx 4.0 . 777.Sh AUTHORS 778This 779manual page was written by 780.An Mike W. Meyer Aq mwm@mired.org . 781.Sh BUGS 782This manual page may occasionally be out of date with respect to 783the options currently available for use in 784.Nm . 785Please check the 786.Pa /etc/defaults/make.conf 787file for the latest options which are available. 788