xref: /freebsd/share/man/man5/src.conf.5 (revision 38a52bd3)
1.\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
2.\" $FreeBSD$
3.Dd September 29, 2022
4.Dt SRC.CONF 5
5.Os
6.Sh NAME
7.Nm src.conf
8.Nd "source build options"
9.Sh DESCRIPTION
10The
11.Nm
12file contains variables that control what components will be generated during
13the build process of the
14.Fx
15source tree; see
16.Xr build 7 .
17.Pp
18The
19.Nm
20file uses the standard makefile syntax.
21However,
22.Nm
23should not specify any dependencies to
24.Xr make 1 .
25Instead,
26.Nm
27is to set
28.Xr make 1
29variables that control the aspects of how the system builds.
30.Pp
31The default location of
32.Nm
33is
34.Pa /etc/src.conf ,
35though an alternative location can be specified in the
36.Xr make 1
37variable
38.Va SRCCONF .
39Overriding the location of
40.Nm
41may be necessary if the system-wide settings are not suitable
42for a particular build.
43For instance, setting
44.Va SRCCONF
45to
46.Pa /dev/null
47effectively resets all build controls to their defaults.
48.Pp
49The only purpose of
50.Nm
51is to control the compilation of the
52.Fx
53source code, which is usually located in
54.Pa /usr/src .
55As a rule, the system administrator creates
56.Nm
57when the values of certain control variables need to be changed
58from their defaults.
59.Pp
60In addition, control variables can be specified
61for a particular build via the
62.Fl D
63option of
64.Xr make 1
65or in its environment; see
66.Xr environ 7 .
67.Pp
68The environment of
69.Xr make 1
70for the build can be controlled via the
71.Va SRC_ENV_CONF
72variable, which defaults to
73.Pa /etc/src-env.conf .
74Some examples that may only be set in this file are
75.Va WITH_DIRDEPS_BUILD ,
76and
77.Va WITH_META_MODE ,
78and
79.Va MAKEOBJDIRPREFIX
80as they are environment-only variables.
81.Pp
82The values of variables are ignored regardless of their setting;
83even if they would be set to
84.Dq Li FALSE
85or
86.Dq Li NO .
87The presence of an option causes
88it to be honored by
89.Xr make 1 .
90.Pp
91This list provides a name and short description for variables
92that can be used for source builds.
93.Bl -tag -width indent
94.It Va WITHOUT_ACCT
95Do not build process accounting tools such as
96.Xr accton 8
97and
98.Xr sa 8 .
99.It Va WITHOUT_ACPI
100Do not build
101.Xr acpiconf 8 ,
102.Xr acpidump 8
103and related programs.
104.It Va WITHOUT_APM
105Do not build
106.Xr apm 8 ,
107.Xr apmd 8
108and related programs.
109.It Va WITH_ASAN
110Build the base system with Address Sanitizer (ASan) to detect
111memory corruption bugs such as buffer overflows or use-after-free.
112Requires that Clang be used as the base system compiler
113and that the runtime support library is available.
114When set, it enforces these options:
115.Pp
116.Bl -item -compact
117.It
118.Va WITH_LLVM_BINUTILS
119.It
120.Va WITH_LLVM_CXXFILT
121.El
122.It Va WITHOUT_ASSERT_DEBUG
123Compile programs and libraries without the
124.Xr assert 3
125checks.
126.It Va WITHOUT_AT
127Do not build
128.Xr at 1
129and related utilities.
130.It Va WITHOUT_ATM
131Do not build
132programs and libraries related to ATM networking.
133.It Va WITHOUT_AUDIT
134Do not build audit support into system programs.
135.It Va WITHOUT_AUTHPF
136Do not build
137.Xr authpf 8 .
138.It Va WITHOUT_AUTOFS
139Do not build
140.Xr autofs 5
141related programs, libraries, and kernel modules.
142.It Va WITHOUT_AUTO_OBJ
143Disable automatic creation of objdirs.
144This is enabled by default if the wanted OBJDIR is writable by the current user.
145.Pp
146This must be set in the environment, make command line, or
147.Pa /etc/src-env.conf ,
148not
149.Pa /etc/src.conf .
150.It Va WITH_BEARSSL
151Build the BearSSL library.
152.Pp
153BearSSL is a tiny SSL library suitable for embedded environments.
154For details see
155.Lk https://www.BearSSL.org/
156.Pp
157This library is currently only used to perform
158signature verification and related operations
159for Verified Exec and
160.Xr loader 8 .
161When set, these options are also in effect:
162.Pp
163.Bl -inset -compact
164.It Va WITH_LOADER_EFI_SECUREBOOT
165(unless
166.Va WITHOUT_LOADER_EFI_SECUREBOOT
167is set explicitly)
168.It Va WITH_LOADER_VERIEXEC
169(unless
170.Va WITHOUT_LOADER_VERIEXEC
171is set explicitly)
172.It Va WITH_LOADER_VERIEXEC_VECTX
173(unless
174.Va WITHOUT_LOADER_VERIEXEC_VECTX
175is set explicitly)
176.It Va WITH_VERIEXEC
177(unless
178.Va WITHOUT_VERIEXEC
179is set explicitly)
180.El
181.It Va WITHOUT_BHYVE
182Do not build or install
183.Xr bhyve 8 ,
184associated utilities, and examples.
185.Pp
186This option only affects amd64/amd64.
187.It Va WITH_BHYVE_SNAPSHOT
188Include support for save and restore (snapshots) in
189.Xr bhyve 8
190and
191.Xr bhyvectl 8 .
192.Pp
193This option only affects amd64/amd64.
194.It Va WITH_BIND_NOW
195Build all binaries with the
196.Dv DF_BIND_NOW
197flag set to indicate that the run-time loader should perform all relocation
198processing at process startup rather than on demand.
199The combination of the
200.Va BIND_NOW
201and
202.Va RELRO
203options provide "full" Relocation Read-Only (RELRO) support.
204With full RELRO the entire GOT is made read-only after performing relocation at
205startup, avoiding GOT overwrite attacks.
206.It Va WITHOUT_BLACKLIST
207Set this if you do not want to build
208.Xr blacklistd 8
209and
210.Xr blacklistctl 8 .
211When set, these options are also in effect:
212.Pp
213.Bl -inset -compact
214.It Va WITHOUT_BLACKLIST_SUPPORT
215(unless
216.Va WITH_BLACKLIST_SUPPORT
217is set explicitly)
218.El
219.It Va WITHOUT_BLACKLIST_SUPPORT
220Build some programs without
221.Xr libblacklist 3
222support, like
223.Xr fingerd 8 ,
224.Xr ftpd 8 ,
225and
226.Xr sshd 8 .
227.It Va WITHOUT_BLUETOOTH
228Do not build Bluetooth related kernel modules, programs and libraries.
229.It Va WITHOUT_BOOT
230Do not build the boot blocks and loader.
231.It Va WITHOUT_BOOTPARAMD
232Do not build or install
233.Xr bootparamd 8 .
234.It Va WITHOUT_BOOTPD
235Do not build or install
236.Xr bootpd 8 .
237.It Va WITHOUT_BSDINSTALL
238Do not build
239.Xr bsdinstall 8 ,
240.Xr sade 8 ,
241and related programs.
242.It Va WITHOUT_BSD_CPIO
243Do not build the BSD licensed version of cpio based on
244.Xr libarchive 3 .
245.It Va WITHOUT_BSNMP
246Do not build or install
247.Xr bsnmpd 1
248and related libraries and data files.
249.It Va WITHOUT_BZIP2
250Do not build contributed bzip2 software as a part of the base system.
251.Bf -symbolic
252The option has no effect yet.
253.Ef
254When set, these options are also in effect:
255.Pp
256.Bl -inset -compact
257.It Va WITHOUT_BZIP2_SUPPORT
258(unless
259.Va WITH_BZIP2_SUPPORT
260is set explicitly)
261.El
262.It Va WITHOUT_BZIP2_SUPPORT
263Build some programs without optional bzip2 support.
264.It Va WITHOUT_CALENDAR
265Do not build
266.Xr calendar 1 .
267.It Va WITHOUT_CAPSICUM
268Do not build Capsicum support into system programs.
269When set, it enforces these options:
270.Pp
271.Bl -item -compact
272.It
273.Va WITHOUT_CASPER
274.El
275.It Va WITHOUT_CAROOT
276Do not add the trusted certificates from the Mozilla NSS bundle to
277base.
278.It Va WITHOUT_CASPER
279Do not build Casper program and related libraries.
280.It Va WITH_CCACHE_BUILD
281Use
282.Xr ccache 1
283for the build.
284No configuration is required except to install the
285.Sy devel/ccache
286package.
287When using with
288.Xr distcc 1 ,
289set
290.Sy CCACHE_PREFIX=/usr/local/bin/distcc .
291The default cache directory of
292.Pa $HOME/.ccache
293will be used, which can be overridden by setting
294.Sy CCACHE_DIR .
295The
296.Sy CCACHE_COMPILERCHECK
297option defaults to
298.Sy content
299when using the in-tree bootstrap compiler,
300and
301.Sy mtime
302when using an external compiler.
303The
304.Sy CCACHE_CPP2
305option is used for Clang but not GCC.
306.Pp
307Sharing a cache between multiple work directories requires using a layout
308similar to
309.Pa /some/prefix/src
310.Pa /some/prefix/obj
311and an environment such as:
312.Bd -literal -offset indent
313CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj'
314.Ed
315.Pp
316See
317.Xr ccache 1
318for more configuration options.
319.It Va WITHOUT_CCD
320Do not build
321.Xr geom_ccd 4
322and related utilities.
323.It Va WITHOUT_CDDL
324Do not build code licensed under Sun's CDDL.
325When set, it enforces these options:
326.Pp
327.Bl -item -compact
328.It
329.Va WITHOUT_CTF
330.It
331.Va WITHOUT_DTRACE
332.It
333.Va WITHOUT_LOADER_ZFS
334.It
335.Va WITHOUT_ZFS
336.El
337.It Va WITHOUT_CLANG
338Do not build the Clang C/C++ compiler during the regular phase of the build.
339When set, it enforces these options:
340.Pp
341.Bl -item -compact
342.It
343.Va WITHOUT_CLANG_EXTRAS
344.It
345.Va WITHOUT_CLANG_FORMAT
346.It
347.Va WITHOUT_CLANG_FULL
348.It
349.Va WITHOUT_LLVM_COV
350.El
351.Pp
352When set, these options are also in effect:
353.Pp
354.Bl -inset -compact
355.It Va WITHOUT_LLVM_TARGET_AARCH64
356(unless
357.Va WITH_LLVM_TARGET_AARCH64
358is set explicitly)
359.It Va WITHOUT_LLVM_TARGET_ALL
360(unless
361.Va WITH_LLVM_TARGET_ALL
362is set explicitly)
363.It Va WITHOUT_LLVM_TARGET_ARM
364(unless
365.Va WITH_LLVM_TARGET_ARM
366is set explicitly)
367.It Va WITHOUT_LLVM_TARGET_POWERPC
368(unless
369.Va WITH_LLVM_TARGET_POWERPC
370is set explicitly)
371.It Va WITHOUT_LLVM_TARGET_RISCV
372(unless
373.Va WITH_LLVM_TARGET_RISCV
374is set explicitly)
375.El
376.It Va WITHOUT_CLANG_BOOTSTRAP
377Do not build the Clang C/C++ compiler during the bootstrap phase of
378the build.
379To be able to build the system, either gcc or clang bootstrap must be
380enabled unless an alternate compiler is provided via XCC.
381.It Va WITH_CLANG_EXTRAS
382Build additional clang and llvm tools, such as bugpoint and
383clang-format.
384.It Va WITH_CLANG_FORMAT
385Build clang-format.
386.It Va WITHOUT_CLANG_FULL
387Avoid building the ARCMigrate, Rewriter and StaticAnalyzer components of
388the Clang C/C++ compiler.
389.It Va WITHOUT_CLANG_IS_CC
390Do not install links to the Clang C/C++ compiler as
391.Pa /usr/bin/cc ,
392.Pa /usr/bin/c++
393and
394.Pa /usr/bin/cpp .
395.It Va WITHOUT_CLEAN
396Do not clean before building world and/or kernel.
397.It Va WITHOUT_CPP
398Do not build
399.Xr cpp 1 .
400.It Va WITHOUT_CROSS_COMPILER
401Do not build any cross compiler in the cross-tools stage of buildworld.
402When compiling a different version of
403.Fx
404than what is installed on the system, provide an alternate
405compiler with XCC to ensure success.
406When compiling with an identical version of
407.Fx
408to the host, this option may be safely used.
409This option may also be safe when the host version of
410.Fx
411is close to the sources being built, but all bets are off if there have
412been any changes to the toolchain between the versions.
413When set, it enforces these options:
414.Pp
415.Bl -item -compact
416.It
417.Va WITHOUT_CLANG_BOOTSTRAP
418.It
419.Va WITHOUT_ELFTOOLCHAIN_BOOTSTRAP
420.It
421.Va WITHOUT_LLD_BOOTSTRAP
422.El
423.It Va WITHOUT_CRYPT
424Do not build any crypto code.
425When set, it enforces these options:
426.Pp
427.Bl -item -compact
428.It
429.Va WITHOUT_DMAGENT
430.It
431.Va WITHOUT_KERBEROS
432.It
433.Va WITHOUT_KERBEROS_SUPPORT
434.It
435.Va WITHOUT_LDNS
436.It
437.Va WITHOUT_LDNS_UTILS
438.It
439.Va WITHOUT_OPENSSH
440.It
441.Va WITHOUT_OPENSSL
442.It
443.Va WITHOUT_OPENSSL_KTLS
444.It
445.Va WITHOUT_PKGBOOTSTRAP
446.It
447.Va WITHOUT_UNBOUND
448.It
449.Va WITHOUT_ZFS
450.El
451.Pp
452When set, these options are also in effect:
453.Pp
454.Bl -inset -compact
455.It Va WITHOUT_GSSAPI
456(unless
457.Va WITH_GSSAPI
458is set explicitly)
459.El
460.It Va WITH_CTF
461Compile with CTF (Compact C Type Format) data.
462CTF data encapsulates a reduced form of debugging information
463similar to DWARF and the venerable stabs and is required for DTrace.
464.It Va WITHOUT_CUSE
465Do not build CUSE-related programs and libraries.
466.It Va WITHOUT_CXGBETOOL
467Do not build
468.Xr cxgbetool 8
469.Pp
470This is a default setting on
471arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64 and riscv/riscv64sf.
472.It Va WITH_CXGBETOOL
473Build
474.Xr cxgbetool 8
475.Pp
476This is a default setting on
477amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
478.It Va WITHOUT_CXX
479Do not build C++ headers and runtime libraries.
480It also prevents building binaries and libraries written in C++, including
481.Xr devd 8 .
482When set, it enforces these options:
483.Pp
484.Bl -item -compact
485.It
486.Va WITHOUT_CLANG
487.It
488.Va WITHOUT_CLANG_EXTRAS
489.It
490.Va WITHOUT_CLANG_FORMAT
491.It
492.Va WITHOUT_CLANG_FULL
493.It
494.Va WITHOUT_DTRACE_TESTS
495.It
496.Va WITHOUT_GOOGLETEST
497.It
498.Va WITHOUT_LLVM_COV
499.It
500.Va WITHOUT_OFED
501.It
502.Va WITHOUT_OFED_EXTRA
503.It
504.Va WITHOUT_OPENMP
505.It
506.Va WITHOUT_PMC
507.It
508.Va WITHOUT_TESTS
509.El
510.It Va WITHOUT_DEBUG_FILES
511Avoid building or installing standalone debug files for each
512executable binary and shared library.
513.It Va WITH_DETECT_TZ_CHANGES
514Make the time handling code detect changes to the timezone files.
515.It Va WITHOUT_DIALOG
516Do not build
517.Xr dialog 1 ,
518.Xr dialog 3 ,
519.Xr dpv 1 ,
520and
521.Xr dpv 3 .
522When set, it enforces these options:
523.Pp
524.Bl -item -compact
525.It
526.Va WITHOUT_BSDINSTALL
527.El
528.It Va WITHOUT_DICT
529Do not build the Webster dictionary files.
530.It Va WITH_DIRDEPS_BUILD
531This is an experimental build system.
532For details see
533https://www.crufty.net/sjg/docs/freebsd-meta-mode.htm.
534Build commands can be seen from the top-level with:
535.Dl make show-valid-targets
536The build is driven by dirdeps.mk using
537.Va DIRDEPS
538stored in
539Makefile.depend files found in each directory.
540.Pp
541The build can be started from anywhere, and behaves the same.
542The initial instance of
543.Xr make 1
544recursively reads
545.Va DIRDEPS
546from
547.Pa Makefile.depend ,
548computing a graph of tree dependencies from the current origin.
549Setting
550.Va NO_DIRDEPS
551skips checking dirdep dependencies and will only build in the current
552and child directories.
553.Va NO_DIRDEPS_BELOW
554skips building any dirdeps and only build the current directory.
555.Pp
556This also utilizes the
557.Va WITH_META_MODE
558logic for incremental builds.
559.Pp
560The build hides commands executed unless
561.Va NO_SILENT
562is defined.
563.Pp
564Note that there is currently no mass install feature for this.
565.Pp
566When set, it enforces these options:
567.Pp
568.Bl -item -compact
569.It
570.Va WITH_INSTALL_AS_USER
571.El
572.Pp
573When set, these options are also in effect:
574.Pp
575.Bl -inset -compact
576.It Va WITH_META_MODE
577(unless
578.Va WITHOUT_META_MODE
579is set explicitly)
580.It Va WITH_STAGING
581(unless
582.Va WITHOUT_STAGING
583is set explicitly)
584.It Va WITH_STAGING_MAN
585(unless
586.Va WITHOUT_STAGING_MAN
587is set explicitly)
588.It Va WITH_STAGING_PROG
589(unless
590.Va WITHOUT_STAGING_PROG
591is set explicitly)
592.It Va WITH_SYSROOT
593(unless
594.Va WITHOUT_SYSROOT
595is set explicitly)
596.El
597.Pp
598This must be set in the environment, make command line, or
599.Pa /etc/src-env.conf ,
600not
601.Pa /etc/src.conf .
602.It Va WITH_DIRDEPS_CACHE
603Cache result of dirdeps.mk which can save significant time
604for subsequent builds.
605Depends on
606.Va WITH_DIRDEPS_BUILD .
607.Pp
608This must be set in the environment, make command line, or
609.Pa /etc/src-env.conf ,
610not
611.Pa /etc/src.conf .
612.It Va WITHOUT_DMAGENT
613Do not build dma Mail Transport Agent.
614.It Va WITHOUT_DOCCOMPRESS
615Do not install compressed system documentation.
616Only the uncompressed version will be installed.
617.It Va WITHOUT_DTRACE
618Do not build DTrace framework kernel modules, libraries, and user commands.
619When set, it enforces these options:
620.Pp
621.Bl -item -compact
622.It
623.Va WITHOUT_CTF
624.El
625.It Va WITH_DTRACE_TESTS
626Build and install the DTrace test suite in
627.Pa /usr/tests/cddl/usr.sbin/dtrace .
628This test suite is considered experimental on architectures other than
629amd64/amd64 and running it may cause system instability.
630.It Va WITHOUT_DYNAMICROOT
631Set this if you do not want to link
632.Pa /bin
633and
634.Pa /sbin
635dynamically.
636.It Va WITHOUT_EE
637Do not build and install
638.Xr edit 1 ,
639.Xr ee 1 ,
640and related programs.
641.It Va WITHOUT_EFI
642Set not to build
643.Xr efivar 3
644and
645.Xr efivar 8 .
646.Pp
647This is a default setting on
648powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
649.It Va WITH_EFI
650Build
651.Xr efivar 3
652and
653.Xr efivar 8 .
654.Pp
655This is a default setting on
656amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf.
657.It Va WITHOUT_ELFTOOLCHAIN_BOOTSTRAP
658Do not build ELF Tool Chain tools
659(addr2line, nm, size, strings and strip)
660as part of the bootstrap process.
661.Bf -symbolic
662An alternate bootstrap tool chain must be provided.
663.Ef
664.It Va WITHOUT_EXAMPLES
665Avoid installing examples to
666.Pa /usr/share/examples/ .
667.It Va WITH_EXPERIMENTAL
668Include experimental features in the build.
669.It Va WITH_EXTRA_TCP_STACKS
670Build extra TCP stack modules.
671.It Va WITH_FDT
672Build Flattened Device Tree support as part of the base system.
673This includes the device tree compiler (dtc) and libfdt support library.
674.It Va WITHOUT_FILE
675Do not build
676.Xr file 1
677and related programs.
678.It Va WITHOUT_FINGER
679Do not build or install
680.Xr finger 1
681and
682.Xr fingerd 8 .
683.It Va WITHOUT_FLOPPY
684Do not build or install programs
685for operating floppy disk driver.
686.It Va WITHOUT_FORMAT_EXTENSIONS
687Do not enable
688.Fl fformat-extensions
689when compiling the kernel.
690Also disables all format checking.
691.It Va WITHOUT_FORTH
692Build bootloaders without Forth support.
693.It Va WITHOUT_FP_LIBC
694Build
695.Nm libc
696without floating-point support.
697.It Va WITHOUT_FREEBSD_UPDATE
698Do not build
699.Xr freebsd-update 8 .
700.It Va WITHOUT_FTP
701Do not build or install
702.Xr ftp 1
703and
704.Xr ftpd 8 .
705.It Va WITHOUT_GAMES
706Do not build games.
707.It Va WITHOUT_GH_BC
708Install the traditional FreeBSD
709.Xr bc 1
710and
711.Xr dc 1
712programs instead of the enhanced versions.
713.It Va WITHOUT_GNU_DIFF
714Do not build GNU
715.Xr diff3 1 .
716.It Va WITHOUT_GOOGLETEST
717Neither build nor install
718.Lb libgmock ,
719.Lb libgtest ,
720and dependent tests.
721.It Va WITHOUT_GPIO
722Do not build
723.Xr gpioctl 8
724as part of the base system.
725.It Va WITHOUT_GSSAPI
726Do not build libgssapi.
727.It Va WITHOUT_HAST
728Do not build
729.Xr hastd 8
730and related utilities.
731.It Va WITH_HESIOD
732Build Hesiod support.
733.It Va WITHOUT_HTML
734Do not build HTML docs.
735.It Va WITHOUT_HYPERV
736Do not build or install HyperV utilities.
737.Pp
738This is a default setting on
739arm/armv6, arm/armv7, arm64/aarch64, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
740.It Va WITH_HYPERV
741Build or install HyperV utilities.
742.Pp
743This is a default setting on
744amd64/amd64 and i386/i386.
745.It Va WITHOUT_ICONV
746Do not build iconv as part of libc.
747.It Va WITHOUT_INCLUDES
748Do not install header files.
749This option used to be spelled
750.Va NO_INCS .
751.Bf -symbolic
752The option does not work for build targets.
753.Ef
754.It Va WITHOUT_INET
755Do not build programs and libraries related to IPv4 networking.
756When set, it enforces these options:
757.Pp
758.Bl -item -compact
759.It
760.Va WITHOUT_INET_SUPPORT
761.El
762.It Va WITHOUT_INET6
763Do not build
764programs and libraries related to IPv6 networking.
765When set, it enforces these options:
766.Pp
767.Bl -item -compact
768.It
769.Va WITHOUT_INET6_SUPPORT
770.El
771.It Va WITHOUT_INET6_SUPPORT
772Build libraries, programs, and kernel modules without IPv6 support.
773.It Va WITHOUT_INETD
774Do not build
775.Xr inetd 8 .
776.It Va WITHOUT_INET_SUPPORT
777Build libraries, programs, and kernel modules without IPv4 support.
778.It Va WITH_INIT_ALL_PATTERN
779Build the base system or kernel with stack variables initialized to
780.Pq compiler defined
781debugging patterns on function entry.
782This option requires the clang compiler.
783.It Va WITH_INIT_ALL_ZERO
784Build the base system or kernel with stack variables initialized
785to zero on function entry.
786This option requires that the clang compiler be used.
787.It Va WITHOUT_INSTALLLIB
788Set this to not install optional libraries.
789For example, when creating a
790.Xr nanobsd 8
791image.
792.Bf -symbolic
793The option does not work for build targets.
794.Ef
795.It Va WITH_INSTALL_AS_USER
796Make install targets succeed for non-root users by installing
797files with owner and group attributes set to that of the user running
798the
799.Xr make 1
800command.
801The user still must set the
802.Va DESTDIR
803variable to point to a directory where the user has write permissions.
804.It Va WITHOUT_IPFILTER
805Do not build IP Filter package.
806.It Va WITHOUT_IPFW
807Do not build IPFW tools.
808.It Va WITHOUT_IPSEC_SUPPORT
809Do not build the kernel with
810.Xr ipsec 4
811support.
812This option is needed for
813.Xr ipsec 4
814and
815.Xr tcpmd5 4 .
816.It Va WITHOUT_ISCSI
817Do not build
818.Xr iscsid 8
819and related utilities.
820.It Va WITHOUT_JAIL
821Do not build tools for the support of jails; e.g.,
822.Xr jail 8 .
823.It Va WITHOUT_KDUMP
824Do not build
825.Xr kdump 1
826and
827.Xr truss 1 .
828.It Va WITHOUT_KERBEROS
829Set this to not build Kerberos 5 (KTH Heimdal).
830When set, these options are also in effect:
831.Pp
832.Bl -inset -compact
833.It Va WITHOUT_GSSAPI
834(unless
835.Va WITH_GSSAPI
836is set explicitly)
837.It Va WITHOUT_KERBEROS_SUPPORT
838(unless
839.Va WITH_KERBEROS_SUPPORT
840is set explicitly)
841.El
842.It Va WITHOUT_KERBEROS_SUPPORT
843Build some programs without Kerberos support, like
844.Xr ssh 1 ,
845.Xr telnet 1 ,
846and
847.Xr sshd 8 .
848.It Va WITH_KERNEL_RETPOLINE
849Enable the "retpoline" mitigation for CVE-2017-5715 in the kernel
850build.
851.It Va WITHOUT_KERNEL_SYMBOLS
852Do not install standalone kernel debug symbol files.
853This option has no effect at build time.
854.It Va WITHOUT_KVM
855Do not build the
856.Nm libkvm
857library as a part of the base system.
858.Bf -symbolic
859The option has no effect yet.
860.Ef
861When set, these options are also in effect:
862.Pp
863.Bl -inset -compact
864.It Va WITHOUT_KVM_SUPPORT
865(unless
866.Va WITH_KVM_SUPPORT
867is set explicitly)
868.El
869.It Va WITHOUT_KVM_SUPPORT
870Build some programs without optional
871.Nm libkvm
872support.
873.It Va WITHOUT_LDNS
874Setting this variable will prevent the LDNS library from being built.
875When set, it enforces these options:
876.Pp
877.Bl -item -compact
878.It
879.Va WITHOUT_LDNS_UTILS
880.It
881.Va WITHOUT_UNBOUND
882.El
883.It Va WITHOUT_LDNS_UTILS
884Setting this variable will prevent building the LDNS utilities
885.Xr drill 1
886and
887.Xr host 1 .
888.It Va WITHOUT_LEGACY_CONSOLE
889Do not build programs that support a legacy PC console; e.g.,
890.Xr kbdcontrol 1
891and
892.Xr vidcontrol 1 .
893.It Va WITHOUT_LIB32
894On 64-bit platforms, do not build 32-bit library set and a
895.Nm ld-elf32.so.1
896runtime linker.
897.Pp
898This is a default setting on
899arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
900.It Va WITHOUT_LLD
901Do not build LLVM's lld linker.
902.It Va WITHOUT_LLDB
903Do not build the LLDB debugger.
904.Pp
905This is a default setting on
906arm/armv6, arm/armv7, riscv/riscv64 and riscv/riscv64sf.
907.It Va WITH_LLDB
908Build the LLDB debugger.
909.Pp
910This is a default setting on
911amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
912.It Va WITHOUT_LLD_BOOTSTRAP
913Do not build the LLD linker during the bootstrap phase of
914the build.
915To be able to build the system an alternate linker must be provided via XLD.
916.It Va WITHOUT_LLD_IS_LD
917Do not install a
918.Pa /usr/bin/ld symlink
919to
920.Pa ld.lld .
921The system will not have a usable tool chain unless a linker is provided
922some other way.
923.It Va WITHOUT_LLVM_ASSERTIONS
924Disable debugging assertions in LLVM.
925.It Va WITH_LLVM_BINUTILS
926Install LLVM's binutils (ar, addr2line, nm, etc.) instead of ELF Tool Chain's.
927.It Va WITHOUT_LLVM_COV
928Do not build the
929.Xr llvm-cov 1
930tool.
931.It Va WITHOUT_LLVM_CXXFILT
932Install ELF Tool Chain's cxxfilt as c++filt, instead of LLVM's llvm-cxxfilt.
933.It Va WITHOUT_LLVM_TARGET_AARCH64
934Do not build LLVM target support for AArch64.
935The
936.Va LLVM_TARGET_ALL
937option should be used rather than this in most cases.
938.It Va WITHOUT_LLVM_TARGET_ALL
939Only build the required LLVM target support.
940This option is preferred to specific target support options.
941When set, these options are also in effect:
942.Pp
943.Bl -inset -compact
944.It Va WITHOUT_LLVM_TARGET_AARCH64
945(unless
946.Va WITH_LLVM_TARGET_AARCH64
947is set explicitly)
948.It Va WITHOUT_LLVM_TARGET_ARM
949(unless
950.Va WITH_LLVM_TARGET_ARM
951is set explicitly)
952.It Va WITHOUT_LLVM_TARGET_POWERPC
953(unless
954.Va WITH_LLVM_TARGET_POWERPC
955is set explicitly)
956.It Va WITHOUT_LLVM_TARGET_RISCV
957(unless
958.Va WITH_LLVM_TARGET_RISCV
959is set explicitly)
960.El
961.It Va WITHOUT_LLVM_TARGET_ARM
962Do not build LLVM target support for ARM.
963The
964.Va LLVM_TARGET_ALL
965option should be used rather than this in most cases.
966.It Va WITH_LLVM_TARGET_BPF
967Build LLVM target support for BPF.
968The
969.Va LLVM_TARGET_ALL
970option should be used rather than this in most cases.
971.It Va WITH_LLVM_TARGET_MIPS
972Build LLVM target support for MIPS.
973The
974.Va LLVM_TARGET_ALL
975option should be used rather than this in most cases.
976.It Va WITHOUT_LLVM_TARGET_POWERPC
977Do not build LLVM target support for PowerPC.
978The
979.Va LLVM_TARGET_ALL
980option should be used rather than this in most cases.
981.It Va WITHOUT_LLVM_TARGET_RISCV
982Do not build LLVM target support for RISC-V.
983The
984.Va LLVM_TARGET_ALL
985option should be used rather than this in most cases.
986.It Va WITHOUT_LLVM_TARGET_X86
987Do not build LLVM target support for X86.
988The
989.Va LLVM_TARGET_ALL
990option should be used rather than this in most cases.
991.It Va WITH_LOADER_EFI_SECUREBOOT
992Enable building
993.Xr loader 8
994with support for verification based on certificates obtained from UEFI.
995.It Va WITH_LOADER_FIREWIRE
996Enable firewire support in /boot/loader on x86.
997This option is a nop on all other platforms.
998.It Va WITHOUT_LOADER_GELI
999Disable inclusion of GELI crypto support in the boot chain binaries.
1000.Pp
1001This is a default setting on
1002powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1003.It Va WITH_LOADER_GELI
1004Build GELI bootloader support.
1005.Pp
1006This is a default setting on
1007amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf.
1008.It Va WITHOUT_LOADER_KBOOT
1009Do not build kboot, a linuxboot environment loader
1010.Pp
1011This is a default setting on
1012arm/armv6, arm/armv7, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
1013.It Va WITH_LOADER_KBOOT
1014Build kboot, a linuxboot environment loader
1015.Pp
1016This is a default setting on
1017amd64/amd64 and powerpc/powerpc64.
1018.It Va WITHOUT_LOADER_LUA
1019Do not build LUA bindings for the boot loader.
1020.Pp
1021This is a default setting on
1022powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1023.It Va WITH_LOADER_LUA
1024Build LUA bindings for the boot loader.
1025.Pp
1026This is a default setting on
1027amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf.
1028.It Va WITHOUT_LOADER_OFW
1029Disable building of openfirmware bootloader components.
1030.Pp
1031This is a default setting on
1032amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, riscv/riscv64 and riscv/riscv64sf.
1033.It Va WITH_LOADER_OFW
1034Build openfirmware bootloader components.
1035.Pp
1036This is a default setting on
1037powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1038.It Va WITHOUT_LOADER_UBOOT
1039Disable building of ubldr.
1040.Pp
1041This is a default setting on
1042amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
1043.It Va WITH_LOADER_UBOOT
1044Build ubldr.
1045.Pp
1046This is a default setting on
1047arm/armv6, arm/armv7, powerpc/powerpc and powerpc/powerpc64.
1048.It Va WITH_LOADER_VERBOSE
1049Build with extra verbose debugging in the loader.
1050May explode already nearly too large loader over the limit.
1051Use with care.
1052.It Va WITH_LOADER_VERIEXEC
1053Enable building
1054.Xr loader 8
1055with support for verification similar to Verified Exec.
1056.Pp
1057Depends on
1058.Va WITH_BEARSSL .
1059When set, these options are also in effect:
1060.Pp
1061.Bl -inset -compact
1062.It Va WITH_LOADER_EFI_SECUREBOOT
1063(unless
1064.Va WITHOUT_LOADER_EFI_SECUREBOOT
1065is set explicitly)
1066.It Va WITH_LOADER_VERIEXEC_VECTX
1067(unless
1068.Va WITHOUT_LOADER_VERIEXEC_VECTX
1069is set explicitly)
1070.El
1071.It Va WITH_LOADER_VERIEXEC_PASS_MANIFEST
1072Enable building
1073.Xr loader 8
1074with support to pass a verified manifest to the kernel.
1075The kernel has to be built with a module to parse the manifest.
1076.Pp
1077Depends on
1078.Va WITH_LOADER_VERIEXEC .
1079.It Va WITHOUT_LOADER_ZFS
1080Do not build ZFS file system boot loader support.
1081.It Va WITHOUT_LOCALES
1082Do not build localization files; see
1083.Xr locale 1 .
1084.It Va WITHOUT_LOCATE
1085Do not build
1086.Xr locate 1
1087and related programs.
1088.It Va WITHOUT_LPR
1089Do not build
1090.Xr lpr 1
1091and related programs.
1092.It Va WITHOUT_LS_COLORS
1093Build
1094.Xr ls 1
1095without support for colors to distinguish file types.
1096.It Va WITHOUT_MACHDEP_OPTIMIZATIONS
1097Prefer machine-independent non-assembler code in libc and libm.
1098.It Va WITHOUT_MAIL
1099Do not build any mail support (MUA or MTA).
1100When set, it enforces these options:
1101.Pp
1102.Bl -item -compact
1103.It
1104.Va WITHOUT_DMAGENT
1105.It
1106.Va WITHOUT_MAILWRAPPER
1107.It
1108.Va WITHOUT_SENDMAIL
1109.El
1110.It Va WITHOUT_MAILWRAPPER
1111Do not build the
1112.Xr mailwrapper 8
1113MTA selector.
1114.It Va WITHOUT_MAKE
1115Do not install
1116.Xr make 1
1117and related support files.
1118.It Va WITHOUT_MAKE_CHECK_USE_SANDBOX
1119Do not execute
1120.Dq Li "make check"
1121in limited sandbox mode.
1122This option should be paired with
1123.Va WITH_INSTALL_AS_USER
1124if executed as an unprivileged user.
1125See
1126.Xr tests 7
1127for more details.
1128.It Va WITH_MALLOC_PRODUCTION
1129Disable assertions and statistics gathering in
1130.Xr malloc 3 .
1131It also defaults the A and J runtime options to off.
1132.It Va WITHOUT_MAN
1133Do not build manual pages.
1134When set, these options are also in effect:
1135.Pp
1136.Bl -inset -compact
1137.It Va WITHOUT_MAN_UTILS
1138(unless
1139.Va WITH_MAN_UTILS
1140is set explicitly)
1141.El
1142.It Va WITHOUT_MANCOMPRESS
1143Do not install compressed man pages.
1144Only the uncompressed versions will be installed.
1145.It Va WITH_MANSPLITPKG
1146Split man pages into their own packages during make package.
1147.It Va WITHOUT_MAN_UTILS
1148Do not build utilities for manual pages,
1149.Xr apropos 1 ,
1150.Xr makewhatis 1 ,
1151.Xr man 1 ,
1152.Xr whatis 1 ,
1153.Xr manctl 8 ,
1154and related support files.
1155.It Va WITH_META_MODE
1156Create
1157.Xr make 1
1158meta files when building, which can provide a reliable incremental build when
1159using
1160.Xr filemon 4 .
1161The meta file is created in OBJDIR as
1162.Pa target.meta .
1163These meta files track the command that was executed, its output, and the
1164current directory.
1165The
1166.Xr filemon 4
1167module is required unless
1168.Va NO_FILEMON
1169is defined.
1170When the module is loaded, any files used by the commands executed are
1171tracked as dependencies for the target in its meta file.
1172The target is considered out-of-date and rebuilt if any of these
1173conditions are true compared to the last build:
1174.Bl -bullet -compact
1175.It
1176The command to execute changes.
1177.It
1178The current working directory changes.
1179.It
1180The target's meta file is missing.
1181.It
1182The target's meta file is missing filemon data when filemon is loaded
1183and a previous run did not have it loaded.
1184.It
1185[requires
1186.Xr filemon 4 ]
1187Files read, executed or linked to are newer than the target.
1188.It
1189[requires
1190.Xr filemon 4 ]
1191Files read, written, executed or linked are missing.
1192.El
1193The meta files can also be useful for debugging.
1194.Pp
1195The build hides commands that are executed unless
1196.Va NO_SILENT
1197is defined.
1198Errors cause
1199.Xr make 1
1200to show some of its environment for further debugging.
1201.Pp
1202The build operates as it normally would otherwise.
1203This option originally invoked a different build system but that was renamed
1204to
1205.Va WITH_DIRDEPS_BUILD .
1206.Pp
1207This must be set in the environment, make command line, or
1208.Pa /etc/src-env.conf ,
1209not
1210.Pa /etc/src.conf .
1211.It Va WITHOUT_MLX5TOOL
1212Do not build
1213.Xr mlx5tool 8
1214.Pp
1215This is a default setting on
1216arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64 and riscv/riscv64sf.
1217.It Va WITH_MLX5TOOL
1218Build
1219.Xr mlx5tool 8
1220.Pp
1221This is a default setting on
1222amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
1223.It Va WITHOUT_NETCAT
1224Do not build
1225.Xr nc 1
1226utility.
1227.It Va WITHOUT_NETGRAPH
1228Do not build applications to support
1229.Xr netgraph 4 .
1230When set, it enforces these options:
1231.Pp
1232.Bl -item -compact
1233.It
1234.Va WITHOUT_ATM
1235.It
1236.Va WITHOUT_BLUETOOTH
1237.El
1238.Pp
1239When set, these options are also in effect:
1240.Pp
1241.Bl -inset -compact
1242.It Va WITHOUT_NETGRAPH_SUPPORT
1243(unless
1244.Va WITH_NETGRAPH_SUPPORT
1245is set explicitly)
1246.El
1247.It Va WITHOUT_NETGRAPH_SUPPORT
1248Build libraries, programs, and kernel modules without netgraph support.
1249.It Va WITHOUT_NIS
1250Do not build
1251.Xr NIS 8
1252support and related programs.
1253If set, you might need to adopt your
1254.Xr nsswitch.conf 5
1255and remove
1256.Sq nis
1257entries.
1258.It Va WITHOUT_NLS
1259Do not build NLS catalogs.
1260When set, it enforces these options:
1261.Pp
1262.Bl -item -compact
1263.It
1264.Va WITHOUT_NLS_CATALOGS
1265.El
1266.It Va WITHOUT_NLS_CATALOGS
1267Do not build NLS catalog support for
1268.Xr csh 1 .
1269.It Va WITHOUT_NS_CACHING
1270Disable name caching in the
1271.Pa nsswitch
1272subsystem.
1273The generic caching daemon,
1274.Xr nscd 8 ,
1275will not be built either if this option is set.
1276.It Va WITHOUT_NTP
1277Do not build
1278.Xr ntpd 8
1279and related programs.
1280.It Va WITHOUT_NVME
1281Do not build nvme related tools and kernel modules.
1282.Pp
1283This is a default setting on
1284arm/armv6, arm/armv7, powerpc/powerpc, riscv/riscv64 and riscv/riscv64sf.
1285.It Va WITH_NVME
1286Build nvme related tools and kernel modules.
1287.Pp
1288This is a default setting on
1289amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
1290.It Va WITHOUT_OFED
1291Disable the build of the
1292.Dq "OpenFabrics Enterprise Distribution"
1293Infiniband software stack, including kernel modules and userspace libraries.
1294When set, it enforces these options:
1295.Pp
1296.Bl -item -compact
1297.It
1298.Va WITHOUT_OFED_EXTRA
1299.El
1300.It Va WITH_OFED_EXTRA
1301Build the non-essential components of the
1302.Dq "OpenFabrics Enterprise Distribution"
1303Infiniband software stack, mostly examples.
1304.It Va WITH_OPENLDAP
1305Enable building LDAP support for kerberos using an openldap client from ports.
1306.It Va WITHOUT_OPENMP
1307Do not build LLVM's OpenMP runtime.
1308.Pp
1309This is a default setting on
1310arm/armv6, arm/armv7 and powerpc/powerpc.
1311.It Va WITH_OPENMP
1312Build LLVM's OpenMP runtime.
1313.Pp
1314This is a default setting on
1315amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
1316.It Va WITHOUT_OPENSSH
1317Do not build OpenSSH.
1318.It Va WITHOUT_OPENSSL
1319Do not build OpenSSL.
1320When set, it enforces these options:
1321.Pp
1322.Bl -item -compact
1323.It
1324.Va WITHOUT_DMAGENT
1325.It
1326.Va WITHOUT_KERBEROS
1327.It
1328.Va WITHOUT_KERBEROS_SUPPORT
1329.It
1330.Va WITHOUT_LDNS
1331.It
1332.Va WITHOUT_LDNS_UTILS
1333.It
1334.Va WITHOUT_OPENSSH
1335.It
1336.Va WITHOUT_OPENSSL_KTLS
1337.It
1338.Va WITHOUT_PKGBOOTSTRAP
1339.It
1340.Va WITHOUT_UNBOUND
1341.It
1342.Va WITHOUT_ZFS
1343.El
1344.Pp
1345When set, these options are also in effect:
1346.Pp
1347.Bl -inset -compact
1348.It Va WITHOUT_GSSAPI
1349(unless
1350.Va WITH_GSSAPI
1351is set explicitly)
1352.El
1353.It Va WITHOUT_OPENSSL_KTLS
1354Do not include kernel TLS support in OpenSSL.
1355.Pp
1356This is a default setting on
1357arm/armv6, arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le, riscv/riscv64 and riscv/riscv64sf.
1358.It Va WITH_OPENSSL_KTLS
1359Include kernel TLS support in OpenSSL.
1360.Pp
1361This is a default setting on
1362amd64/amd64 and arm64/aarch64.
1363.It Va WITHOUT_PAM
1364Do not build PAM library and modules.
1365.Bf -symbolic
1366This option is deprecated and does nothing.
1367.Ef
1368When set, these options are also in effect:
1369.Pp
1370.Bl -inset -compact
1371.It Va WITHOUT_PAM_SUPPORT
1372(unless
1373.Va WITH_PAM_SUPPORT
1374is set explicitly)
1375.El
1376.It Va WITHOUT_PAM_SUPPORT
1377Build some programs without PAM support, particularly
1378.Xr ftpd 8
1379and
1380.Xr ppp 8 .
1381.It Va WITHOUT_PF
1382Do not build PF firewall package.
1383When set, it enforces these options:
1384.Pp
1385.Bl -item -compact
1386.It
1387.Va WITHOUT_AUTHPF
1388.El
1389.It Va WITHOUT_PIE
1390Do not build dynamically linked binaries as
1391Position-Independent Executable (PIE).
1392.It Va WITHOUT_PKGBOOTSTRAP
1393Do not build
1394.Xr pkg 7
1395bootstrap tool.
1396.It Va WITHOUT_PMC
1397Do not build
1398.Xr pmccontrol 8
1399and related programs.
1400.It Va WITHOUT_PORTSNAP
1401Do not build or install
1402.Xr portsnap 8
1403and related files.
1404.It Va WITHOUT_PPP
1405Do not build
1406.Xr ppp 8
1407and related programs.
1408.It Va WITH_PROFILE
1409Build profiled libraries for use with
1410.Xr gprof 8 .
1411This option is deprecated and may not be present in a future version of
1412.Fx .
1413.It Va WITHOUT_QUOTAS
1414Do not build
1415.Xr quota 1
1416and related programs.
1417.It Va WITHOUT_RADIUS_SUPPORT
1418Do not build radius support into various applications, like
1419.Xr pam_radius 8
1420and
1421.Xr ppp 8 .
1422.It Va WITH_RATELIMIT
1423Build the system with rate limit support.
1424.Pp
1425This makes
1426.Dv SO_MAX_PACING_RATE
1427effective in
1428.Xr getsockopt 2 ,
1429and
1430.Ar txrlimit
1431support in
1432.Xr ifconfig 8 ,
1433by proxy.
1434.It Va WITHOUT_RBOOTD
1435Do not build or install
1436.Xr rbootd 8 .
1437.It Va WITHOUT_RELRO
1438Do not apply the Relocation Read-Only (RELRO) vulnerability mitigation.
1439See also the
1440.Va BIND_NOW
1441option.
1442.It Va WITH_REPRODUCIBLE_BUILD
1443Exclude build metadata (such as the build time, user, or host)
1444from the kernel, boot loaders, and uname output, so that builds produce
1445bit-for-bit identical output.
1446.It Va WITHOUT_RESCUE
1447Do not build
1448.Xr rescue 8 .
1449.It Va WITH_RETPOLINE
1450Build the base system with the retpoline speculative execution
1451vulnerability mitigation for CVE-2017-5715.
1452.It Va WITHOUT_ROUTED
1453Do not build
1454.Xr routed 8
1455utility.
1456.It Va WITH_RPCBIND_WARMSTART_SUPPORT
1457Build
1458.Xr rpcbind 8
1459with warmstart support.
1460.It Va WITHOUT_SENDMAIL
1461Do not build
1462.Xr sendmail 8
1463and related programs.
1464.It Va WITHOUT_SERVICESDB
1465Do not install
1466.Pa /var/db/services.db .
1467.It Va WITHOUT_SETUID_LOGIN
1468Set this to disable the installation of
1469.Xr login 1
1470as a set-user-ID root program.
1471.It Va WITHOUT_SHAREDOCS
1472Do not build the
1473.Bx 4.4
1474legacy docs.
1475.It Va WITHOUT_SHARED_TOOLCHAIN
1476Build the toolchain binaries as statically linked executables.
1477The set includes
1478.Xr cc 1 ,
1479.Xr make 1
1480and necessary utilities like assembler, linker and library archive manager.
1481.It Va WITH_SORT_THREADS
1482Enable threads in
1483.Xr sort 1 .
1484.It Va WITHOUT_SOURCELESS
1485Do not build kernel modules that include sourceless code (either microcode or native code for host CPU).
1486When set, it enforces these options:
1487.Pp
1488.Bl -item -compact
1489.It
1490.Va WITHOUT_SOURCELESS_HOST
1491.It
1492.Va WITHOUT_SOURCELESS_UCODE
1493.El
1494.It Va WITHOUT_SOURCELESS_HOST
1495Do not build kernel modules that include sourceless native code for host CPU.
1496.It Va WITHOUT_SOURCELESS_UCODE
1497Do not build kernel modules that include sourceless microcode.
1498.It Va WITHOUT_SPLIT_KERNEL_DEBUG
1499Do not build standalone kernel debug files.
1500Debug data (if enabled by the kernel configuration file)
1501will be included in the kernel and modules.
1502When set, it enforces these options:
1503.Pp
1504.Bl -item -compact
1505.It
1506.Va WITHOUT_KERNEL_SYMBOLS
1507.El
1508.It Va WITHOUT_SSP
1509Do not build world with propolice stack smashing protection.
1510.It Va WITH_STAGING
1511Enable staging of files to a stage tree.
1512This can be best thought of as auto-install to
1513.Va DESTDIR
1514with some extra meta data to ensure dependencies can be tracked.
1515Depends on
1516.Va WITH_DIRDEPS_BUILD .
1517When set, these options are also in effect:
1518.Pp
1519.Bl -inset -compact
1520.It Va WITH_STAGING_MAN
1521(unless
1522.Va WITHOUT_STAGING_MAN
1523is set explicitly)
1524.It Va WITH_STAGING_PROG
1525(unless
1526.Va WITHOUT_STAGING_PROG
1527is set explicitly)
1528.El
1529.Pp
1530This must be set in the environment, make command line, or
1531.Pa /etc/src-env.conf ,
1532not
1533.Pa /etc/src.conf .
1534.It Va WITH_STAGING_MAN
1535Enable staging of man pages to stage tree.
1536.It Va WITH_STAGING_PROG
1537Enable staging of PROGs to stage tree.
1538.It Va WITH_STALE_STAGED
1539Check staged files are not stale.
1540.It Va WITHOUT_STATS
1541Neither build nor install
1542.Lb libstats
1543and dependent binaries.
1544.It Va WITHOUT_SYSCONS
1545Do not build
1546.Xr syscons 4
1547support files such as keyboard maps, fonts, and screen output maps.
1548.It Va WITH_SYSROOT
1549Enable use of sysroot during build.
1550Depends on
1551.Va WITH_DIRDEPS_BUILD .
1552.Pp
1553This must be set in the environment, make command line, or
1554.Pa /etc/src-env.conf ,
1555not
1556.Pa /etc/src.conf .
1557.It Va WITHOUT_SYSTEM_COMPILER
1558Do not opportunistically skip building a cross-compiler during the
1559bootstrap phase of the build.
1560Normally, if the currently installed compiler matches the planned bootstrap
1561compiler type and revision, then it will not be built.
1562This does not prevent a compiler from being built for installation though,
1563only for building one for the build itself.
1564The
1565.Va WITHOUT_CLANG
1566option controls that.
1567.It Va WITHOUT_SYSTEM_LINKER
1568Do not opportunistically skip building a cross-linker during the
1569bootstrap phase of the build.
1570Normally, if the currently installed linker matches the planned bootstrap
1571linker type and revision, then it will not be built.
1572This does not prevent a linker from being built for installation though,
1573only for building one for the build itself.
1574The
1575.Va WITHOUT_LLD
1576option controls that.
1577.Pp
1578This option is only relevant when
1579.Va WITH_LLD_BOOTSTRAP
1580is set.
1581.It Va WITHOUT_TALK
1582Do not build or install
1583.Xr talk 1
1584and
1585.Xr talkd 8 .
1586.It Va WITHOUT_TCP_WRAPPERS
1587Do not build or install
1588.Xr tcpd 8 ,
1589and related utilities.
1590.It Va WITHOUT_TCSH
1591Do not build and install
1592.Pa /bin/csh
1593(which is
1594.Xr tcsh 1 ) .
1595.It Va WITHOUT_TELNET
1596Do not build
1597.Xr telnet 1
1598and related programs.
1599.It Va WITHOUT_TESTS
1600Do not build nor install the
1601.Fx
1602Test Suite in
1603.Pa /usr/tests/ .
1604See
1605.Xr tests 7
1606for more details.
1607This also disables the build of all test-related dependencies, including ATF.
1608When set, it enforces these options:
1609.Pp
1610.Bl -item -compact
1611.It
1612.Va WITHOUT_DTRACE_TESTS
1613.El
1614.Pp
1615When set, these options are also in effect:
1616.Pp
1617.Bl -inset -compact
1618.It Va WITHOUT_GOOGLETEST
1619(unless
1620.Va WITH_GOOGLETEST
1621is set explicitly)
1622.It Va WITHOUT_TESTS_SUPPORT
1623(unless
1624.Va WITH_TESTS_SUPPORT
1625is set explicitly)
1626.El
1627.It Va WITHOUT_TESTS_SUPPORT
1628Disable the build of all test-related dependencies, including ATF.
1629When set, it enforces these options:
1630.Pp
1631.Bl -item -compact
1632.It
1633.Va WITHOUT_GOOGLETEST
1634.El
1635.It Va WITHOUT_TEXTPROC
1636Do not build
1637programs used for text processing.
1638.It Va WITHOUT_TFTP
1639Do not build or install
1640.Xr tftp 1
1641and
1642.Xr tftpd 8 .
1643.It Va WITHOUT_TOOLCHAIN
1644Do not install header or
1645programs used for program development,
1646compilers, debuggers etc.
1647When set, it enforces these options:
1648.Pp
1649.Bl -item -compact
1650.It
1651.Va WITHOUT_CLANG
1652.It
1653.Va WITHOUT_CLANG_EXTRAS
1654.It
1655.Va WITHOUT_CLANG_FORMAT
1656.It
1657.Va WITHOUT_CLANG_FULL
1658.It
1659.Va WITHOUT_INCLUDES
1660.It
1661.Va WITHOUT_LLD
1662.It
1663.Va WITHOUT_LLDB
1664.It
1665.Va WITHOUT_LLVM_COV
1666.El
1667.It Va WITH_UBSAN
1668Build the base system with Undefined Behavior Sanitizer (UBSan) to detect
1669various kinds of undefined behavior at runtime.
1670Requires that Clang be used as the base system compiler
1671and that the runtime support library is available
1672.It Va WITHOUT_UNBOUND
1673Do not build
1674.Xr unbound 8
1675and related programs.
1676.It Va WITHOUT_UNIFIED_OBJDIR
1677Use the historical object directory format for
1678.Xr build 7
1679targets.
1680For native-builds and builds done directly in sub-directories the format of
1681.Pa ${MAKEOBJDIRPREFIX}/${.CURDIR}
1682is used,
1683while for cross-builds
1684.Pa ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}/${.CURDIR}
1685is used.
1686.Pp
1687This option is transitional and will be removed in a future version of
1688.Fx ,
1689at which time
1690.Va WITH_UNIFIED_OBJDIR
1691will be enabled permanently.
1692.Pp
1693This must be set in the environment, make command line, or
1694.Pa /etc/src-env.conf ,
1695not
1696.Pa /etc/src.conf .
1697.It Va WITHOUT_USB
1698Do not build USB-related programs and libraries.
1699.It Va WITHOUT_USB_GADGET_EXAMPLES
1700Do not build USB gadget kernel modules.
1701.It Va WITHOUT_UTMPX
1702Do not build user accounting tools such as
1703.Xr last 1 ,
1704.Xr users 1 ,
1705.Xr who 1 ,
1706.Xr ac 8 ,
1707.Xr lastlogin 8
1708and
1709.Xr utx 8 .
1710.It Va WITH_VERIEXEC
1711Enable building
1712.Xr veriexec 8
1713which loads the contents of verified manifests into the kernel
1714for use by
1715.Xr mac_veriexec 4
1716.Pp
1717Depends on
1718.Va WITH_BEARSSL .
1719.It Va WITHOUT_VI
1720Do not build and install vi, view, ex and related programs.
1721.It Va WITHOUT_VT
1722Do not build
1723.Xr vt 4
1724support files (fonts and keymaps).
1725.It Va WITHOUT_WARNS
1726Set this to not add warning flags to the compiler invocations.
1727Useful as a temporary workaround when code enters the tree
1728which triggers warnings in environments that differ from the
1729original developer.
1730.It Va WITHOUT_WERROR
1731Set this to not treat compiler warnings as errors.
1732Useful as a temporary workaround when working on fixing compiler warnings.
1733When set, warnings are still printed in the build log but do not fail the build.
1734.It Va WITHOUT_WIRELESS
1735Do not build programs used for 802.11 wireless networks; especially
1736.Xr wpa_supplicant 8
1737and
1738.Xr hostapd 8 .
1739When set, these options are also in effect:
1740.Pp
1741.Bl -inset -compact
1742.It Va WITHOUT_WIRELESS_SUPPORT
1743(unless
1744.Va WITH_WIRELESS_SUPPORT
1745is set explicitly)
1746.El
1747.It Va WITHOUT_WIRELESS_SUPPORT
1748Build libraries, programs, and kernel modules without
1749802.11 wireless support.
1750.It Va WITHOUT_WPA_SUPPLICANT_EAPOL
1751Build
1752.Xr wpa_supplicant 8
1753without support for the IEEE 802.1X protocol and without
1754support for EAP-PEAP, EAP-TLS, EAP-LEAP, and EAP-TTLS
1755protocols (usable only via 802.1X).
1756.It Va WITHOUT_ZFS
1757Do not build the ZFS file system kernel module, libraries such as
1758.Xr libbe 3 ,
1759and user commands such as
1760.Xr zpool 8
1761or
1762.Xr zfs 8 .
1763Also disable ZFS support in utilities and libraries which implement
1764ZFS-specific functionality.
1765.It Va WITHOUT_ZONEINFO
1766Do not build the timezone database.
1767When set, it enforces these options:
1768.Pp
1769.Bl -item -compact
1770.It
1771.Va WITHOUT_ZONEINFO_LEAPSECONDS_SUPPORT
1772.El
1773.It Va WITH_ZONEINFO_LEAPSECONDS_SUPPORT
1774Build leapsecond information in to the timezone database.
1775.El
1776.Sh FILES
1777.Bl -tag -compact -width Pa
1778.It Pa /etc/src.conf
1779.It Pa /etc/src-env.conf
1780.It Pa /usr/share/mk/bsd.own.mk
1781.El
1782.Sh SEE ALSO
1783.Xr make 1 ,
1784.Xr make.conf 5 ,
1785.Xr build 7 ,
1786.Xr ports 7
1787.Sh HISTORY
1788The
1789.Nm
1790file appeared in
1791.Fx 7.0 .
1792.Sh AUTHORS
1793This manual page was autogenerated by
1794.An tools/build/options/makeman .
1795