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