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