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