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