xref: /freebsd/share/man/man5/make.conf.5 (revision adf08670f2e177b314328046afa7a43d4cbbf08a)
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