Add some words about THREAD_LIB.
[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.31 2007/12/24 11:23:05 swildner Exp $
27 .\"
28 .Dd December 24, 2007
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.
114 It should be set as
115 .Li CCVER?=
116 so as not to interfere with overrides from userland.
117 We currently recommend that an override NOT be set in
118 .Pa /etc/make.conf .
119 Currently accepted values are
120 .Dq gcc34
121 (old version)
122 and
123 .Dq gcc41
124 (default).
125 .It Va CFLAGS
126 .Pq Vt str
127 Controls the compiler setting when compiling C code.
128 Optimization levels above
129 .Fl O
130 .Pq Fl O2 , No ...
131 are not supported.
132 .Va BDECFLAGS
133 is provided as a set of
134 .Xr gcc 1
135 settings suggested by
136 .An "Bruce Evans" Aq bde@FreeBSD.org
137 for developing and testing changes.
138 They can be used, if set, by:
139 .Pp
140 .Bd -literal -offset indent
141 CFLAGS+=${BDECFLAGS}
142 .Ed
143 .It Va NO_CPU_CFLAGS
144 .Pq Vt str
145 Setting this variable will prevent CPU specific compiler flags
146 from being automatically added to
147 .Va CFLAGS
148 during compile time.
149 .It Va CXXFLAGS
150 .Pq Vt str
151 Controls the compiler settings when compiling C++ code.
152 .Va CXXFLAGS
153 is initially set to the value of
154 .Va CFLAGS .
155 If you want to add to the
156 .Va CXXFLAGS
157 value, use
158 .Dq Li +=
159 instead of
160 .Dq Li = .
161 .It Va INSTALL
162 .Pq Vt str
163 the default install command.
164 To have components compared before doing the install, use
165 .Bd -literal -offset indent
166 INSTALL="install -C"
167 .Ed
168 .It Va LOCAL_DIRS
169 .Pq Vt str
170 List any directories that should be entered when running make
171 .Pa /usr/src
172 in this variable.
173 .It Va MAKE_SHELL
174 .Pq Vt str
175 Controls the shell used internally by
176 .Xr make 1
177 to process the command scripts in makefiles.
178 .Xr sh 1 ,
179 .Xr ksh 1 ,
180 and
181 .Xr csh 1
182 all currently supported.
183 .Bd -literal -offset indent
184 MAKE_SHELL?=sh
185 .Ed
186 .It Va MODULES_OVERRIDE
187 .Pq Vt str
188 Set to a list of modules to build instead of all of them.
189 .It Va MTREE_FOLLOWS_SYMLINKS
190 .Pq Vt str
191 Set this to
192 .Dq Fl L
193 to cause
194 .Xr mtree 8
195 to follow symlinks.
196 .It Va NO_DOCUPDATE
197 .Pq Vt bool
198 Set this to not update the doc tree during
199 .Dq Li "make update" .
200 .It Va STRIP
201 .Pq Vt str
202 Set this to the flag to pass the
203 .Xr strip 1
204 command.
205 If set to a blank value, components will be installed with debugging
206 symbols.
207 .It Va SUP_UPDATE
208 .Pq Vt bool
209 Set this to use
210 .Xr cvsup 1
211 to update your ports with
212 .Dq Li "make update" .
213 .It Va SUP
214 .Pq Vt str
215 The location of the
216 .Xr cvsup 1
217 command for
218 .Dq Li "make update" .
219 .It Va SUPFLAGS
220 .Pq Vt str
221 The flag for the
222 .Xr sup 1
223 command when doing
224 .Dq Li "make update" .
225 This defaults to
226 .Dq Fl g L Ar 2 .
227 .It Va SUPHOST
228 .Pq Vt str
229 The hostname of the sup server to use when doing
230 .Dq Li "make update" .
231 .It Va SUPFILE
232 .Pq Vt str
233 The first
234 .Ar supfile
235 to use when doing a
236 .Dq Li "make update" .
237 This defaults to
238 .Pa /usr/share/examples/cvsup/standard\-supfile .
239 .It Va SUPFILE1
240 .Pq Vt str
241 The second
242 .Ar supfile
243 to use when doing a
244 .Dq Li "make update" .
245 This defaults to
246 .Pa /usr/share/examples/cvsup/secure\-supfile .
247 .It Va SUPFILE2
248 .Pq Vt str
249 The third
250 .Ar supfile
251 to use when doing a
252 .Dq Li "make update" .
253 This defaults to
254 .Pa /usr/share/examples/cvsup/secure\-supfile .
255 .It Va DOCSUPFILE
256 .Pq Vt str
257 The documentation
258 .Ar supfile
259 to use when doing a
260 .Dq Li "make update" .
261 This defaults to
262 .Pa /usr/share/examples/cvsup/doc\-supfile .
263 .It Va WARNS_WERROR
264 Causes
265 .Fl Werror
266 to be added to
267 .Va CFLAGS
268 when WARNS is in effect.
269 .El
270 .Pp
271 The following list provides a name and short description for variables
272 that are only used doing a kernel build:
273 .Bl -tag -width Ar
274 .It Va BOOT_COMCONSOLE_PORT
275 .Pq Vt str
276 The port address to use for the console if the boot blocks have
277 been configured to use a serial console instead of the keyboard/video card.
278 .It Va BOOT_COMCONSOLE_SPEED
279 .Pq Vt int
280 The baud rate to use for the console if the boot blocks have
281 been configured to use a serial console instead of the keyboard/video card.
282 .It Va COPTFLAGS
283 .Pq Vt str
284 Controls the compiler settings when building the
285 kernel.
286 Optimization levels above
287 .Fl O
288 .Pq Fl O2 , No ...
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_KERNEL_OLD_STRIP
346 .Pq Vt bool
347 Set this to skip stripping debugging symbols from old kernel and modules
348 (kernel.old, modules.old) during
349 .Dq Li "${MAKE} installkernel" .
350 .It Va NO_MODULES
351 .Pq Vt bool
352 Set to not build modules with the kernel.
353 .El
354 .Pp
355 The following list provides a name and short description for variables
356 that are used during the world build:
357 .Bl -tag -width Ar
358 .It Va ENABLE_SUID_K5SU
359 .Pq Vt bool
360 Set this if you wish to use the k5su utility.
361 Otherwise, it will be installed without the set-user-ID bit set.
362 This is only relevant if
363 .Va WANT_KERBEROS
364 is defined.
365 .It Va ENABLE_SUID_SSH
366 .Pq Vt bool
367 Set this to install
368 .Xr ssh 1
369 with the setuid bit turned on.
370 .It Va MODULES_WITH_WORLD
371 .Pq Vt bool
372 Set to build modules with the system instead of the kernel.
373 .It Va NO_BIND
374 .Pq Vt bool
375 Set to not build BIND.
376 .It Va NO_CRYPT
377 .Pq Vt bool
378 Set to not build crypto code.
379 .It Va NO_CVS
380 .Pq Vt bool
381 Set to not build CVS.
382 .It Va NO_FORTRAN
383 .Pq Vt bool
384 Set to not build
385 .Xr g77 1
386 and related libraries.
387 .It Va NO_GAMES
388 .Pq Vt bool
389 Set to not build games.
390 .It Va NO_GCC34
391 .Pq Vt bool
392 Set to not build the older version of GCC (3.4).
393 .It Va NO_GDB
394 .Pq Vt bool
395 Set to not build
396 .Xr gdb 1
397 .It Va NO_I4B
398 .Pq Vt bool
399 Set to not build isdn4bsd package.
400 .It Va NO_IPFILTER
401 .Pq Vt bool
402 Set to not build IP Filter package.
403 .It Va NO_LIBC_R
404 .Pq Vt bool
405 Set to not build
406 .Nm libc_r
407 (reentrant version of
408 .Nm libc ) .
409 .It Va NO_LPR
410 .Pq Vt bool
411 Set to not build
412 .Xr lpr 1
413 and related programs.
414 .It Va NO_MAILWRAPPER
415 .Pq Vt bool
416 Set to not build the
417 .Xr mailwrapper 8
418 MTA selector.
419 .It Va NO_MAKEDEV
420 .Pq Vt bool
421 Set to avoid running
422 .Dq Li "MAKEDEV all"
423 on
424 .Pa /dev
425 during install.
426 .It Va NO_OBJC
427 .Pq Vt bool
428 Set to not build Objective C support.
429 .It Va NO_OPENSSH
430 .Pq Vt bool
431 Set to not build OpenSSH.
432 .It Va NO_OPENSSL
433 .Pq Vt bool
434 Set to not build OpenSSL (implies
435 .Va NO_OPENSSH ) .
436 .It Va NO_SENDMAIL
437 .Pq Vt bool
438 Set to not build
439 .Xr sendmail 8
440 and related programs.
441 .It Va NO_SHARE
442 .Pq Vt bool
443 Set to not enter the share subdirectory.
444 .It Va NO_X
445 .Pq Vt bool
446 Set to not compile in X\-Windows support (e.g.\&
447 .Xr doscmd 1 ) .
448 .It Va NOCLEAN
449 .Pq Vt bool
450 Set this to disable cleaning during
451 .Dq Li "make buildworld" .
452 This should not be set unless you know what you are doing.
453 .It Va NOCLEANDIR
454 .Pq Vt bool
455 Set this to run
456 .Dq Li "${MAKE} clean"
457 instead of
458 .Dq Li "${MAKE} cleandir" .
459 .It Va NOFSCHG
460 .Pq Vt bool
461 Set to not install certain components with flag schg.
462 This is useful in a jailed environment.
463 .It Va NOINFO
464 .Pq Vt bool
465 Set to not make or install
466 .Xr info 5
467 files.
468 .It Va NOINFOCOMPRESS
469 .Pq Vt bool
470 Set to not compress the info pages.
471 .It Va NOMAN
472 .Pq Vt bool
473 Set to not build manual pages
474 .It Va NOMANCOMPRESS
475 .Pq Vt bool
476 Set to not compress the manual pages.
477 .It Va NOPROFILE
478 .Pq Vt bool
479 Set to avoid compiling profiled libraries.
480 .It Va PPP_NOSUID
481 .Pq Vt bool
482 Set to disable the installation of
483 .Xr ppp 8
484 with the set-user-ID bit on.
485 .It Va SENDMAIL_MC
486 .Pq Vt str
487 The default
488 .Xr m4 1
489 configuration file to use at install time.
490 The value should include the full path to the
491 .Pa .mc
492 file, e.g.,
493 .Pa /etc/mail/myconfig.mc .
494 Use with caution as a make install will overwrite any existing
495 .Pa /etc/mail/sendmail.cf .
496 Note that
497 .Va SENDMAIL_CF
498 is now deprecated.
499 .It Va SENDMAIL_SUBMIT_MC
500 .Pq Vt str
501 The default
502 .Xr m4 1
503 configuration file for mail submission
504 to use at install time.
505 The value should include the full path to the
506 .Pa .mc
507 file, e.g.,
508 .Pa /etc/mail/mysubmit.mc .
509 Use with caution as a make install will overwrite any existing
510 .Pa /etc/mail/submit.cf .
511 .It Va SENDMAIL_ADDITIONAL_MC
512 .Pq Vt str
513 Additional
514 .Pa .mc
515 files which should be built into
516 .Pa .cf
517 files at build time.
518 The value should include the full path to the
519 .Pa .mc
520 file(s), e.g.,
521 .Pa /etc/mail/foo.mc
522 .Pa /etc/mail/bar.mc .
523 .It Va SENDMAIL_CF_DIR
524 .Pq Vt str
525 Override the default location for the
526 .Xr m4 1
527 configuration files used to build a
528 .Pa .cf
529 file from a
530 .Pa .mc
531 file.
532 .It Va SENDMAIL_M4_FLAGS
533 .Pq Vt str
534 Flags passed to
535 .Xr m4 1
536 when building a
537 .Pa .cf
538 file from a
539 .Pa .mc
540 file.
541 .It Va SENDMAIL_CFLAGS
542 .Pq Vt str
543 Flags to pass to the compile command when building
544 .Xr sendmail 8 .
545 The
546 .Va SENDMAIL_*
547 flags can be used to provide SASL support with setting such as:
548 .Bd -literal -offset indent
549 SENDMAIL_CFLAGS=-I/usr/local/include -DSASL
550 SENDMAIL_LDFLAGS=-L/usr/local/lib
551 SENDMAIL_LDADD=-lsasl
552 .Ed
553 .It Va SENDMAIL_LDFLAGS
554 .Pq Vt str
555 Flags to pass to the
556 .Xr ld 1
557 command when building
558 .Xr sendmail 8 .
559 .It Va SENDMAIL_LDADD
560 .Pq Vt str
561 Flags to add to the end of the
562 .Xr ld 1
563 command when building
564 .Xr sendmail 8 .
565 .It Va SENDMAIL_DPADD
566 .Pq Vt str
567 Extra dependencies to add when building
568 .Xr sendmail 8 .
569 .It Va SENDMAIL_SET_USER_ID
570 .Pq Vt bool
571 If set, install
572 .Xr sendmail 8
573 as a set-user-ID root binary instead of a set-group-ID binary
574 and do not install
575 .Pa /etc/mail/submit.{cf,mc} .
576 Use of this flag is not recommended and the alternative advice in
577 .Pa /etc/mail/README
578 should be followed instead if at all possible.
579 .It Va SENDMAIL_MAP_PERMS
580 .Pq Vt str
581 Mode to use when generating alias and map database files using
582 .Pa /etc/mail/Makefile .
583 The default value is 0640.
584 .It Va THREAD_LIB
585 .Pq Vt str
586 Set to either
587 .Li c_r
588 or
589 .Li thread_xu
590 to configure the system's default threading library.
591 The default is
592 .Li thread_xu .
593 .It Va TOP_TABLE_SIZE
594 .Pq Vt int
595 .Xr top 1
596 uses a hash table for the user names.  The size of this hash can be tuned
597 to match the number of local users.  The table size should be a prime number
598 approximately twice as large as the number of lines in
599 .Pa /etc/passwd .
600 The default number is 20011.
601 .It Va WANT_IDEA
602 .Pq Vt bool
603 Set to build the IDEA encryption code.
604 This code is patented in the USA and many European countries.
605 It is
606 .Em "YOUR RESPONSIBILITY"
607 to determine if you can legally use IDEA.
608 .It Va WANT_KERBEROS
609 .Pq Vt bool
610 Set this to build Kerberos5 (KTH Heimdal).
611 .Em WARNING !
612 This is still experimental code.
613 .El
614 .Pp
615 The following list provides a name and short description for variables
616 that are used when building documentation.
617 .Bl -tag -width Ar
618 .It Va DOC_LANG
619 .Pq Vt str
620 The list of languages and encodings to build and install.
621 .It Va PRINTERDEVICE
622 .Pq Vt str
623 The default format for system documentation, depends on your
624 printer.
625 This can be set to
626 .Dq Li ascii
627 for simple printers or
628 .Dq Li ps
629 for postscript or graphics printers with a ghostscript
630 filter.
631 .It Va GROFF_PAPER_SIZE
632 .Pq Vt str
633 The default paper size for
634 .Xr groff 1
635 (either
636 .Dq letter
637 or
638 .Dq A4 ) .
639 .El
640 .Sh FILES
641 .Bl -tag -width /etc/defaults/make.conf -compact
642 .It Pa /etc/defaults/make.conf
643 .It Pa /etc/make.conf
644 .It Pa /usr/src/Makefile
645 .It Pa /usr/src/Makefile.inc1
646 .El
647 .Sh SEE ALSO
648 .Xr gcc 1 ,
649 .Xr install 1 ,
650 .Xr make 1 ,
651 .Xr lpd 8 ,
652 .Xr sendmail 8
653 .Sh HISTORY
654 The
655 .Nm
656 file appeared sometime before
657 .Fx 4.0 .
658 .Sh AUTHORS
659 This manual page was written by
660 .An Mike W. Meyer Aq mwm@mired.org .
661 .Sh BUGS
662 This manual page may occasionally be out of date with respect to
663 the options currently available for use in
664 .Nm .
665 Please check the
666 .Pa /etc/defaults/make.conf
667 file for the latest options which are available.