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