xref: /freebsd/share/man/man5/make.conf.5 (revision f9218d3d4fd34f082473b3a021c6d4d109fb47cf)
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 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 )
88causes 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.Fl O
101.Pq Fl O2 , No ...
102are not supported.
103.Va BDECFLAGS
104is provided as a set of
105.Xr gcc 1
106settings suggested by
107.An "Bruce Evans" Aq bde@FreeBSD.org
108for developing and testing changes.
109They can be used, if set, by:
110.Pp
111.Bd -literal -offset indent
112CFLAGS+=${BDECFLAGS}
113.Ed
114.It Va CPUTYPE
115.Pq Vt str
116Controls which processor should be targeted for generated
117code.
118This controls processor-specific optimizations in
119certain code (currently only OpenSSL) as well as modifying
120the value of
121.Va CFLAGS
122and
123.Va COPTFLAGS
124to contain the appropriate optimization directive to
125.Xr gcc 1 .
126The automatic setting of
127.Va CFLAGS
128and
129.Va COPTFLAGS
130may be overridden using the
131.Va NO_CPU_CFLAGS
132and
133.Va NO_CPU_COPTFLAGS
134variables, respectively.
135Refer to
136.Pa /usr/share/examples/etc/make.conf
137for a list of recognized
138.Va CPUTYPE
139options.
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 NO_CPU_COPTFLAGS
147.Pq Vt str
148Setting this variable will prevent CPU specific compiler flags
149from being automatically added to
150.Va COPTFLAGS
151during compile time.
152.It Va CVS_UPDATE
153.Pq Vt bool
154Set this to use
155.Xr cvs 1
156to update your ports with
157.Dq Li "make update" .
158.It Va CXXFLAGS
159.Pq Vt str
160Controls the compiler settings when compiling C++ code.
161.Va CXXFLAGS
162is initially set to the value of
163.Va CFLAGS .
164If you want to
165add to the
166.Va CXXFLAGS
167value, use
168.Dq Li +=
169instead of
170.Dq Li = .
171.It Va INSTALL
172.Pq Vt str
173the default install command.
174To have commands compared before doing
175the install, use
176.Bd -literal -offset indent
177INSTALL="install -C"
178.Ed
179.It Va LOCAL_DIRS
180.Pq Vt str
181List any directories that should be entered when doing
182make's in
183.Pa /usr/src
184in this variable.
185.It Va MAKE_SHELL
186.Pq Vt str
187Controls the shell used internally by
188.Xr make 1
189to process the command scripts in makefiles.
190.Xr sh 1 ,
191.Xr ksh 1 ,
192and
193.Xr csh 1
194all currently supported.
195.Pp
196.Dl "MAKE_SHELL?=sh"
197.It Va MTREE_FOLLOWS_SYMLINKS
198.Pq Vt str
199Set this to
200.Dq Fl L
201to cause
202.Xr mtree 8
203to follow symlinks.
204.It Va NO_DOCUPDATE
205.Pq Vt bool
206Set this to not update the doc tree during
207.Dq Li "make update" .
208.It Va NO_PORTSUPDATE
209.Pq Vt bool
210Set this to not update the ports tree during
211.Dq Li "make update" .
212.It Va SUP_UPDATE
213.Pq Vt bool
214Set this to use
215.Xr cvsup 1
216to update your ports with
217.Dq Li "make update" .
218.It Va SUP
219.Pq Vt str
220The location of the
221.Xr cvsup 1
222command for
223.Dq Li "make update" .
224.It Va SUPFLAGS
225.Pq Vt str
226The flag for the
227.Xr sup 1
228command when doing
229.Dq Li "make update" .
230This defaults to
231.Op Fl g L Ar 2 .
232.It Va SUPHOST
233.Pq Vt str
234The hostname of the sup server to use when doing
235.Dq Li "make update" .
236.It Va SUPFILE
237.Pq Vt str
238The first
239.Ar supfile
240to use when doing a
241.Dq Li "make update" .
242This defaults to
243.Pa /usr/share/examples/cvsup/standard\-supfile .
244.It Va SUPFILE1
245.Pq Vt str
246The second
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 SUPFILE2
253.Pq Vt str
254The third
255.Ar supfile
256to use when doing a
257.Dq Li "make update" .
258This defaults to
259.Pa /usr/share/examples/cvsup/secure\-supfile .
260.It Va PORTSSUPFILE
261.Pq Vt str
262The ports
263.Ar supfile
264to use when doing a
265.Dq Li "make update" .
266This defaults to
267.Pa /usr/share/examples/cvsup/ports\-supfile .
268.It Va DOCSUPFILE
269.Pq Vt str
270The documentation
271.Ar supfile
272to use when doing a
273.Dq Li "make update" .
274This defaults to
275.Pa /usr/share/examples/cvsup/doc\-supfile .
276.El
277.Pp
278The following list provides a name and short description for variables
279that are only used doing a kernel build:
280.Bl -tag -width Ar
281.It Va BOOT_COMCONSOLE_PORT
282.Pq Vt str
283The port address to use for the console if the boot blocks have
284been configured to use a serial console instead of the keyboard/video card.
285.It Va BOOT_COMCONSOLE_SPEED
286.Pq Vt int
287The baud rate to use for the console if the boot blocks have
288been configured to use a serial console instead of the keyboard/video card.
289.It Va BOOTWAIT
290.Pq Vt int
291Controls the amount of time the kernel waits for a console keypress
292before booting the default kernel.
293The value is approximately milliseconds.
294Keypresses are accepted by the BIOS before booting from disk,
295making it possible to give custom boot parameters even when this is
296set to 0.
297.It Va COPTFLAGS
298.Pq Vt str
299Controls the compiler settings when building the
300kernel.
301Optimization levels above
302.Oo Fl O ( O2 , No ...\& ) Oc
303are not guaranteed to work.
304.It Va KERNCONF
305.Pq Vt str
306Controls which kernel configurations will be
307built by
308.Dq Li "${MAKE} buildkernel"
309and installed by
310.Dq Li "${MAKE} installkernel" .
311For example,
312.Bd -literal -offset indent
313KERNCONF=MINE DEBUG GENERIC OTHERMACHINE
314.Ed
315.Pp
316will build the kernels specified by the config files
317.Pa MINE , DEBUG , GENERIC ,
318and
319.Pa OTHERMACHINE ,
320and install the kernel specified by the config file
321.Pa MINE .
322It defaults to
323.Pa GENERIC .
324.It Va LOADER_TFTP_SUPPORT
325.Pq Vt bool
326While not a buildkernel-affected option, there is no better place for this.
327By default the
328.Xr pxeboot 8
329loader retrieves the kernel via NFS.
330Defining this and recompiling
331.Pa /usr/src/sys/boot
332will cause it to retrieve the kernel via TFTP.
333This allows
334.Xr pxeboot 8
335to load a custom BOOTP diskless kernel yet
336still mount the server's
337.Pa /
338rather than load the server's kernel.
339.It Va MODULES_OVERRIDE
340.Pq Vt str
341Set to a list of modules to build instead of all of them.
342.It Va NO_KERNELCONFIG
343.Pq Vt bool
344Set this to skip running
345.Xr config 8
346during
347.Dq Li "${MAKE} buildkernel" .
348.It Va NO_KERNELDEPEND
349.Pq Vt bool
350Set this to skip running
351.Dq Li "${MAKE} depend"
352during
353.Dq Li "${MAKE} buildkernel" .
354.It Va NO_MODULES
355.Pq Vt bool
356Set to not build modules with the kernel.
357.El
358.Pp
359The following list provides a name and short description for variables
360that are used during the world build:
361.Bl -tag -width Ar
362.It Va COMPAT1X
363.Pq Vt bool
364Set to install the
365.Fx
3661 compatibility libraries.
367.It Va COMPAT20
368.Pq Vt bool
369Set to install the
370.Fx 2.0
371compatibility libraries.
372.It Va COMPAT21
373.Pq Vt bool
374Set to install the
375.Fx 2.1
376compatibility libraries.
377.It Va COMPAT22
378.Pq Vt bool
379Set to install the
380.Fx 2.2
381compatibility libraries.
382.It Va COMPAT3X
383.Pq Vt bool
384Set to install the
385.Fx
3863
387compatibility libraries.
388.It Va COMPAT4X
389.Pq Vt bool
390Set to install the
391.Fx
3924
393compatibility libraries.
394.It Va FETCH_CMD
395.Pq Vt str
396Command to use to fetch files.
397Normally
398.Xr fetch 1 .
399.It Va KRB5_HOME
400.Pq Vt str
401If you want to install the MIT Kerberos5 port somewhere other than
402.Pa /usr/local ,
403define this.
404This is also used to tell ssh1 that Kerberos is needed.
405.It Va MAKE_IDEA
406.Pq Vt bool
407Set to build the IDEA encryption code.
408This code is patented in the USA and many European countries.
409It is
410.Em "YOUR RESPONSIBILITY"
411to determine if you can legally use IDEA.
412.It Va MAKE_KERBEROS4
413.Pq Vt bool
414Set this to build KerberosIV (KTH eBones).
415.It Va MAKE_KERBEROS5
416.Pq Vt bool
417Set this to build Kerberos5 (KTH Heimdal).
418.Em WARNING !
419This is still experimental code.
420If you need stable Kerberos5, use the
421port(s).
422.It Va ENABLE_SUID_K5SU
423.Pq Vt bool
424Set this if you wish to use the k5su utility.
425Otherwise, it will be
426installed without the set-user-ID bit set.
427.It Va ENABLE_SUID_NEWGRP
428.Pq Vt bool
429Set this to install
430.Xr newgrp 1
431with the set-user-ID bit set.
432Otherwise,
433.Xr newgrp 1
434will not be able to change users' groups.
435.It Va ENABLE_SUID_SSH
436.Pq Vt bool
437Set this to install
438.Xr ssh 1
439with the set-user-ID bit turned on.
440.It Va MODULES_WITH_WORLD
441.Pq Vt bool
442Set to build modules with the system instead of the kernel.
443.It Va NO_CVS
444.Pq Vt bool
445Set to not build CVS.
446.It Va NO_CXX
447.Pq Vt bool
448Set to not build
449.Xr g++ 1
450and related libraries.
451.It Va NO_BIND
452.Pq Vt bool
453Set to not build BIND.
454.It Va NO_FORTRAN
455.Pq Vt bool
456Set to not build
457.Xr g77 1
458and related libraries.
459.It Va NO_GDB
460.Pq Vt bool
461Set to not build
462.Xr gdb 1 .
463.It Va NO_I4B
464.Pq Vt bool
465Set to not build isdn4bsd package.
466.It Va NO_IPFILTER
467.Pq Vt bool
468Set to not build IP Filter package.
469.It Va NO_LPR
470.Pq Vt bool
471Set to not build
472.Xr lpr 1
473and related programs.
474.It Va NO_MAILWRAPPER
475.Pq Vt bool
476Set to not build the
477.Xr mailwrapper 8
478MTA selector.
479.It Va NOMAN
480.Pq Vt bool
481Set to not build manual pages.
482.It Va NO_OBJC
483.Pq Vt bool
484Set to not build Objective C support.
485.It Va NO_OPENSSH
486.Pq Vt bool
487Set to not build OpenSSH.
488.It Va NO_OPENSSL
489.Pq Vt bool
490Set to not build OpenSSL (implies
491.Va NO_OPENSSH ) .
492.It Va NO_SENDMAIL
493.Pq Vt bool
494Set to not build
495.Xr sendmail 8
496and related programs.
497.It Va NO_SHAREDOCS
498.Pq Vt bool
499Set to not build the
500.Bx 4.4
501legacy docs.
502.It Va NO_TCSH
503.Pq Vt bool
504Set to not build and install
505.Pa /bin/csh
506(which is
507.Xr tcsh 1 ) .
508.It Va NO_X
509.Pq Vt bool
510Set to not compile in X\-Windows support (e.g.\&
511.Xr doscmd 1 ) .
512.It Va NOCLEAN
513.Pq Vt bool
514Set this to disable cleaning during
515.Dq Li "make buildworld" .
516This should not be set unless you know what you are doing.
517.It Va NOCLEANDIR
518.Pq Vt bool
519Set this to run
520.Dq Li "${MAKE} clean"
521instead of
522.Dq Li "${MAKE} cleandir" .
523.It Va NOCRYPT
524.Pq Vt bool
525Set to not build any crypto code.
526.It Va NOGAMES
527.Pq Vt bool
528Set to not build games.
529.It Va NOINFO
530.Pq Vt bool
531Set to not make or install
532.Xr info 5
533files.
534.It Va NOLIBC_R
535.Pq Vt bool
536Set to not build
537.Nm libc_r
538(reentrant version of
539.Nm libc ) .
540.It Va NOMANCOMPRESS
541.Pq Vt bool
542Set to install man pages uncompressed.
543.It Va NOPROFILE
544.Pq Vt bool
545Set to avoid compiling profiled libraries.
546.It Va NOSECURE
547.Pq Vt bool
548set to not build crypto code in
549.Pa secure
550subdir.
551.It Va NOSHARE
552.Pq Vt bool
553Set to not build in the
554.Pa share
555subdir.
556.It Va PPP_NOSUID
557.Pq Vt bool
558Set to disable the installation of
559.Xr ppp 8
560as an suid root program.
561.It Va SENDMAIL_MC
562.Pq Vt str
563The default m4 configuration file to use at install time.
564The value should include the full path to the
565.Pa .mc
566file, e.g.,
567.Pa /etc/mail/myconfig.mc .
568Use with caution as a make install will overwrite any existing
569.Pa /etc/mail/sendmail.cf .
570Note that
571.Va SENDMAIL_CF
572is now deprecated.
573Avoid using a value of
574.Pa /etc/mail/sendmail.mc ,
575as a buildworld will create
576.Pa /etc/mail/sendmail.cf
577before installworld installs an updated
578.Xr sendmail 8
579binary.
580.It Va SENDMAIL_SUBMIT_MC
581.Pq Vt str
582The default m4 configuration file for mail submission
583to use at install time.
584The value should include the full path to the
585.Pa .mc
586file, e.g.,
587.Pa /etc/mail/mysubmit.mc .
588Use with caution as a make install will overwrite any existing
589.Pa /etc/mail/submit.cf .
590Avoid using a value of
591.Pa /etc/mail/submit.mc ,
592as a buildworld will create
593.Pa /etc/mail/submit.cf
594before installworld installs an updated
595.Xr sendmail 8
596binary.
597.It Va SENDMAIL_ADDITIONAL_MC
598.Pq Vt str
599Additional
600.Pa .mc
601files which should be built into
602.Pa .cf
603files at build time.
604The value should include the full path to the
605.Pa .mc
606file(s), e.g.,
607.Pa /etc/mail/foo.mc
608.Pa /etc/mail/bar.mc .
609Avoid using a value of
610.Pa /etc/mail/sendmail.mc ,
611as a buildworld will create
612.Pa /etc/mail/sendmail.cf
613before installworld installs an updated
614.Xr sendmail 8
615binary.
616.It Va SENDMAIL_M4_FLAGS
617.Pq Vt str
618Flags passed to m4 when building a
619.Pa .cf
620file from a
621.Pa .mc
622file.
623.It Va SENDMAIL_CFLAGS
624.Pq Vt str
625Flags to pass to the compile command when building
626.Xr sendmail 8 .
627The
628.Va SENDMAIL_*
629flags can be used to provide SASL support with setting such as:
630.Bd -literal -offset indent
631SENDMAIL_CFLAGS=-I/usr/local/include -DSASL
632SENDMAIL_LDFLAGS=-L/usr/local/lib
633SENDMAIL_LDADD=-lsasl
634.Ed
635.It Va SENDMAIL_LDFLAGS
636.Pq Vt str
637Flags to pass to the
638.Xr ld 1
639command when building
640.Xr sendmail 8 .
641.It Va SENDMAIL_LDADD
642.Pq Vt str
643Flags to add to the end of the
644.Xr ld 1
645command when building
646.Xr sendmail 8 .
647.It Va SENDMAIL_DPADD
648.Pq Vt str
649Extra dependencies to add when building
650.Xr sendmail 8 .
651.It Va SENDMAIL_SET_USER_ID
652.Pq Vt bool
653If set, install
654.Xr sendmail 8
655as a set-user-ID root binary instead of a set-group-ID binary
656and do not install
657.Pa /etc/mail/submit.{cf,mc} .
658Use of this flag is not recommended and the alternative advice in
659.Pa /etc/mail/README
660should be followed instead if at all possible.
661.It Va SENDMAIL_MAP_PERMS
662.Pq Vt str
663Mode to use when generating alias and map database files using
664.Pa /etc/mail/Makefile .
665The default value is 0640.
666.It Va TOP_TABLE_SIZE
667.Pq Vt int
668.Xr top 1
669uses a hash table for the user names.
670The size of this hash can be tuned to match the number of local users.
671The table size should be a prime number
672approximately twice as large as the number of lines in
673.Pa /etc/passwd .
674The default number is 20011.
675.It Va WANT_EXT2FS_MODULE
676.Pq Vt bool
677Set this if you always want to build the Linux ext2fs kernel module when you
678build modules.
679.It Va WANT_FORCE_OPTIMIZATION_DOWNGRADE
680.Pq Vt int
681Causes the system compiler to be built such that it forces high optimization
682levels to a lower one.
683.Xr gcc 1
684.Fl O2
685and above is known to trigger known optimizer bugs at various
686times \(em this is worse on the Alpha platform.
687The value assigned is the highest optimization value used.
688.El
689.Pp
690The following list provides a name and short description for variables
691that are used when building documentation.
692.Bl -tag -width Ar
693.It Va DISTDIR
694.Pq Vt str
695Where distfiles are kept.
696Normally, this is
697.Pa distfiles
698in
699.Va PORTSDIR .
700.It Va DOC_LANG
701.Pq Vt str
702The list of languages and encodings to build and install.
703.It Va PRINTERDEVICE
704.Pq Vt str
705The default format for system documentation, depends on your
706printer.
707This can be set to
708.Dq Li ascii
709for simple printers, or
710.Dq Li ps
711for postscript or graphics printers with a ghostscript
712filter, or both.
713.El
714.Sh FILES
715.Bl -tag -width ".Pa /usr/share/examples/etc/make.conf" -compact
716.It Pa /etc/make.conf
717.It Pa /usr/doc/Makefile
718.It Pa /usr/share/examples/etc/make.conf
719.It Pa /usr/src/Makefile
720.It Pa /usr/src/Makefile.inc1
721.El
722.Sh SEE ALSO
723.Xr gcc 1 ,
724.Xr install 1 ,
725.Xr make 1 ,
726.Xr ports 7 ,
727.Xr lpd 8 ,
728.Xr sendmail 8
729.Sh HISTORY
730The
731.Nm
732file appeared sometime before
733.Fx 4.0 .
734.Sh AUTHORS
735This
736manual page was written by
737.An Mike W. Meyer Aq mwm@mired.org .
738.Sh BUGS
739This manual page may occasionally be out of date with respect to
740the options currently available for use in
741.Nm .
742Please check the
743.Pa /usr/share/examples/etc/make.conf
744file for the latest options which are available.
745