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