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