xref: /freebsd-14-stable/share/man/man5/src.conf.5 (revision 3ab24f211ae89cea051796f8fa2971947ddb55a5)
1.\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
2.Dd April 30, 2025
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.It Va WITHOUT_LLVM_COV
963Do not build the
964.Xr llvm-cov 1
965tool.
966.It Va WITHOUT_LLVM_CXXFILT
967Install ELF Tool Chain's cxxfilt as c++filt, instead of LLVM's llvm-cxxfilt.
968.It Va WITH_LLVM_FULL_DEBUGINFO
969Generate full debug information for LLVM libraries and tools, which uses
970more disk space and build resources, but allows for easier debugging.
971.It Va WITHOUT_LLVM_TARGET_AARCH64
972Do not build LLVM target support for AArch64.
973The
974.Va LLVM_TARGET_ALL
975option should be used rather than this in most cases.
976.It Va WITHOUT_LLVM_TARGET_ALL
977Only build the required LLVM target support.
978This option is preferred to specific target support options.
979When set, these options are also in effect:
980.Pp
981.Bl -inset -compact
982.It Va WITHOUT_LLVM_TARGET_AARCH64
983(unless
984.Va WITH_LLVM_TARGET_AARCH64
985is set explicitly)
986.It Va WITHOUT_LLVM_TARGET_ARM
987(unless
988.Va WITH_LLVM_TARGET_ARM
989is set explicitly)
990.It Va WITHOUT_LLVM_TARGET_POWERPC
991(unless
992.Va WITH_LLVM_TARGET_POWERPC
993is set explicitly)
994.It Va WITHOUT_LLVM_TARGET_RISCV
995(unless
996.Va WITH_LLVM_TARGET_RISCV
997is set explicitly)
998.El
999.It Va WITHOUT_LLVM_TARGET_ARM
1000Do not build LLVM target support for ARM.
1001The
1002.Va LLVM_TARGET_ALL
1003option should be used rather than this in most cases.
1004.It Va WITH_LLVM_TARGET_BPF
1005Build LLVM target support for BPF.
1006The
1007.Va LLVM_TARGET_ALL
1008option should be used rather than this in most cases.
1009.It Va WITH_LLVM_TARGET_MIPS
1010Build LLVM target support for MIPS.
1011The
1012.Va LLVM_TARGET_ALL
1013option should be used rather than this in most cases.
1014.It Va WITHOUT_LLVM_TARGET_POWERPC
1015Do not build LLVM target support for PowerPC.
1016The
1017.Va LLVM_TARGET_ALL
1018option should be used rather than this in most cases.
1019.It Va WITHOUT_LLVM_TARGET_RISCV
1020Do not build LLVM target support for RISC-V.
1021The
1022.Va LLVM_TARGET_ALL
1023option should be used rather than this in most cases.
1024.It Va WITHOUT_LLVM_TARGET_X86
1025Do not build LLVM target support for X86.
1026The
1027.Va LLVM_TARGET_ALL
1028option should be used rather than this in most cases.
1029.It Va WITHOUT_LOADER_BIOS_TEXTONLY
1030Include graphics, font and video mode support in the i386 and amd64 BIOS
1031boot loader.
1032.It Va WITH_LOADER_EFI_SECUREBOOT
1033Enable building
1034.Xr loader 8
1035with support for verification based on certificates obtained from UEFI.
1036.It Va WITHOUT_LOADER_GELI
1037Disable inclusion of GELI crypto support in the boot chain binaries.
1038.Pp
1039This is a default setting on
1040powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1041.It Va WITH_LOADER_GELI
1042Build GELI bootloader support.
1043.Pp
1044This is a default setting on
1045amd64/amd64, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64.
1046.It Va WITHOUT_LOADER_KBOOT
1047Do not build kboot, a linuxboot environment loader
1048.Pp
1049This is a default setting on
1050arm/armv7, i386/i386, powerpc/powerpc, powerpc/powerpc64le and riscv/riscv64.
1051.It Va WITH_LOADER_KBOOT
1052Build kboot, a linuxboot environment loader
1053.Pp
1054This is a default setting on
1055amd64/amd64, arm64/aarch64 and powerpc/powerpc64.
1056.It Va WITHOUT_LOADER_LUA
1057Do not build LUA bindings for the boot loader.
1058.Pp
1059This is a default setting on
1060powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1061.It Va WITH_LOADER_LUA
1062Build LUA bindings for the boot loader.
1063.Pp
1064This is a default setting on
1065amd64/amd64, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64.
1066.It Va WITHOUT_LOADER_OFW
1067Disable building of openfirmware bootloader components.
1068.Pp
1069This is a default setting on
1070amd64/amd64, arm/armv7, arm64/aarch64, i386/i386 and riscv/riscv64.
1071.It Va WITH_LOADER_OFW
1072Build openfirmware bootloader components.
1073.Pp
1074This is a default setting on
1075powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpc64le.
1076.It Va WITHOUT_LOADER_PXEBOOT
1077Do not build pxeboot on i386/amd64.
1078When the pxeboot is too large, or unneeded, it may be disabled with this option.
1079See
1080.Va WITH_LOADER_PXEBOOT
1081for how to adjust the defaults when you need both a larger
1082.Pa /boot/loader
1083and
1084.Pa /boot/pxeboot
1085.Pp
1086This option only has an effect on x86.
1087.It Va WITHOUT_LOADER_UBOOT
1088Disable building of ubldr.
1089.Pp
1090This is a default setting on
1091amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64le and riscv/riscv64.
1092.It Va WITH_LOADER_UBOOT
1093Build ubldr.
1094.Pp
1095This is a default setting on
1096arm/armv7, powerpc/powerpc and powerpc/powerpc64.
1097.It Va WITH_LOADER_VERBOSE
1098Build with extra verbose debugging in the loader.
1099May explode already nearly too large loader over the limit.
1100Use with care.
1101.It Va WITH_LOADER_VERIEXEC
1102Enable building
1103.Xr loader 8
1104with support for verification similar to Verified Exec.
1105.Pp
1106Depends on
1107.Va WITH_BEARSSL .
1108May require a larger
1109.Va LOADERSIZE .
1110When set, these options are also in effect:
1111.Pp
1112.Bl -inset -compact
1113.It Va WITH_LOADER_EFI_SECUREBOOT
1114(unless
1115.Va WITHOUT_LOADER_EFI_SECUREBOOT
1116is set explicitly)
1117.It Va WITH_LOADER_VERIEXEC_VECTX
1118(unless
1119.Va WITHOUT_LOADER_VERIEXEC_VECTX
1120is set explicitly)
1121.El
1122.It Va WITH_LOADER_VERIEXEC_PASS_MANIFEST
1123Enable building
1124.Xr loader 8
1125with support to pass a verified manifest to the kernel.
1126The kernel has to be built with a module to parse the manifest.
1127.Pp
1128Depends on
1129.Va WITH_LOADER_VERIEXEC .
1130.It Va WITH_LOADER_VERIEXEC_VECTX
1131Enable building
1132.Xr loader 8
1133with support for hashing and verifying kernel and modules as a side effect
1134of loading.
1135.Pp
1136Depends on
1137.Va WITH_LOADER_VERIEXEC .
1138.It Va WITHOUT_LOADER_ZFS
1139Do not build ZFS file system boot loader support.
1140.It Va WITHOUT_LOCALES
1141Do not build localization files; see
1142.Xr locale 1 .
1143.It Va WITHOUT_LOCATE
1144Do not build
1145.Xr locate 1
1146and related programs.
1147.It Va WITHOUT_LPR
1148Do not build
1149.Xr lpr 1
1150and related programs.
1151.It Va WITHOUT_LS_COLORS
1152Build
1153.Xr ls 1
1154without support for colors to distinguish file types.
1155.It Va WITHOUT_MACHDEP_OPTIMIZATIONS
1156Prefer machine-independent non-assembler code in libc and libm.
1157.It Va WITHOUT_MAIL
1158Do not build any mail support (MUA or MTA).
1159When set, it enforces these options:
1160.Pp
1161.Bl -item -compact
1162.It
1163.Va WITHOUT_DMAGENT
1164.It
1165.Va WITHOUT_MAILWRAPPER
1166.It
1167.Va WITHOUT_SENDMAIL
1168.El
1169.It Va WITHOUT_MAILWRAPPER
1170Do not build the
1171.Xr mailwrapper 8
1172MTA selector.
1173.It Va WITHOUT_MAKE
1174Do not install
1175.Xr make 1
1176and related support files.
1177.It Va WITHOUT_MAKE_CHECK_USE_SANDBOX
1178Do not execute
1179.Dq Li "make check"
1180in limited sandbox mode.
1181This option should be paired with
1182.Va WITH_INSTALL_AS_USER
1183if executed as an unprivileged user.
1184See
1185.Xr tests 7
1186for more details.
1187.It Va WITH_MALLOC_PRODUCTION
1188Disable assertions and statistics gathering in
1189.Xr malloc 3 .
1190It also defaults the A and J runtime options to off.
1191.It Va WITHOUT_MAN
1192Do not build manual pages.
1193When set, these options are also in effect:
1194.Pp
1195.Bl -inset -compact
1196.It Va WITHOUT_MAN_UTILS
1197(unless
1198.Va WITH_MAN_UTILS
1199is set explicitly)
1200.El
1201.It Va WITHOUT_MANCOMPRESS
1202Do not install compressed man pages.
1203Only the uncompressed versions will be installed.
1204.It Va WITHOUT_MANSPLITPKG
1205Do not split man pages into their own packages during make package.
1206.It Va WITHOUT_MAN_UTILS
1207Do not build utilities for manual pages,
1208.Xr apropos 1 ,
1209.Xr makewhatis 1 ,
1210.Xr man 1 ,
1211.Xr whatis 1 ,
1212.Xr manctl 8 ,
1213and related support files.
1214.It Va WITH_META_ERROR_TARGET
1215Enable the META_MODE .ERROR target.
1216.Pp
1217This target will copy the meta file of a failed target
1218to
1219.Va ERROR_LOGDIR
1220(default is
1221.Ql ${SRCTOP:H}/error )
1222to help with failure analysis.
1223Depends on
1224.Va WITH_META_MODE .
1225This default when
1226.Va WITH_DIRDEPS_BUILD
1227is set.
1228.Pp
1229This must be set in the environment, make command line, or
1230.Pa /etc/src-env.conf ,
1231not
1232.Pa /etc/src.conf .
1233.It Va WITH_META_MODE
1234Create
1235.Xr make 1
1236meta files when building, which can provide a reliable incremental build when
1237using
1238.Xr filemon 4 .
1239The meta file is created in OBJDIR as
1240.Pa target.meta .
1241These meta files track the command that was executed, its output, and the
1242current directory.
1243The
1244.Xr filemon 4
1245module is required unless
1246.Va NO_FILEMON
1247is defined.
1248When the module is loaded, any files used by the commands executed are
1249tracked as dependencies for the target in its meta file.
1250The target is considered out-of-date and rebuilt if any of these
1251conditions are true compared to the last build:
1252.Bl -bullet -compact
1253.It
1254The command to execute changes.
1255.It
1256The current working directory changes.
1257.It
1258The target's meta file is missing.
1259.It
1260The target's meta file is missing filemon data when filemon is loaded
1261and a previous run did not have it loaded.
1262.It
1263[requires
1264.Xr filemon 4 ]
1265Files read, executed or linked to are newer than the target.
1266.It
1267[requires
1268.Xr filemon 4 ]
1269Files read, written, executed or linked are missing.
1270.El
1271The meta files can also be useful for debugging.
1272.Pp
1273The build hides commands that are executed unless
1274.Va NO_SILENT
1275is defined.
1276Errors cause
1277.Xr make 1
1278to show some of its environment for further debugging.
1279.Pp
1280The build operates as it normally would otherwise.
1281This option originally invoked a different build system but that was renamed
1282to
1283.Va WITH_DIRDEPS_BUILD .
1284.Pp
1285This must be set in the environment, make command line, or
1286.Pa /etc/src-env.conf ,
1287not
1288.Pa /etc/src.conf .
1289.It Va WITHOUT_MLX5TOOL
1290Do not build
1291.Xr mlx5tool 8
1292.Pp
1293This is a default setting on
1294arm/armv7, powerpc/powerpc and riscv/riscv64.
1295.It Va WITH_MLX5TOOL
1296Build
1297.Xr mlx5tool 8
1298.Pp
1299This is a default setting on
1300amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
1301.It Va WITHOUT_NETCAT
1302Do not build
1303.Xr nc 1
1304utility.
1305.It Va WITHOUT_NETGRAPH
1306Do not build applications to support
1307.Xr netgraph 4 .
1308When set, it enforces these options:
1309.Pp
1310.Bl -item -compact
1311.It
1312.Va WITHOUT_BLUETOOTH
1313.El
1314.Pp
1315When set, these options are also in effect:
1316.Pp
1317.Bl -inset -compact
1318.It Va WITHOUT_NETGRAPH_SUPPORT
1319(unless
1320.Va WITH_NETGRAPH_SUPPORT
1321is set explicitly)
1322.El
1323.It Va WITHOUT_NETGRAPH_SUPPORT
1324Build libraries, programs, and kernel modules without netgraph support.
1325.It Va WITHOUT_NETLINK
1326Do not build
1327.Xr genl 1
1328utility.
1329.It Va WITHOUT_NETLINK_SUPPORT
1330Make libraries and programs use rtsock and
1331.Xr sysctl 3
1332interfaces instead of
1333.Xr snl 3 .
1334.It Va WITHOUT_NIS
1335Do not build
1336.Xr NIS 8
1337support and related programs.
1338If set, you might need to adopt your
1339.Xr nsswitch.conf 5
1340and remove
1341.Sq nis
1342entries.
1343.It Va WITHOUT_NLS
1344Do not build NLS catalogs.
1345When set, it enforces these options:
1346.Pp
1347.Bl -item -compact
1348.It
1349.Va WITHOUT_NLS_CATALOGS
1350.El
1351.It Va WITHOUT_NLS_CATALOGS
1352Do not build NLS catalog support for
1353.Xr csh 1 .
1354.It Va WITHOUT_NS_CACHING
1355Disable name caching in the
1356.Pa nsswitch
1357subsystem.
1358The generic caching daemon,
1359.Xr nscd 8 ,
1360will not be built either if this option is set.
1361.It Va WITHOUT_NTP
1362Do not build
1363.Xr ntpd 8
1364and related programs.
1365.It Va WITHOUT_NUAGEINIT
1366Do not install the limited cloud init support scripts.
1367.It Va WITHOUT_OFED
1368Do not build the
1369.Dq "OpenFabrics Enterprise Distribution"
1370InfiniBand software stack, including kernel modules and userspace libraries.
1371.Pp
1372This is a default setting on
1373arm/armv7.
1374When set, it enforces these options:
1375.Pp
1376.Bl -item -compact
1377.It
1378.Va WITHOUT_OFED_EXTRA
1379.El
1380.It Va WITH_OFED
1381Build the
1382.Dq "OpenFabrics Enterprise Distribution"
1383InfiniBand software stack, including kernel modules and userspace libraries.
1384.Pp
1385This is a default setting on
1386amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
1387.It Va WITH_OFED_EXTRA
1388Build the non-essential components of the
1389.Dq "OpenFabrics Enterprise Distribution"
1390Infiniband software stack, mostly examples.
1391.It Va WITH_OPENLDAP
1392Enable building LDAP support for kerberos using an openldap client from ports.
1393.It Va WITHOUT_OPENMP
1394Do not build LLVM's OpenMP runtime.
1395.Pp
1396This is a default setting on
1397arm/armv7 and powerpc/powerpc.
1398.It Va WITH_OPENMP
1399Build LLVM's OpenMP runtime.
1400.Pp
1401This is a default setting on
1402amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
1403.It Va WITHOUT_OPENSSH
1404Do not build OpenSSH.
1405.It Va WITHOUT_OPENSSL
1406Do not build OpenSSL.
1407When set, it enforces these options:
1408.Pp
1409.Bl -item -compact
1410.It
1411.Va WITHOUT_DMAGENT
1412.It
1413.Va WITHOUT_KERBEROS
1414.It
1415.Va WITHOUT_KERBEROS_SUPPORT
1416.It
1417.Va WITHOUT_LDNS
1418.It
1419.Va WITHOUT_LDNS_UTILS
1420.It
1421.Va WITHOUT_LOADER_ZFS
1422.It
1423.Va WITHOUT_OPENSSH
1424.It
1425.Va WITHOUT_OPENSSL_KTLS
1426.It
1427.Va WITHOUT_PKGBOOTSTRAP
1428.It
1429.Va WITHOUT_UNBOUND
1430.It
1431.Va WITHOUT_ZFS
1432.It
1433.Va WITHOUT_ZFS_TESTS
1434.El
1435.Pp
1436When set, these options are also in effect:
1437.Pp
1438.Bl -inset -compact
1439.It Va WITHOUT_GSSAPI
1440(unless
1441.Va WITH_GSSAPI
1442is set explicitly)
1443.El
1444.It Va WITHOUT_OPENSSL_KTLS
1445Do not include kernel TLS support in OpenSSL.
1446.Pp
1447This is a default setting on
1448arm/armv7, i386/i386, powerpc/powerpc and riscv/riscv64.
1449.It Va WITH_OPENSSL_KTLS
1450Include kernel TLS support in OpenSSL.
1451.Pp
1452This is a default setting on
1453amd64/amd64, arm64/aarch64, powerpc/powerpc64 and powerpc/powerpc64le.
1454.It Va WITHOUT_PAM
1455Do not build PAM library and modules.
1456.Bf -symbolic
1457This option is deprecated and does nothing.
1458.Ef
1459When set, these options are also in effect:
1460.Pp
1461.Bl -inset -compact
1462.It Va WITHOUT_PAM_SUPPORT
1463(unless
1464.Va WITH_PAM_SUPPORT
1465is set explicitly)
1466.El
1467.It Va WITHOUT_PAM_SUPPORT
1468Build some programs without PAM support, particularly
1469.Xr ftpd 8
1470and
1471.Xr ppp 8 .
1472.It Va WITHOUT_PF
1473Do not build PF firewall package.
1474When set, it enforces these options:
1475.Pp
1476.Bl -item -compact
1477.It
1478.Va WITHOUT_AUTHPF
1479.El
1480.It Va WITHOUT_PIE
1481Do not build dynamically linked binaries as
1482Position-Independent Executable (PIE).
1483.Pp
1484This is a default setting on
1485arm/armv7, i386/i386 and powerpc/powerpc.
1486.It Va WITH_PIE
1487Build dynamically linked binaries as
1488Position-Independent Executable (PIE).
1489.Pp
1490This is a default setting on
1491amd64/amd64, arm64/aarch64, powerpc/powerpc64, powerpc/powerpc64le and riscv/riscv64.
1492.It Va WITHOUT_PKGBOOTSTRAP
1493Do not build
1494.Xr pkg 7
1495bootstrap tool.
1496.It Va WITHOUT_PMC
1497Do not build
1498.Xr pmccontrol 8
1499and related programs.
1500.It Va WITHOUT_PPP
1501Do not build
1502.Xr ppp 8
1503and related programs.
1504.It Va WITH_PROFILE
1505Build profiled libraries for use with
1506.Xr gprof 8 .
1507This option is deprecated and may not be present in a future version of
1508.Fx .
1509.It Va WITHOUT_PTHREADS_ASSERTIONS
1510Disable debugging assertions in pthreads library.
1511.It Va WITHOUT_QUOTAS
1512Do not build
1513.Xr quota 1
1514and related programs.
1515.It Va WITHOUT_RADIUS_SUPPORT
1516Do not build radius support into various applications, like
1517.Xr pam_radius 8
1518and
1519.Xr ppp 8 .
1520.It Va WITH_RATELIMIT
1521Build the system with rate limit support.
1522.Pp
1523This makes
1524.Dv SO_MAX_PACING_RATE
1525effective in
1526.Xr getsockopt 2 ,
1527and
1528.Ar txrlimit
1529support in
1530.Xr ifconfig 8 ,
1531by proxy.
1532.It Va WITHOUT_RBOOTD
1533Do not build or install
1534.Xr rbootd 8 .
1535.It Va WITHOUT_RELRO
1536Do not apply the Relocation Read-Only (RELRO) vulnerability mitigation.
1537See also the
1538.Va BIND_NOW
1539option.
1540.It Va WITHOUT_REPRODUCIBLE_BUILD
1541Include build metadata (such as the build time, user, and host)
1542in the kernel, boot loaders, and uname output.
1543Successive builds will not be bit-for-bit identical.
1544.It Va WITHOUT_RESCUE
1545Do not build
1546.Xr rescue 8 .
1547.It Va WITH_RETPOLINE
1548Build the base system with the retpoline speculative execution
1549vulnerability mitigation for CVE-2017-5715.
1550.It Va WITHOUT_ROUTED
1551Do not build
1552.Xr routed 8
1553utility.
1554.It Va WITH_RPCBIND_WARMSTART_SUPPORT
1555Build
1556.Xr rpcbind 8
1557with warmstart support.
1558.It Va WITHOUT_SCTP_SUPPORT
1559Disable support in the kernel for the
1560.Xr sctp 4
1561Stream Control Transmission Protocol
1562loadable kernel module.
1563.It Va WITHOUT_SENDMAIL
1564Do not build
1565.Xr sendmail 8
1566and related programs.
1567.It Va WITHOUT_SERVICESDB
1568Do not install
1569.Pa /var/db/services.db .
1570.It Va WITHOUT_SETUID_LOGIN
1571Set this to disable the installation of
1572.Xr login 1
1573as a set-user-ID root program.
1574.It Va WITHOUT_SHAREDOCS
1575Do not build the
1576.Bx 4.4
1577legacy docs.
1578.It Va WITH_SORT_THREADS
1579Enable threads in
1580.Xr sort 1 .
1581.It Va WITHOUT_SOURCELESS
1582Do not build kernel modules that include sourceless code (either microcode or native code for host CPU).
1583When set, it enforces these options:
1584.Pp
1585.Bl -item -compact
1586.It
1587.Va WITHOUT_SOURCELESS_HOST
1588.It
1589.Va WITHOUT_SOURCELESS_UCODE
1590.El
1591.It Va WITHOUT_SOURCELESS_HOST
1592Do not build kernel modules that include sourceless native code for host CPU.
1593.It Va WITHOUT_SOURCELESS_UCODE
1594Do not build kernel modules that include sourceless microcode.
1595.It Va WITHOUT_SPLIT_KERNEL_DEBUG
1596Do not build standalone kernel debug files.
1597Debug data (if enabled by the kernel configuration file)
1598will be included in the kernel and modules.
1599When set, it enforces these options:
1600.Pp
1601.Bl -item -compact
1602.It
1603.Va WITHOUT_KERNEL_SYMBOLS
1604.El
1605.It Va WITHOUT_SSP
1606Do not build world with stack smashing protection.
1607.It Va WITH_STAGING
1608Enable staging of files to a stage tree.
1609This can be best thought of as auto-install to
1610.Va DESTDIR
1611with some extra meta data to ensure dependencies can be tracked.
1612Depends on
1613.Va WITH_DIRDEPS_BUILD .
1614When set, these options are also in effect:
1615.Pp
1616.Bl -inset -compact
1617.It Va WITH_STAGING_MAN
1618(unless
1619.Va WITHOUT_STAGING_MAN
1620is set explicitly)
1621.It Va WITH_STAGING_PROG
1622(unless
1623.Va WITHOUT_STAGING_PROG
1624is set explicitly)
1625.El
1626.Pp
1627This must be set in the environment, make command line, or
1628.Pa /etc/src-env.conf ,
1629not
1630.Pa /etc/src.conf .
1631.It Va WITH_STAGING_MAN
1632Enable staging of man pages to stage tree.
1633.It Va WITH_STAGING_PROG
1634Enable staging of PROGs to stage tree.
1635.It Va WITH_STALE_STAGED
1636Check staged files are not stale.
1637.It Va WITHOUT_STATS
1638Neither build nor install
1639.Lb libstats
1640and dependent binaries.
1641.It Va WITHOUT_SYSCONS
1642Do not build
1643.Xr syscons 4
1644support files such as keyboard maps, fonts, and screen output maps.
1645.It Va WITH_SYSROOT
1646Enable use of sysroot during build.
1647Depends on
1648.Va WITH_DIRDEPS_BUILD .
1649.Pp
1650This must be set in the environment, make command line, or
1651.Pa /etc/src-env.conf ,
1652not
1653.Pa /etc/src.conf .
1654.It Va WITHOUT_SYSTEM_COMPILER
1655Do not opportunistically skip building a cross-compiler during the
1656bootstrap phase of the build.
1657Normally, if the currently installed compiler matches the planned bootstrap
1658compiler type and revision, then it will not be built.
1659This does not prevent a compiler from being built for installation though,
1660only for building one for the build itself.
1661The
1662.Va WITHOUT_CLANG
1663option controls that.
1664.It Va WITHOUT_SYSTEM_LINKER
1665Do not opportunistically skip building a cross-linker during the
1666bootstrap phase of the build.
1667Normally, if the currently installed linker matches the planned bootstrap
1668linker type and revision, then it will not be built.
1669This does not prevent a linker from being built for installation though,
1670only for building one for the build itself.
1671The
1672.Va WITHOUT_LLD
1673option controls that.
1674.Pp
1675This option is only relevant when
1676.Va WITH_LLD_BOOTSTRAP
1677is set.
1678.It Va WITHOUT_TALK
1679Do not build or install
1680.Xr talk 1
1681and
1682.Xr talkd 8 .
1683.It Va WITHOUT_TCP_WRAPPERS
1684Do not build or install
1685.Xr tcpd 8 ,
1686and related utilities.
1687.It Va WITHOUT_TCSH
1688Do not build and install
1689.Pa /bin/csh
1690(which is
1691.Xr tcsh 1 ) .
1692.It Va WITHOUT_TELNET
1693Do not build
1694.Xr telnet 1
1695and related programs.
1696.It Va WITHOUT_TESTS
1697Do not build nor install the
1698.Fx
1699Test Suite in
1700.Pa /usr/tests/ .
1701See
1702.Xr tests 7
1703for more details.
1704This also disables the build of all test-related dependencies, including ATF.
1705When set, it enforces these options:
1706.Pp
1707.Bl -item -compact
1708.It
1709.Va WITHOUT_DTRACE_TESTS
1710.It
1711.Va WITHOUT_ZFS_TESTS
1712.El
1713.Pp
1714When set, these options are also in effect:
1715.Pp
1716.Bl -inset -compact
1717.It Va WITHOUT_GOOGLETEST
1718(unless
1719.Va WITH_GOOGLETEST
1720is set explicitly)
1721.It Va WITHOUT_TESTS_SUPPORT
1722(unless
1723.Va WITH_TESTS_SUPPORT
1724is set explicitly)
1725.El
1726.It Va WITHOUT_TESTS_SUPPORT
1727Disable the build of all test-related dependencies, including ATF.
1728When set, it enforces these options:
1729.Pp
1730.Bl -item -compact
1731.It
1732.Va WITHOUT_GOOGLETEST
1733.El
1734.It Va WITHOUT_TEXTPROC
1735Do not build
1736programs used for text processing.
1737.It Va WITHOUT_TFTP
1738Do not build or install
1739.Xr tftp 1
1740and
1741.Xr tftpd 8 .
1742.It Va WITHOUT_TOOLCHAIN
1743Do not install
1744programs used for program development,
1745compilers, debuggers etc.
1746When set, it enforces these options:
1747.Pp
1748.Bl -item -compact
1749.It
1750.Va WITHOUT_CLANG
1751.It
1752.Va WITHOUT_CLANG_EXTRAS
1753.It
1754.Va WITHOUT_CLANG_FORMAT
1755.It
1756.Va WITHOUT_CLANG_FULL
1757.It
1758.Va WITHOUT_LLD
1759.It
1760.Va WITHOUT_LLDB
1761.It
1762.Va WITHOUT_LLVM_COV
1763.El
1764.It Va WITH_UBSAN
1765Build the base system with Undefined Behavior Sanitizer (UBSan) to detect
1766various kinds of undefined behavior at runtime.
1767Requires that Clang be used as the base system compiler
1768and that the runtime support library is available
1769.It Va WITHOUT_UNBOUND
1770Do not build
1771.Xr unbound 8
1772and related programs.
1773.It Va WITHOUT_UNIFIED_OBJDIR
1774Use the historical object directory format for
1775.Xr build 7
1776targets.
1777For native-builds and builds done directly in sub-directories the format of
1778.Pa ${MAKEOBJDIRPREFIX}/${.CURDIR}
1779is used,
1780while for cross-builds
1781.Pa ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}/${.CURDIR}
1782is used.
1783.Pp
1784This option is transitional and will be removed in a future version of
1785.Fx ,
1786at which time
1787.Va WITH_UNIFIED_OBJDIR
1788will be enabled permanently.
1789.Pp
1790This must be set in the environment, make command line, or
1791.Pa /etc/src-env.conf ,
1792not
1793.Pa /etc/src.conf .
1794.It Va WITHOUT_USB
1795Do not build USB-related programs and libraries.
1796.It Va WITHOUT_USB_GADGET_EXAMPLES
1797Do not build USB gadget kernel modules.
1798.It Va WITHOUT_UTMPX
1799Do not build user accounting tools such as
1800.Xr last 1 ,
1801.Xr users 1 ,
1802.Xr who 1 ,
1803.Xr ac 8 ,
1804.Xr lastlogin 8
1805and
1806.Xr utx 8 .
1807.It Va WITH_VERIEXEC
1808Enable building
1809.Xr veriexec 8
1810which loads the contents of verified manifests into the kernel
1811for use by
1812.Xr mac_veriexec 4
1813.Pp
1814Depends on
1815.Va WITH_BEARSSL .
1816.It Va WITHOUT_VI
1817Do not build and install vi, view, ex and related programs.
1818.It Va WITHOUT_VT
1819Do not build
1820.Xr vt 4
1821support files (fonts and keymaps).
1822.It Va WITHOUT_WARNS
1823Set this to not add warning flags to the compiler invocations.
1824Useful as a temporary workaround when code enters the tree
1825which triggers warnings in environments that differ from the
1826original developer.
1827.It Va WITHOUT_WERROR
1828Set this to not treat compiler warnings as errors.
1829Useful as a temporary workaround when working on fixing compiler warnings.
1830When set, warnings are still printed in the build log but do not fail the build.
1831.It Va WITHOUT_WIRELESS
1832Do not build programs used for 802.11 wireless networks; especially
1833.Xr wpa_supplicant 8
1834and
1835.Xr hostapd 8 .
1836When set, these options are also in effect:
1837.Pp
1838.Bl -inset -compact
1839.It Va WITHOUT_WIRELESS_SUPPORT
1840(unless
1841.Va WITH_WIRELESS_SUPPORT
1842is set explicitly)
1843.El
1844.It Va WITHOUT_WIRELESS_SUPPORT
1845Build libraries, programs, and kernel modules without
1846802.11 wireless support.
1847.It Va WITHOUT_WPA_SUPPLICANT_EAPOL
1848Build
1849.Xr wpa_supplicant 8
1850without support for the IEEE 802.1X protocol and without
1851support for EAP-PEAP, EAP-TLS, EAP-LEAP, and EAP-TTLS
1852protocols (usable only via 802.1X).
1853.It Va WITHOUT_ZFS
1854Do not build the ZFS file system kernel module, libraries such as
1855.Xr libbe 3 ,
1856and user commands such as
1857.Xr zpool 8
1858or
1859.Xr zfs 8 .
1860Also disable ZFS support in utilities and libraries which implement
1861ZFS-specific functionality.
1862When set, it enforces these options:
1863.Pp
1864.Bl -item -compact
1865.It
1866.Va WITHOUT_ZFS_TESTS
1867.El
1868.It Va WITHOUT_ZFS_TESTS
1869Do not build and install the legacy ZFS test suite.
1870.It Va WITHOUT_ZONEINFO
1871Do not build the timezone database.
1872When set, it enforces these options:
1873.Pp
1874.Bl -item -compact
1875.It
1876.Va WITHOUT_ZONEINFO_LEAPSECONDS_SUPPORT
1877.El
1878.It Va WITH_ZONEINFO_LEAPSECONDS_SUPPORT
1879Build leapsecond information in to the timezone database.
1880.El
1881.Sh FILES
1882.Bl -tag -compact -width Pa
1883.It Pa /etc/src.conf
1884.It Pa /etc/src-env.conf
1885.It Pa /usr/share/mk/bsd.own.mk
1886.El
1887.Sh SEE ALSO
1888.Xr make 1 ,
1889.Xr make.conf 5 ,
1890.Xr build 7 ,
1891.Xr ports 7
1892.Sh HISTORY
1893The
1894.Nm
1895file appeared in
1896.Fx 7.0 .
1897.Sh AUTHORS
1898This manual page was autogenerated by
1899.An tools/build/options/makeman .
1900