15e84b765SWarner Losh# $FreeBSD$ 25e84b765SWarner Losh# 35e84b765SWarner Losh# Option file for FreeBSD /usr/src builds. 45e84b765SWarner Losh# 55e84b765SWarner Losh# Users define WITH_FOO and WITHOUT_FOO on the command line or in /etc/src.conf 65e84b765SWarner Losh# and /etc/make.conf files. These translate in the build system to MK_FOO={yes,no} 75e84b765SWarner Losh# with sensible (usually) defaults. 85e84b765SWarner Losh# 95e84b765SWarner Losh# Makefiles must include bsd.opts.mk after defining specific MK_FOO options that 105e84b765SWarner Losh# are applicable for that Makefile (typically there are none, but sometimes there 115e84b765SWarner Losh# are exceptions). Recursive makes usually add MK_FOO=no for options that they wish 125e84b765SWarner Losh# to omit from that make. 135e84b765SWarner Losh# 141fc86460SWarner Losh# Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO 155e84b765SWarner Losh# variable. 165e84b765SWarner Losh# 17c6063d0dSWarner Losh# Makefiles may also assume that this file is included by src.opts.mk should it 185e84b765SWarner Losh# need variables defined there prior to the end of the Makefile where 195e84b765SWarner Losh# bsd.{subdir,lib.bin}.mk is traditionally included. 205e84b765SWarner Losh# 215e84b765SWarner Losh# The old-style YES_FOO and NO_FOO are being phased out. No new instances of them 225e84b765SWarner Losh# should be added. Old instances should be removed since they were just to 235e84b765SWarner Losh# bridge the gap between FreeBSD 4 and FreeBSD 5. 245e84b765SWarner Losh# 255e84b765SWarner Losh# Makefiles should never test WITH_FOO or WITHOUT_FOO directly (although an 265e84b765SWarner Losh# exception is made for _WITHOUT_SRCONF which turns off this mechanism 2722cac754SWarner Losh# completely inside bsd.*.mk files). 285e84b765SWarner Losh# 295e84b765SWarner Losh 305e84b765SWarner Losh.if !target(__<src.opts.mk>__) 315e84b765SWarner Losh__<src.opts.mk>__: 325e84b765SWarner Losh 33f9798cc7SWarner Losh.include <bsd.own.mk> 34f9798cc7SWarner Losh 355e84b765SWarner Losh# 365e84b765SWarner Losh# Define MK_* variables (which are either "yes" or "no") for users 375e84b765SWarner Losh# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the 385e84b765SWarner Losh# make(1) environment. 395e84b765SWarner Losh# These should be tested with `== "no"' or `!= "no"' in makefiles. 405e84b765SWarner Losh# The NO_* variables should only be set by makefiles for variables 415e84b765SWarner Losh# that haven't been converted over. 425e84b765SWarner Losh# 435e84b765SWarner Losh 44c1593b9eSWarner Losh# These options are used by the src builds. Those listed in 45c1593b9eSWarner Losh# __DEFAULT_YES_OPTIONS default to 'yes' and will build unless turned 46c1593b9eSWarner Losh# off. __DEFAULT_NO_OPTIONS will default to 'no' and won't build 47c1593b9eSWarner Losh# unless turned on. Any options listed in 'BROKEN_OPTIONS' will be 48c1593b9eSWarner Losh# hard-wired to 'no'. "Broken" here means not working or 49c1593b9eSWarner Losh# not-appropriate and/or not supported. It doesn't imply something is 50c1593b9eSWarner Losh# wrong with the code. There's not a single good word for this, so 51c1593b9eSWarner Losh# BROKEN was selected as the least imperfect one considered at the 52c1593b9eSWarner Losh# time. Options are added to BROKEN_OPTIONS list on a per-arch basis. 53c1593b9eSWarner Losh# At this time, there's no provision for mutually incompatible options. 545e84b765SWarner Losh 555e84b765SWarner Losh__DEFAULT_YES_OPTIONS = \ 565e84b765SWarner Losh ACCT \ 575e84b765SWarner Losh ACPI \ 585e84b765SWarner Losh APM \ 595e84b765SWarner Losh AT \ 605e84b765SWarner Losh ATM \ 615e84b765SWarner Losh AUDIT \ 625e84b765SWarner Losh AUTHPF \ 63b3590423SEnji Cooper AUTOFS \ 6402629e46SEnji Cooper BHYVE \ 6595856e14SKurt Lidl BLACKLIST \ 665e84b765SWarner Losh BLUETOOTH \ 675e84b765SWarner Losh BOOT \ 6811981695SEnji Cooper BOOTPARAMD \ 6911981695SEnji Cooper BOOTPD \ 705e84b765SWarner Losh BSD_CPIO \ 71e45b569cSEnji Cooper BSDINSTALL \ 725e84b765SWarner Losh BSNMP \ 735e84b765SWarner Losh BZIP2 \ 745e84b765SWarner Losh CALENDAR \ 755e84b765SWarner Losh CAPSICUM \ 76f27f39dbSKyle Evans CAROOT \ 775e84b765SWarner Losh CASPER \ 7818cc3172SEnji Cooper CCD \ 795e84b765SWarner Losh CDDL \ 8083a08b7cSEd Maste CLANG \ 814a4c9a0fSAlex Richardson CLANG_BOOTSTRAP \ 824a4c9a0fSAlex Richardson CLANG_IS_CC \ 8375766799SEd Maste CLEAN \ 845e84b765SWarner Losh CPP \ 855e84b765SWarner Losh CROSS_COMPILER \ 865e84b765SWarner Losh CRYPT \ 8736716419SHans Petter Selasky CUSE \ 885e84b765SWarner Losh CXX \ 89983a395dSWarner Losh CXGBETOOL \ 90f987297fSEd Maste DIALOG \ 915e84b765SWarner Losh DICT \ 925e84b765SWarner Losh DMAGENT \ 935e84b765SWarner Losh DYNAMICROOT \ 9479a86dafSEnji Cooper EE \ 95d49a5dddSWarner Losh EFI \ 9608474898SEd Maste ELFTOOLCHAIN_BOOTSTRAP \ 975e84b765SWarner Losh EXAMPLES \ 985e84b765SWarner Losh FDT \ 99c7b6816fSEnji Cooper FILE \ 10011981695SEnji Cooper FINGER \ 1015e84b765SWarner Losh FLOPPY \ 1025e84b765SWarner Losh FORTH \ 1035e84b765SWarner Losh FP_LIBC \ 1045e84b765SWarner Losh FREEBSD_UPDATE \ 10511981695SEnji Cooper FTP \ 1065e84b765SWarner Losh GAMES \ 107252884aeSStefan Eßer GH_BC \ 10894ff3d03SEd Maste GNU_DIFF \ 109d679c719SKyle Evans GOOGLETEST \ 1105e84b765SWarner Losh GPIO \ 1114e395054SEnji Cooper HAST \ 1125e84b765SWarner Losh HTML \ 113983a395dSWarner Losh HYPERV \ 1145e84b765SWarner Losh ICONV \ 1155e84b765SWarner Losh INET \ 1165e84b765SWarner Losh INET6 \ 11711981695SEnji Cooper INETD \ 1185e84b765SWarner Losh IPFILTER \ 1195e84b765SWarner Losh IPFW \ 120b29d6977SEnji Cooper ISCSI \ 1215e84b765SWarner Losh JAIL \ 1225e84b765SWarner Losh KDUMP \ 1235e84b765SWarner Losh KVM \ 1245e84b765SWarner Losh LDNS \ 1255e84b765SWarner Losh LDNS_UTILS \ 1265e84b765SWarner Losh LEGACY_CONSOLE \ 12783a08b7cSEd Maste LLD \ 128a04ec978SBrandon Bergren LLD_BOOTSTRAP \ 129a04ec978SBrandon Bergren LLD_IS_LD \ 130147d7b56SKyle Evans LLVM_ASSERTIONS \ 1311b49115aSEd Maste LLVM_COV \ 1329fa94e1cSDimitry Andric LLVM_CXXFILT \ 13354095bf4SKyle Evans LOADER_GELI \ 1349d45c24cSWarner Losh LOADER_LUA \ 13554095bf4SKyle Evans LOADER_OFW \ 13654095bf4SKyle Evans LOADER_UBOOT \ 1375e84b765SWarner Losh LOCALES \ 1385e84b765SWarner Losh LOCATE \ 1395e84b765SWarner Losh LPR \ 1405e84b765SWarner Losh LS_COLORS \ 1415e84b765SWarner Losh MAIL \ 1425e84b765SWarner Losh MAILWRAPPER \ 1435e84b765SWarner Losh MAKE \ 144983a395dSWarner Losh MLX5TOOL \ 1455e84b765SWarner Losh NDIS \ 1465e84b765SWarner Losh NETCAT \ 1475e84b765SWarner Losh NETGRAPH \ 1485e84b765SWarner Losh NLS_CATALOGS \ 1495e84b765SWarner Losh NS_CACHING \ 1505e84b765SWarner Losh NTP \ 151983a395dSWarner Losh NVME \ 152be3bff32SKonstantin Belousov OFED \ 1535e84b765SWarner Losh OPENSSL \ 1545e84b765SWarner Losh PAM \ 1555e84b765SWarner Losh PF \ 1565e84b765SWarner Losh PKGBOOTSTRAP \ 1575e84b765SWarner Losh PMC \ 1585e84b765SWarner Losh PORTSNAP \ 1595e84b765SWarner Losh PPP \ 1605e84b765SWarner Losh QUOTAS \ 16131a741f4SEnji Cooper RADIUS_SUPPORT \ 16211981695SEnji Cooper RBOOTD \ 1635e84b765SWarner Losh RESCUE \ 1645e84b765SWarner Losh ROUTED \ 1655e84b765SWarner Losh SENDMAIL \ 1666f077571SSean Bruno SERVICESDB \ 1675e84b765SWarner Losh SETUID_LOGIN \ 1686ab18ea6SDimitry Andric SHARED_TOOLCHAIN \ 1695e84b765SWarner Losh SHAREDOCS \ 1705e84b765SWarner Losh SOURCELESS \ 1715e84b765SWarner Losh SOURCELESS_HOST \ 1725e84b765SWarner Losh SOURCELESS_UCODE \ 1731a13f2e6SEdward Tomasz Napierala STATS \ 1745e84b765SWarner Losh SYSCONS \ 175bf16c2e9SBryan Drewery SYSTEM_COMPILER \ 176a7d84af8SBryan Drewery SYSTEM_LINKER \ 1773f802165SEnji Cooper TALK \ 17811981695SEnji Cooper TCP_WRAPPERS \ 1795e84b765SWarner Losh TCSH \ 1805e84b765SWarner Losh TELNET \ 1815e84b765SWarner Losh TEXTPROC \ 18211981695SEnji Cooper TFTP \ 1835e84b765SWarner Losh UNBOUND \ 1845e84b765SWarner Losh USB \ 1855e84b765SWarner Losh UTMPX \ 1865e84b765SWarner Losh VI \ 187824a9093SEd Maste VT \ 1885e84b765SWarner Losh WIRELESS \ 1895e84b765SWarner Losh WPA_SUPPLICANT_EAPOL \ 1905e84b765SWarner Losh ZFS \ 191fbeb31a2SMatt Macy LOADER_ZFS \ 1925e84b765SWarner Losh ZONEINFO 1935e84b765SWarner Losh 1945e84b765SWarner Losh__DEFAULT_NO_OPTIONS = \ 195a92958dfSSimon J. Gerraty BEARSSL \ 196483d953aSJohn Baldwin BHYVE_SNAPSHOT \ 1975e84b765SWarner Losh CLANG_EXTRAS \ 1980a9ab9f5SConrad Meyer CLANG_FORMAT \ 199*ddedf2a1SEdward Tomasz Napierala DETECT_TZ_CHANGES \ 200d912066cSMark Johnston DTRACE_TESTS \ 20143f75d57SBjoern A. Zeeb EXPERIMENTAL \ 2025e84b765SWarner Losh HESIOD \ 203c42ade60SWarner Losh LIBSOFT \ 204a179cd91SWarner Losh LOADER_FIREWIRE \ 205f871c5d9SWarner Losh LOADER_VERBOSE \ 206b0fefb25SMarcin Wojtas LOADER_VERIEXEC_PASS_MANIFEST \ 207021385abSAlex Richardson LLVM_BINUTILS \ 2087d4374f6SDimitry Andric MALLOC_PRODUCTION \ 209abbe7d5aSKonstantin Belousov OFED_EXTRA \ 2105e84b765SWarner Losh OPENLDAP \ 211a58383d2SJohn Baldwin REPRODUCIBLE_BUILD \ 212609b7b26SEnji Cooper RPCBIND_WARMSTART_SUPPORT \ 2135e84b765SWarner Losh SORT_THREADS \ 214c5cba060SEnji Cooper ZONEINFO_LEAPSECONDS_SUPPORT \ 2156120aabdSBryan Drewery 216100fafebSBryan Drewery# LEFT/RIGHT. Left options which default to "yes" unless their corresponding 217100fafebSBryan Drewery# RIGHT option is disabled. 218100fafebSBryan Drewery__DEFAULT_DEPENDENT_OPTIONS= \ 219100fafebSBryan Drewery CLANG_FULL/CLANG \ 220e7e22476SAlex Richardson LLVM_TARGET_ALL/CLANG \ 221a92958dfSSimon J. Gerraty LOADER_VERIEXEC/BEARSSL \ 22213ea0450SMarcin Wojtas LOADER_EFI_SECUREBOOT/LOADER_VERIEXEC \ 223afc571b1SSimon J. Gerraty LOADER_VERIEXEC_VECTX/LOADER_VERIEXEC \ 224a92958dfSSimon J. Gerraty VERIEXEC/BEARSSL \ 225100fafebSBryan Drewery 226100fafebSBryan Drewery# MK_*_SUPPORT options which default to "yes" unless their corresponding 227100fafebSBryan Drewery# MK_* variable is set to "no". 228100fafebSBryan Drewery# 229100fafebSBryan Drewery.for var in \ 230100fafebSBryan Drewery BLACKLIST \ 231100fafebSBryan Drewery BZIP2 \ 232100fafebSBryan Drewery INET \ 233100fafebSBryan Drewery INET6 \ 234100fafebSBryan Drewery KERBEROS \ 235100fafebSBryan Drewery KVM \ 236100fafebSBryan Drewery NETGRAPH \ 237100fafebSBryan Drewery PAM \ 238100fafebSBryan Drewery TESTS \ 239100fafebSBryan Drewery WIRELESS 240100fafebSBryan Drewery__DEFAULT_DEPENDENT_OPTIONS+= ${var}_SUPPORT/${var} 241100fafebSBryan Drewery.endfor 2425e84b765SWarner Losh 2435e84b765SWarner Losh# 2445e84b765SWarner Losh# Default behaviour of some options depends on the architecture. Unfortunately 2455e84b765SWarner Losh# this means that we have to test TARGET_ARCH (the buildworld case) as well 2465e84b765SWarner Losh# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not 2475e84b765SWarner Losh# used at all in bsd.*.mk, but we have to make an exception here if we want 2485e84b765SWarner Losh# to allow defaults for some things like clang to vary by target architecture. 2495e84b765SWarner Losh# Additional, per-target behavior should be rarely added only after much 2505e84b765SWarner Losh# gnashing of teeth and grinding of gears. 2515e84b765SWarner Losh# 2525e84b765SWarner Losh.if defined(TARGET_ARCH) 2535e84b765SWarner Losh__T=${TARGET_ARCH} 2545e84b765SWarner Losh.else 2555e84b765SWarner Losh__T=${MACHINE_ARCH} 2565e84b765SWarner Losh.endif 2570104753bSDimitry Andric 258631e709fSBryan Drewery# All supported backends for LLVM_TARGET_XXX 259631e709fSBryan Drewery__LLVM_TARGETS= \ 260631e709fSBryan Drewery aarch64 \ 261631e709fSBryan Drewery arm \ 262631e709fSBryan Drewery mips \ 263631e709fSBryan Drewery powerpc \ 264de9950e8SJohn Baldwin riscv \ 265631e709fSBryan Drewery x86 266980bae69SWarner Losh__LLVM_TARGET_FILT= C/(amd64|i386)/x86/:C/powerpc.*/powerpc/:C/armv[67]/arm/:C/riscv.*/riscv/:C/mips.*/mips/ 2674e2a4490SBryan Drewery.for __llt in ${__LLVM_TARGETS} 26896aaefdfSBryan Drewery# Default enable the given TARGET's LLVM_TARGET support 269980bae69SWarner Losh.if ${__T:${__LLVM_TARGET_FILT}} == ${__llt} 27096aaefdfSBryan Drewery__DEFAULT_YES_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu} 2714e2a4490SBryan Drewery# aarch64 needs arm for -m32 support. 272980bae69SWarner Losh.elif ${__T} == "aarch64" && ${__llt:Marm*} != "" 2734e2a4490SBryan Drewery__DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_ARM/LLVM_TARGET_AARCH64 27496aaefdfSBryan Drewery# Default the rest of the LLVM_TARGETs to the value of MK_LLVM_TARGET_ALL. 275631e709fSBryan Drewery.else 2764e2a4490SBryan Drewery__DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/LLVM_TARGET_ALL 277631e709fSBryan Drewery.endif 278631e709fSBryan Drewery.endfor 279631e709fSBryan Drewery 28089edb881SDimitry Andric__DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF 28189edb881SDimitry Andric 2820104753bSDimitry Andric.include <bsd.compiler.mk> 2838758abd5SBryan Drewery 2847ddf05edSRuslan Bukin.if ${__T:Mriscv*} != "" 2857ddf05edSRuslan BukinBROKEN_OPTIONS+=OFED 2867ddf05edSRuslan Bukin.endif 287056dd75bSEd Maste.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" 288dfccd92cSEd Maste__DEFAULT_YES_OPTIONS+=LLDB 289d0ba16f7SEd Maste.else 290dfccd92cSEd Maste__DEFAULT_NO_OPTIONS+=LLDB 291d0ba16f7SEd Maste.endif 292a4330302SBrooks Davis# LIB32 is supported on amd64, mips64, and powerpc64 29355c2583aSBrooks Davis.if (${__T} == "amd64" || ${__T:Mmips64*} || ${__T} == "powerpc64") 294a4330302SBrooks Davis__DEFAULT_YES_OPTIONS+=LIB32 295a4330302SBrooks Davis.else 296a4330302SBrooks DavisBROKEN_OPTIONS+=LIB32 297a4330302SBrooks Davis.endif 2980c095a65SEnji Cooper# Only doing soft float API stuff on armv6 and armv7 2990b972ac9SWarner Losh.if ${__T} != "armv6" && ${__T} != "armv7" 300c42ade60SWarner LoshBROKEN_OPTIONS+=LIBSOFT 301c42ade60SWarner Losh.endif 3023d79fdacSWarner Losh.if ${__T:Mmips*} 3036794d195SKyle Evans# GOOGLETEST cannot currently be compiled on mips due to external circumstances. 3046794d195SKyle Evans# Notably, the freebsd-gcc port isn't linking in libgcc so we end up trying ot 3056794d195SKyle Evans# link to a hidden symbol. LLVM would successfully link this in, but some of 3066794d195SKyle Evans# the mips variants are broken under LLVM until LLVM 10. GOOGLETEST should be 3076794d195SKyle Evans# marked no longer broken with the switch to LLVM. 3086794d195SKyle EvansBROKEN_OPTIONS+=GOOGLETEST SSP 3095bec6d55SRuslan Bukin.endif 3102192efc0SMitchell Horne# EFI doesn't exist on mips or powerpc. 3112192efc0SMitchell Horne.if ${__T:Mmips*} || ${__T:Mpowerpc*} 312f86dd996SWarner LoshBROKEN_OPTIONS+=EFI 313d49a5dddSWarner Losh.endif 31447e9f42eSWarner Losh# OFW is only for powerpc, exclude others 31547e9f42eSWarner Losh.if ${__T:Mpowerpc*} == "" 316f86dd996SWarner LoshBROKEN_OPTIONS+=LOADER_OFW 317f86dd996SWarner Losh.endif 318f86dd996SWarner Losh# UBOOT is only for arm, mips and powerpc, exclude others 319f86dd996SWarner Losh.if ${__T:Marm*} == "" && ${__T:Mmips*} == "" && ${__T:Mpowerpc*} == "" 320f86dd996SWarner LoshBROKEN_OPTIONS+=LOADER_UBOOT 321f86dd996SWarner Losh.endif 32247e9f42eSWarner Losh# GELI and Lua in loader currently cause boot failures on powerpc. 32349f1151fSNathan Whitehorn# Further debugging is required -- probably they are just broken on big 32449f1151fSNathan Whitehorn# endian systems generically (they jump to null pointers or try to read 32549f1151fSNathan Whitehorn# crazy high addresses, which is typical of endianness problems). 32647e9f42eSWarner Losh.if ${__T:Mpowerpc*} 327f54d801aSKurt LidlBROKEN_OPTIONS+=LOADER_GELI LOADER_LUA 328f54d801aSKurt Lidl.endif 329f86dd996SWarner Losh 330e6b7809cSAllan Jude# Kernel TLS is enabled by default on amd64 and aarch64 331e6b7809cSAllan Jude.if ${__T} == "aarch64" || ${__T} == "amd64" 332aa906e2aSJohn Baldwin__DEFAULT_YES_OPTIONS+=OPENSSL_KTLS 333aa906e2aSJohn Baldwin.else 334aa906e2aSJohn Baldwin__DEFAULT_NO_OPTIONS+=OPENSSL_KTLS 335aa906e2aSJohn Baldwin.endif 336aa906e2aSJohn Baldwin 3372427dc7dSEd Maste.if ${__T:Mmips64*} 3382427dc7dSEd Maste# profiling won't work on MIPS64 because there is only assembly for o32 3392427dc7dSEd MasteBROKEN_OPTIONS+=PROFILE 3402427dc7dSEd Maste.endif 341983a395dSWarner Losh.if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && \ 34247e9f42eSWarner Losh ${__T} != "powerpc64" 343983a395dSWarner LoshBROKEN_OPTIONS+=CXGBETOOL 344983a395dSWarner LoshBROKEN_OPTIONS+=MLX5TOOL 34554912308SNavdeep Parhar.endif 34654912308SNavdeep Parhar 3475b87c94aSBrooks Davis# HyperV is currently x86-only 348983a395dSWarner Losh.if ${__T} != "amd64" && ${__T} != "i386" 349983a395dSWarner LoshBROKEN_OPTIONS+=HYPERV 3505b87c94aSBrooks Davis.endif 3515b87c94aSBrooks Davis 352b75abea4SBrandon Bergren# NVME is only aarch64, x86 and powerpc64* 3536b3555c3SDimitry Andric.if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && \ 354b75abea4SBrandon Bergren ${__T:Mpowerpc64*} == "" 355983a395dSWarner LoshBROKEN_OPTIONS+=NVME 356f0f8a1afSWarner Losh.endif 357f0f8a1afSWarner Losh 3582a5220e1SDimitry Andric.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ 359aa033e0bSPiotr Kubaj ${__T:Mpowerpc64*} != "" || ${__T:Mriscv64*} != "" 360b0840a28SDimitry Andric__DEFAULT_YES_OPTIONS+=OPENMP 361b0840a28SDimitry Andric.else 362b0840a28SDimitry Andric__DEFAULT_NO_OPTIONS+=OPENMP 363b0840a28SDimitry Andric.endif 364b0840a28SDimitry Andric 3655e84b765SWarner Losh.include <bsd.mkopt.mk> 3665e84b765SWarner Losh 3675e84b765SWarner Losh# 3685e84b765SWarner Losh# Force some options off if their dependencies are off. 3695e84b765SWarner Losh# Order is somewhat important. 3705e84b765SWarner Losh# 37158551dc6SBaptiste Daroussin.if ${MK_CAPSICUM} == "no" 37258551dc6SBaptiste DaroussinMK_CASPER:= no 37358551dc6SBaptiste Daroussin.endif 37458551dc6SBaptiste Daroussin 3755e84b765SWarner Losh.if ${MK_SOURCELESS} == "no" 3765e84b765SWarner LoshMK_SOURCELESS_HOST:= no 3775e84b765SWarner LoshMK_SOURCELESS_UCODE:= no 3785e84b765SWarner Losh.endif 3795e84b765SWarner Losh 3805e84b765SWarner Losh.if ${MK_CDDL} == "no" 3815e84b765SWarner LoshMK_ZFS:= no 382fbeb31a2SMatt MacyMK_LOADER_ZFS:= no 3835e84b765SWarner LoshMK_CTF:= no 3845e84b765SWarner Losh.endif 3855e84b765SWarner Losh 3865e84b765SWarner Losh.if ${MK_CRYPT} == "no" 3875e84b765SWarner LoshMK_OPENSSL:= no 3885e84b765SWarner LoshMK_OPENSSH:= no 3895e84b765SWarner LoshMK_KERBEROS:= no 3900ce9d0afSEd MasteMK_KERBEROS_SUPPORT:= no 3915e84b765SWarner Losh.endif 3925e84b765SWarner Losh 3935e84b765SWarner Losh.if ${MK_CXX} == "no" 3945e84b765SWarner LoshMK_CLANG:= no 3959ed13baaSEd MasteMK_GOOGLETEST:= no 3968a9745b5SEd MasteMK_TESTS:= no 3975e84b765SWarner Losh.endif 3985e84b765SWarner Losh 399f987297fSEd Maste.if ${MK_DIALOG} == "no" 400f987297fSEd MasteMK_BSDINSTALL:= no 401f987297fSEd Maste.endif 402f987297fSEd Maste 4035e84b765SWarner Losh.if ${MK_MAIL} == "no" 4045e84b765SWarner LoshMK_MAILWRAPPER:= no 4055e84b765SWarner LoshMK_SENDMAIL:= no 4065e84b765SWarner LoshMK_DMAGENT:= no 4075e84b765SWarner Losh.endif 4085e84b765SWarner Losh 4095e84b765SWarner Losh.if ${MK_NETGRAPH} == "no" 4105e84b765SWarner LoshMK_ATM:= no 4115e84b765SWarner LoshMK_BLUETOOTH:= no 4125e84b765SWarner Losh.endif 4135e84b765SWarner Losh 414edb58145SEnji Cooper.if ${MK_NLS} == "no" 415edb58145SEnji CooperMK_NLS_CATALOGS:= no 416edb58145SEnji Cooper.endif 417edb58145SEnji Cooper 4185e84b765SWarner Losh.if ${MK_OPENSSL} == "no" 419df502accSEd MasteMK_DMAGENT:= no 4205e84b765SWarner LoshMK_OPENSSH:= no 4215e84b765SWarner LoshMK_KERBEROS:= no 4220ce9d0afSEd MasteMK_KERBEROS_SUPPORT:= no 42337516d3bSEd MasteMK_LDNS:= no 4245ffef74bSEd MasteMK_PKGBOOTSTRAP:= no 425e5cc1c47SMitchell HorneMK_ZFS:= no 42637516d3bSEd Maste.endif 42737516d3bSEd Maste 42837516d3bSEd Maste.if ${MK_LDNS} == "no" 42937516d3bSEd MasteMK_LDNS_UTILS:= no 43037516d3bSEd MasteMK_UNBOUND:= no 4315e84b765SWarner Losh.endif 4325e84b765SWarner Losh 4335e84b765SWarner Losh.if ${MK_PF} == "no" 4345e84b765SWarner LoshMK_AUTHPF:= no 4355e84b765SWarner Losh.endif 4365e84b765SWarner Losh 437abbe7d5aSKonstantin Belousov.if ${MK_OFED} == "no" 438abbe7d5aSKonstantin BelousovMK_OFED_EXTRA:= no 439abbe7d5aSKonstantin Belousov.endif 440abbe7d5aSKonstantin Belousov 441d912066cSMark Johnston.if ${MK_TESTS} == "no" 442d912066cSMark JohnstonMK_DTRACE_TESTS:= no 44306beea0eSEnji Cooper.endif 44406beea0eSEnji Cooper 44506beea0eSEnji Cooper.if ${MK_TESTS_SUPPORT} == "no" 44643e25f47SEnji CooperMK_GOOGLETEST:= no 447d912066cSMark Johnston.endif 448d912066cSMark Johnston 449c5cba060SEnji Cooper.if ${MK_ZONEINFO} == "no" 450c5cba060SEnji CooperMK_ZONEINFO_LEAPSECONDS_SUPPORT:= no 451c5cba060SEnji Cooper.endif 452c5cba060SEnji Cooper 4535e84b765SWarner Losh.if ${MK_CROSS_COMPILER} == "no" 4545e84b765SWarner LoshMK_CLANG_BOOTSTRAP:= no 45508474898SEd MasteMK_ELFTOOLCHAIN_BOOTSTRAP:= no 45689257265SEd MasteMK_LLD_BOOTSTRAP:= no 4575e84b765SWarner Losh.endif 4585e84b765SWarner Losh 4595e84b765SWarner Losh.if ${MK_TOOLCHAIN} == "no" 4605e84b765SWarner LoshMK_CLANG:= no 461590461a4SWarner LoshMK_INCLUDES:= no 462e5928414SEd MasteMK_LLD:= no 46311e49977SBryan DreweryMK_LLDB:= no 464021385abSAlex RichardsonMK_LLVM_BINUTILS:= no 4655e84b765SWarner Losh.endif 4665e84b765SWarner Losh 4675e84b765SWarner Losh.if ${MK_CLANG} == "no" 4685e84b765SWarner LoshMK_CLANG_EXTRAS:= no 4690a9ab9f5SConrad MeyerMK_CLANG_FORMAT:= no 4705e84b765SWarner LoshMK_CLANG_FULL:= no 4711b49115aSEd MasteMK_LLVM_COV:= no 4725e84b765SWarner Losh.endif 4735e84b765SWarner Losh 47424f58618SAlex Richardson.if ${MK_ASAN} == "yes" 47524f58618SAlex Richardson# In order to get sensible backtraces from ASAN we have to install 47624f58618SAlex Richardson# llvm-symbolizer as /usr/bin/addr2line instead of the elftoolchain version. 47724f58618SAlex RichardsonMK_LLVM_BINUTILS:= yes 47824f58618SAlex Richardson.endif 47924f58618SAlex Richardson 480021385abSAlex Richardson.if ${MK_LLVM_BINUTILS} == "yes" 481021385abSAlex Richardson# MK_LLVM_CXXFILT is a subset of MK_LLVM_BINUTILS and should therefore be 482021385abSAlex Richardson# enabled if MK_LLVM_BINUTILS is set. 483021385abSAlex RichardsonMK_LLVM_CXXFILT:= yes 484021385abSAlex Richardson.endif 485021385abSAlex Richardson 486b0fefb25SMarcin Wojtas.if ${MK_LOADER_VERIEXEC} == "no" 487b0fefb25SMarcin WojtasMK_LOADER_VERIEXEC_PASS_MANIFEST := no 488b0fefb25SMarcin Wojtas.endif 489b0fefb25SMarcin Wojtas 4905e84b765SWarner Losh# 4914301886dSEnji Cooper# MK_* options whose default value depends on another option. 4924301886dSEnji Cooper# 4934301886dSEnji Cooper.for vv in \ 4944301886dSEnji Cooper GSSAPI/KERBEROS \ 4954301886dSEnji Cooper MAN_UTILS/MAN 4964301886dSEnji Cooper.if defined(WITH_${vv:H}) 4974301886dSEnji CooperMK_${vv:H}:= yes 4984301886dSEnji Cooper.elif defined(WITHOUT_${vv:H}) 4994301886dSEnji CooperMK_${vv:H}:= no 5004301886dSEnji Cooper.else 5014301886dSEnji CooperMK_${vv:H}:= ${MK_${vv:T}} 5024301886dSEnji Cooper.endif 5034301886dSEnji Cooper.endfor 5044301886dSEnji Cooper 5054301886dSEnji Cooper# 5065e84b765SWarner Losh# Set defaults for the MK_*_SUPPORT variables. 5075e84b765SWarner Losh# 5085e84b765SWarner Losh 509ff2cf368SBaptiste Daroussin.endif # !target(__<src.opts.mk>__) 510