xref: /dragonfly/share/man/man5/make.conf.5 (revision 235099c3)
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: src/share/man/man5/make.conf.5,v 1.12.2.30 2003/05/18 17:05:55 brueffer Exp $
26.\" $DragonFly: src/share/man/man5/make.conf.5,v 1.38 2008/11/03 00:25:45 pavalos Exp $
27.\"
28.Dd August 11, 2009
29.Dt MAKE.CONF 5
30.Os
31.Sh NAME
32.Nm make.conf
33.Nd system build information
34.Sh DESCRIPTION
35The file
36.Nm
37contains settings that control the compilation of the
38.Dx
39sources.
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 various makefiles in
50.Pa /usr/src
51which conditionalize their internal actions according to the settings
52found there.
53.Pp
54The
55.Pa /etc/make.conf
56file is included from the appropriate
57.Pa Makefile
58which specifies the default settings for all the available options.
59Options need only be specified in
60.Pa /etc/make.conf
61when the system administrator wishes to override these defaults.
62.Pp
63The build procedures occur in three areas: world, kernel, and
64documentation.
65Variables set in
66.Nm
67may be applicable during builds in one, two, or all of these areas.
68They may be specified for a particular build via the
69.Fl D
70option of
71.Xr make 1 .
72.Pp
73The following lists provide a name and short description for each
74variable you can use during the indicated builds.
75The values of variables flagged as
76.Vt bool
77are ignored; the variable being set at all (even to
78.Dq Li FALSE
79or
80.Dq Li NO )
81causes it to be treated as if it were set.
82.Pp
83The following list provides a name and short description for variables
84that are used for all builds, or are used by the
85.Pa makefiles
86for things other than builds.
87.Bl -tag -width Ar
88.It Va CPUTYPE
89.Pq Vt str
90Controls which processor should be targeted for generated code.
91This controls processor-specific optimizations in certain code
92(currently only OpenSSL) as well as modifying the value of
93.Va CFLAGS
94and
95.Va COPTFLAGS
96to contain the appropriate optimization directive to
97.Xr gcc 1 .
98The automatic setting of
99.Va CFLAGS
100and
101.Va COPTFLAGS
102may be overridden using the
103.Va NO_CPU_CFLAGS
104and
105.Va NO_CPU_COPTFLAGS
106variables, respectively.  Refer to
107.Pa /usr/share/examples/etc/defaults/make.conf
108for a list of recognized
109.Va CPUTYPE
110options.
111.It Va CCVER
112.Pq Vt str
113Controls which GCC version to use by default.
114It should be set as
115.Li CCVER?=
116so as not to interfere with overrides from userland.
117We currently recommend that an override NOT be set in
118.Pa /etc/make.conf .
119Currently accepted values are
120.Dq gcc41
121(default).
122.It Va CFLAGS
123.Pq Vt str
124Controls the compiler setting when compiling C code.
125Optimization levels above
126.Fl O
127.Pq Fl O2 , No ...
128are not supported.
129.Va BDECFLAGS
130is provided as a set of
131.Xr gcc 1
132settings suggested by
133.An "Bruce Evans" Aq bde@FreeBSD.org
134for developing and testing changes.
135They can be used, if set, by:
136.Bd -literal -offset indent
137CFLAGS+=${BDECFLAGS}
138.Ed
139.It Va NO_CPU_CFLAGS
140.Pq Vt str
141Setting this variable will prevent CPU specific compiler flags
142from being automatically added to
143.Va CFLAGS
144during compile time.
145.It Va CXXFLAGS
146.Pq Vt str
147Controls the compiler settings when compiling C++ code.
148.Va CXXFLAGS
149is initially set to the value of
150.Va CFLAGS .
151If you want to add to the
152.Va CXXFLAGS
153value, use
154.Dq Li +=
155instead of
156.Dq Li = .
157.It Va INSTALL
158.Pq Vt str
159the default install command.
160To have components compared before doing the install, use
161.Bd -literal -offset indent
162INSTALL="install -C"
163.Ed
164.It Va LOCAL_DIRS
165.Pq Vt str
166List any directories that should be entered when running make
167.Pa /usr/src
168in this variable.
169.It Va MAKE_SHELL
170.Pq Vt str
171Controls the shell used internally by
172.Xr make 1
173to process the command scripts in makefiles.
174.Xr sh 1 ,
175.Xr ksh 1 ,
176and
177.Xr csh 1
178all currently supported.
179.Bd -literal -offset indent
180MAKE_SHELL?=sh
181.Ed
182.It Va MODULES_OVERRIDE
183.Pq Vt str
184Set to a list of modules to build instead of all of them.
185.It Va MTREE_FOLLOWS_SYMLINKS
186.Pq Vt str
187Set this to
188.Dq Fl L
189to cause
190.Xr mtree 8
191to follow symlinks.
192.It Va STRIP
193.Pq Vt str
194Set this to the flag to pass the
195.Xr strip 1
196command.
197If set to a blank value, components will be installed with debugging
198symbols.
199.It Va WARNS_WERROR
200Causes
201.Fl Werror
202to be added to
203.Va CWARNFLAGS
204when WARNS is in effect.
205.It Va WANT_HESIOD
206.Pq Vt bool
207Set this to build
208.Xr hesiod 3
209support into libc.
210.It Va NO_NS_CACHING
211.Pq Vt bool
212Set this to disable name caching in the nsswitch subsystem.
213The generic caching daemon,
214.Xr nscd 8 ,
215will not be built either if this option is set.
216.It Va STATIC_LOCALES
217.Pq Vt str
218Set to a list of locales to build into statically-linked binaries.
219Currently supported locales are: BIG5 EUC EUCTW ISO2022 MSKanji UTF8
220.El
221.Pp
222The following list provides a name and short description for variables
223that are only used doing a kernel build:
224.Bl -tag -width Ar
225.It Va BOOT_COMCONSOLE_PORT
226.Pq Vt str
227The port address to use for the console if the boot blocks have
228been configured to use a serial console instead of the keyboard/video card.
229.It Va BOOT_COMCONSOLE_SPEED
230.Pq Vt int
231The baud rate to use for the console if the boot blocks have
232been configured to use a serial console instead of the keyboard/video card.
233.It Va COPTFLAGS
234.Pq Vt str
235Controls the compiler settings when building the
236kernel.
237Optimization levels above
238.Fl O
239.Pq Fl O2 , No ...
240are not guaranteed to work.
241.It Va KERNCONF
242.Pq Vt str
243Controls which kernel configurations will be
244built by
245.Dq Li "${MAKE} buildkernel"
246and installed by
247.Dq Li "${MAKE} installkernel" .
248For example,
249.Bd -literal -offset indent
250KERNCONF=MINE DEBUG GENERIC OTHERMACHINE
251.Ed
252.Pp
253will build the kernels specified by the config files
254.Pa MINE , DEBUG , GENERIC ,
255and
256.Pa OTHERMACHINE ,
257and install the kernel specified by the config file
258.Pa MINE .
259It defaults to
260.Pa GENERIC .
261.It Va LOADER_TFTP_SUPPORT
262.Pq Vt bool
263While not a buildkernel-affected option, there is no better place for this.
264By default the
265.Xr pxeboot 8
266loader retrieves the kernel via NFS.
267Defining this and recompiling
268.Pa /usr/src/sys/boot
269will cause it to retrieve the kernel via TFTP.
270This allows pxeboot to load a custom BOOTP diskless kernel yet
271still mount the server's
272.Pa /
273rather than load the server's kernel.
274.It Va NO_CPU_COPTFLAGS
275.Pq Vt str
276Setting this variable will prevent CPU specific compiler flags
277from being automatically added to
278.Va COPTFLAGS
279during compile time.
280.It Va NO_KERNELCLEAN
281.Pq Vt bool
282Set this to skip the clean target when using
283.Dq Li "${MAKE} buildkernel" .
284.It Va NO_KERNELCONFIG
285.Pq Vt bool
286Set this to skip running
287.Xr config 8
288during
289.Dq Li "${MAKE} buildkernel" .
290.It Va NO_KERNELDEPEND
291.Pq Vt bool
292Set this to skip running
293.Dq Li "${MAKE} depend"
294during
295.Dq Li "${MAKE} buildkernel" .
296.It Va NO_KERNEL_OLD_STRIP
297.Pq Vt bool
298Set this to skip stripping debugging symbols from old kernel and modules
299(kernel.old, modules.old) during
300.Dq Li "${MAKE} installkernel" .
301.It Va NO_MODULES
302.Pq Vt bool
303Set to not build modules with the kernel.
304.El
305.Pp
306The following list provides a name and short description for variables
307that are used during the world build:
308.Bl -tag -width Ar
309.It Va ENABLE_SUID_SSH
310.Pq Vt bool
311Set this to install
312.Xr ssh 1
313with the setuid bit turned on.
314.It Va MODULES_WITH_WORLD
315.Pq Vt bool
316Set to build modules with the system instead of the kernel.
317.It Va NO_BIND
318.Pq Vt bool
319Set to not build BIND.
320.It Va NO_CRYPT
321.Pq Vt bool
322Set to not build crypto code.
323.It Va NO_CVS
324.Pq Vt bool
325Set to not build CVS.
326.It Va NO_GAMES
327.Pq Vt bool
328Set to not build games.
329.It Va NO_GCC44
330.Pq Vt bool
331Set to not build the newer version of GCC (4.4).
332.It Va NO_GDB
333.Pq Vt bool
334Set to not build
335.Xr gdb 1
336.It Va NO_I4B
337.Pq Vt bool
338Set to not build isdn4bsd package.
339.It Va NO_IPFILTER
340.Pq Vt bool
341Set to not build IP Filter package.
342.It Va NO_LIBC_R
343.Pq Vt bool
344Set to not build
345.Nm libc_r
346(reentrant version of
347.Nm libc ) .
348.It Va NO_LPR
349.Pq Vt bool
350Set to not build
351.Xr lpr 1
352and related programs.
353.It Va NO_MAILWRAPPER
354.Pq Vt bool
355Set to not build the
356.Xr mailwrapper 8
357MTA selector.
358.It Va NO_OBJC
359.Pq Vt bool
360Set to not build Objective C support.
361.It Va NO_OPENSSH
362.Pq Vt bool
363Set to not build OpenSSH.
364.It Va NO_OPENSSL
365.Pq Vt bool
366Set to not build OpenSSL (implies
367.Va NO_OPENSSH ) .
368.It Va NO_SENDMAIL
369.Pq Vt bool
370Set to not build
371.Xr sendmail 8
372and related programs.
373.It Va NO_SHARE
374.Pq Vt bool
375Set to not enter the share subdirectory.
376.It Va NO_X
377.Pq Vt bool
378Set to not compile in X\-Windows support (e.g.\&
379.Xr doscmd 1 ) .
380.It Va NOCLEAN
381.Pq Vt bool
382Set this to disable cleaning during
383.Dq Li "make buildworld" .
384This should not be set unless you know what you are doing.
385.It Va NOCLEANDIR
386.Pq Vt bool
387Set this to run
388.Dq Li "${MAKE} clean"
389instead of
390.Dq Li "${MAKE} cleandir" .
391.It Va NOFSCHG
392.Pq Vt bool
393Set to not install certain components with flag schg.
394This is useful in a jailed environment.
395.It Va NOINFO
396.Pq Vt bool
397Set to not make or install
398.Xr info 5
399files.
400.It Va NOINFOCOMPRESS
401.Pq Vt bool
402Set to not compress the info pages.
403.It Va NOMAN
404.Pq Vt bool
405Set to not build manual pages
406.It Va NOMANCOMPRESS
407.Pq Vt bool
408Set to not compress the manual pages.
409.It Va NOPROFILE
410.Pq Vt bool
411Set to avoid compiling profiled libraries.
412.It Va PPP_NOSUID
413.Pq Vt bool
414Set to disable the installation of
415.Xr ppp 8
416with the set-user-ID bit on.
417.It Va SENDMAIL_MC
418.Pq Vt str
419The default
420.Xr m4 1
421configuration file to use at install time.
422The value should include the full path to the
423.Pa .mc
424file, e.g.,
425.Pa /etc/mail/myconfig.mc .
426Use with caution as a make install will overwrite any existing
427.Pa /etc/mail/sendmail.cf .
428Note that
429.Va SENDMAIL_CF
430is now deprecated.
431.It Va SENDMAIL_SUBMIT_MC
432.Pq Vt str
433The default
434.Xr m4 1
435configuration file for mail submission
436to use at install time.
437The value should include the full path to the
438.Pa .mc
439file, e.g.,
440.Pa /etc/mail/mysubmit.mc .
441Use with caution as a make install will overwrite any existing
442.Pa /etc/mail/submit.cf .
443.It Va SENDMAIL_ADDITIONAL_MC
444.Pq Vt str
445Additional
446.Pa .mc
447files which should be built into
448.Pa .cf
449files at build time.
450The value should include the full path to the
451.Pa .mc
452file(s), e.g.,
453.Pa /etc/mail/foo.mc
454.Pa /etc/mail/bar.mc .
455.It Va SENDMAIL_CF_DIR
456.Pq Vt str
457Override the default location for the
458.Xr m4 1
459configuration files used to build a
460.Pa .cf
461file from a
462.Pa .mc
463file.
464.It Va SENDMAIL_M4_FLAGS
465.Pq Vt str
466Flags passed to
467.Xr m4 1
468when building a
469.Pa .cf
470file from a
471.Pa .mc
472file.
473.It Va SENDMAIL_CFLAGS
474.Pq Vt str
475Flags to pass to the compile command when building
476.Xr sendmail 8 .
477The
478.Va SENDMAIL_*
479flags can be used to provide SASL support with setting such as:
480.Bd -literal -offset indent
481SENDMAIL_CFLAGS=-I/usr/local/include -DSASL
482SENDMAIL_LDFLAGS=-L/usr/local/lib
483SENDMAIL_LDADD=-lsasl
484.Ed
485.It Va SENDMAIL_LDFLAGS
486.Pq Vt str
487Flags to pass to the
488.Xr ld 1
489command when building
490.Xr sendmail 8 .
491.It Va SENDMAIL_LDADD
492.Pq Vt str
493Flags to add to the end of the
494.Xr ld 1
495command when building
496.Xr sendmail 8 .
497.It Va SENDMAIL_DPADD
498.Pq Vt str
499Extra dependencies to add when building
500.Xr sendmail 8 .
501.It Va SENDMAIL_SET_USER_ID
502.Pq Vt bool
503If set, install
504.Xr sendmail 8
505as a set-user-ID root binary instead of a set-group-ID binary
506and do not install
507.Pa /etc/mail/submit.{cf,mc} .
508Use of this flag is not recommended and the alternative advice in
509.Pa /etc/mail/README
510should be followed instead if at all possible.
511.It Va SENDMAIL_MAP_PERMS
512.Pq Vt str
513Mode to use when generating alias and map database files using
514.Pa /etc/mail/Makefile .
515The default value is 0640.
516.It Va THREAD_LIB
517.Pq Vt str
518Set to either
519.Li c_r
520or
521.Li thread_xu
522to configure the system's default threading library.
523The default is
524.Li thread_xu .
525.It Va TOP_TABLE_SIZE
526.Pq Vt int
527.Xr top 1
528uses a hash table for the user names.  The size of this hash can be tuned
529to match the number of local users.  The table size should be a prime number
530approximately twice as large as the number of lines in
531.Pa /etc/passwd .
532The default number is 20011.
533.It Va WANT_IDEA
534.Pq Vt bool
535Set to build the IDEA encryption code.
536This code is patented in the USA and many European countries.
537It is
538.Em "YOUR RESPONSIBILITY"
539to determine if you can legally use IDEA.
540.It Va WANT_INSTALLER
541.Pq Vt bool
542Set to build the installer.
543.El
544.Pp
545The following list provides a name and short description for variables
546that are used when building documentation.
547.Bl -tag -width Ar
548.It Va DOC_LANG
549.Pq Vt str
550The list of languages and encodings to build and install.
551.It Va PRINTERDEVICE
552.Pq Vt str
553The default format for system documentation, depends on your
554printer.
555This can be set to
556.Dq Li ascii
557for simple printers or
558.Dq Li ps
559for postscript or graphics printers with a ghostscript
560filter.
561.It Va GROFF_PAPER_SIZE
562.Pq Vt str
563The default paper size for
564.Xr groff 1
565(either
566.Dq letter
567or
568.Dq A4 ) .
569.El
570.Sh FILES
571.Bl -tag -width /etc/defaults/make.conf -compact
572.It Pa /etc/defaults/make.conf
573.It Pa /etc/make.conf
574.It Pa /usr/src/Makefile
575.It Pa /usr/src/Makefile.inc1
576.El
577.Sh SEE ALSO
578.Xr gcc 1 ,
579.Xr install 1 ,
580.Xr make 1 ,
581.Xr lpd 8 ,
582.Xr sendmail 8
583.Sh HISTORY
584The
585.Nm
586file appeared sometime before
587.Fx 4.0 .
588.Sh AUTHORS
589This manual page was written by
590.An Mike W. Meyer Aq mwm@mired.org .
591.Sh BUGS
592This manual page may occasionally be out of date with respect to
593the options currently available for use in
594.Nm .
595Please check the
596.Pa /etc/defaults/make.conf
597file for the latest options which are available.
598