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