summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/mk/Makefile1
-rw-r--r--share/mk/bsd.opts.mk470
-rw-r--r--share/mk/bsd.own.mk478
3 files changed, 495 insertions, 454 deletions
diff --git a/share/mk/Makefile b/share/mk/Makefile
index 7d70df7..df14494 100644
--- a/share/mk/Makefile
+++ b/share/mk/Makefile
@@ -24,6 +24,7 @@ FILES= \
bsd.man.mk \
bsd.nls.mk \
bsd.obj.mk \
+ bsd.opts.mk \
bsd.own.mk \
bsd.port.mk \
bsd.port.options.mk \
diff --git a/share/mk/bsd.opts.mk b/share/mk/bsd.opts.mk
new file mode 100644
index 0000000..3c285c6
--- /dev/null
+++ b/share/mk/bsd.opts.mk
@@ -0,0 +1,470 @@
+# $FreeBSD$
+#
+# Option file for src builds.
+#
+# Users define WITH_FOO and WITHOUT_FOO on the command line or in /etc/src.conf
+# and /etc/make.conf files. These translate in the build system to MK_FOO={yes,no}
+# with sensible (usually) defaults.
+#
+# Makefiles must include bsd.opts.mk after defining specific MK_FOO options that
+# are applicable for that Makefile (typically there are none, but sometimes there
+# are exceptions). Recursive makes usually add MK_FOO=no for options that they wish
+# to omit from that make.
+#
+# Makefiles must include bsd.srcpot.mk before they test the value of any MK_FOO
+# variable.
+#
+# Makefiles may also assume that this file is included by bsd.own.mk should it
+# need variables defined there prior to the end of the Makefile where
+# bsd.{subdir,lib.bin}.mk is traditionally included.
+#
+# The old-style YES_FOO and NO_FOO are being phased out. No new instances of them
+# should be added. Old instances should be removed since they were just to
+# bridge the gap between FreeBSD 4 and FreeBSD 5.
+#
+# Makefiles should never test WITH_FOO or WITHOUT_FOO directly (although an
+# exception is made for _WITHOUT_SRCONF which turns off this mechanism
+# completely).
+#
+
+.if !target(__<bsd.opts.mk>__)
+__<bsd.opts.mk>__:
+
+.if !defined(_WITHOUT_SRCCONF)
+SRCCONF?= /etc/src.conf
+.if exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf"
+.include "${SRCCONF}"
+.endif
+
+#
+# Define MK_* variables (which are either "yes" or "no") for users
+# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
+# make(1) environment.
+# These should be tested with `== "no"' or `!= "no"' in makefiles.
+# The NO_* variables should only be set by makefiles for variables
+# that haven't been converted over.
+#
+
+#
+# Older-style variables that enabled behaviour when set.
+#
+.if defined(YES_HESIOD)
+WITH_HESIOD=
+.endif
+
+__DEFAULT_YES_OPTIONS = \
+ ACCT \
+ ACPI \
+ AMD \
+ APM \
+ ARM_EABI \
+ ASSERT_DEBUG \
+ AT \
+ ATM \
+ AUDIT \
+ AUTHPF \
+ BINUTILS \
+ BINUTILS_BOOTSTRAP \
+ BLUETOOTH \
+ BMAKE \
+ BOOT \
+ BSD_CPIO \
+ BSNMP \
+ BZIP2 \
+ CALENDAR \
+ CAPSICUM \
+ CASPER \
+ CDDL \
+ CPP \
+ CROSS_COMPILER \
+ CRYPT \
+ CTM \
+ CXX \
+ DICT \
+ DMAGENT \
+ DYNAMICROOT \
+ ED_CRYPTO \
+ EXAMPLES \
+ FDT \
+ FLOPPY \
+ FMTREE \
+ FORMAT_EXTENSIONS \
+ FORTH \
+ FP_LIBC \
+ FREEBSD_UPDATE \
+ GAMES \
+ GCOV \
+ GDB \
+ GNU \
+ GNU_GREP_COMPAT \
+ GPIB \
+ GPIO \
+ GPL_DTC \
+ GROFF \
+ HTML \
+ ICONV \
+ INET \
+ INET6 \
+ INFO \
+ INSTALLLIB \
+ IPFILTER \
+ IPFW \
+ JAIL \
+ KDUMP \
+ KERBEROS \
+ KERNEL_SYMBOLS \
+ KVM \
+ LDNS \
+ LDNS_UTILS \
+ LEGACY_CONSOLE \
+ LIB32 \
+ LIBPTHREAD \
+ LIBTHR \
+ LOCALES \
+ LOCATE \
+ LPR \
+ LS_COLORS \
+ LZMA_SUPPORT \
+ MAIL \
+ MAILWRAPPER \
+ MAKE \
+ MAN \
+ MANCOMPRESS \
+ NCURSESW \
+ NDIS \
+ NETCAT \
+ NETGRAPH \
+ NIS \
+ NLS \
+ NLS_CATALOGS \
+ NS_CACHING \
+ NTP \
+ OPENSSH \
+ OPENSSL \
+ PAM \
+ PC_SYSINSTALL \
+ PF \
+ PKGBOOTSTRAP \
+ PMC \
+ PORTSNAP \
+ PPP \
+ PROFILE \
+ QUOTAS \
+ RCMDS \
+ RCS \
+ RESCUE \
+ ROUTED \
+ SENDMAIL \
+ SETUID_LOGIN \
+ SHAREDOCS \
+ SOURCELESS \
+ SOURCELESS_HOST \
+ SOURCELESS_UCODE \
+ SSP \
+ SVNLITE \
+ SYMVER \
+ SYSCALL_COMPAT \
+ SYSCONS \
+ SYSINSTALL \
+ TCSH \
+ TELNET \
+ TEXTPROC \
+ TOOLCHAIN \
+ UNBOUND \
+ USB \
+ UTMPX \
+ WIRELESS \
+ WPA_SUPPLICANT_EAPOL \
+ ZFS \
+ ZONEINFO
+
+__DEFAULT_NO_OPTIONS = \
+ BSD_GREP \
+ CLANG_EXTRAS \
+ CTF \
+ DEBUG_FILES \
+ EISA \
+ HESIOD \
+ INSTALL_AS_USER \
+ LLDB \
+ NAND \
+ OFED \
+ OPENSSH_NONE_CIPHER \
+ SHARED_TOOLCHAIN \
+ SORT_THREADS \
+ SVN \
+ TESTS \
+ USB_GADGET_EXAMPLES
+
+#
+# Default behaviour of some options depends on the architecture. Unfortunately
+# this means that we have to test TARGET_ARCH (the buildworld case) as well
+# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not
+# used at all in bsd.*.mk, but we have to make an exception here if we want
+# to allow defaults for some things like clang to vary by target architecture.
+# Additional, per-target behavior should be rarely added only after much
+# gnashing of teeth and grinding of gears.
+#
+.if defined(TARGET_ARCH)
+__T=${TARGET_ARCH}
+.else
+__T=${MACHINE_ARCH}
+.endif
+.if defined(TARGET)
+__TT=${TARGET}
+.else
+__TT=${MACHINE}
+.endif
+# Clang is only for x86, powerpc and little-endian arm right now, by default.
+.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*}
+__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP
+.elif ${__T} == "arm" || ${__T} == "armv6" || ${__T} == "armv6hf"
+__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP
+# GCC is unable to build the full clang on arm, disable it by default.
+__DEFAULT_NO_OPTIONS+=CLANG_FULL
+.else
+__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP
+.endif
+# Clang the default system compiler only on little-endian arm and x86.
+.if ${__T} == "amd64" || ${__T} == "arm" || ${__T} == "armv6" || \
+ ${__T} == "armv6hf" || ${__T} == "i386"
+__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
+__DEFAULT_NO_OPTIONS+=GNUCXX
+# The pc98 bootloader requires gcc to build and so we must leave gcc enabled
+# for pc98 for now.
+.if ${__TT} == "pc98"
+__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP
+.else
+__DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP
+.endif
+.else
+# If clang is not cc, then build gcc by default
+__DEFAULT_NO_OPTIONS+=CLANG_IS_CC CLANG CLANG_BOOTSTRAP
+__DEFAULT_YES_OPTIONS+=GCC GNUCXX GCC_BOOTSTRAP
+.endif
+
+#
+# MK_* options which default to "yes".
+#
+.for var in ${__DEFAULT_YES_OPTIONS}
+.if defined(WITH_${var}) && defined(WITHOUT_${var})
+.error WITH_${var} and WITHOUT_${var} can't both be set.
+.endif
+.if defined(MK_${var})
+.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
+.error MK_${var} can't be set by a user.
+.endif
+.else
+.if defined(WITHOUT_${var})
+MK_${var}:= no
+.else
+MK_${var}:= yes
+.endif
+.endif
+.endfor
+.undef __DEFAULT_YES_OPTIONS
+
+#
+# MK_* options which default to "no".
+#
+.for var in ${__DEFAULT_NO_OPTIONS}
+.if defined(WITH_${var}) && defined(WITHOUT_${var})
+.error WITH_${var} and WITHOUT_${var} can't both be set.
+.endif
+.if defined(MK_${var})
+.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
+.error MK_${var} can't be set by a user.
+.endif
+.else
+.if defined(WITH_${var})
+MK_${var}:= yes
+.else
+MK_${var}:= no
+.endif
+.endif
+.endfor
+.undef __DEFAULT_NO_OPTIONS
+
+
+#
+# Supported NO_* options (if defined, MK_* will be forced to "no",
+# regardless of user's setting).
+#
+# These are transitional and will disappaer in the fullness of time.
+#
+.for var in \
+ CTF \
+ DEBUG_FILES \
+ INSTALLLIB \
+ MAN \
+ PROFILE
+.if defined(NO_${var})
+MK_${var}:=no
+.endif
+.endfor
+
+#
+# Force some options off if their dependencies are off.
+# Order is somewhat important.
+#
+.if ${MK_LIBPTHREAD} == "no"
+MK_LIBTHR:= no
+.endif
+
+.if ${MK_LDNS} == "no"
+MK_LDNS_UTILS:= no
+MK_UNBOUND:= no
+.endif
+
+.if ${MK_SOURCELESS} == "no"
+MK_SOURCELESS_HOST:= no
+MK_SOURCELESS_UCODE:= no
+.endif
+
+.if ${MK_CDDL} == "no"
+MK_ZFS:= no
+MK_CTF:= no
+.endif
+
+.if ${MK_CRYPT} == "no"
+MK_OPENSSL:= no
+MK_OPENSSH:= no
+MK_KERBEROS:= no
+.endif
+
+.if ${MK_CXX} == "no"
+MK_CLANG:= no
+MK_GROFF:= no
+.endif
+
+.if ${MK_MAIL} == "no"
+MK_MAILWRAPPER:= no
+MK_SENDMAIL:= no
+MK_DMAGENT:= no
+.endif
+
+.if ${MK_NETGRAPH} == "no"
+MK_ATM:= no
+MK_BLUETOOTH:= no
+.endif
+
+.if ${MK_OPENSSL} == "no"
+MK_OPENSSH:= no
+MK_KERBEROS:= no
+.endif
+
+.if ${MK_PF} == "no"
+MK_AUTHPF:= no
+.endif
+
+.if ${MK_TEXTPROC} == "no"
+MK_GROFF:= no
+.endif
+
+.if ${MK_CROSS_COMPILER} == "no"
+MK_BINUTILS_BOOTSTRAP:= no
+MK_CLANG_BOOTSTRAP:= no
+MK_GCC_BOOTSTRAP:= no
+.endif
+
+.if ${MK_TOOLCHAIN} == "no"
+MK_BINUTILS:= no
+MK_CLANG:= no
+MK_GCC:= no
+MK_GDB:= no
+.endif
+
+.if ${MK_CLANG} == "no"
+MK_CLANG_EXTRAS:= no
+MK_CLANG_FULL:= no
+.endif
+
+#
+# Set defaults for the MK_*_SUPPORT variables.
+#
+
+#
+# MK_*_SUPPORT options which default to "yes" unless their corresponding
+# MK_* variable is set to "no".
+#
+.for var in \
+ BZIP2 \
+ GNU \
+ INET \
+ INET6 \
+ KERBEROS \
+ KVM \
+ NETGRAPH \
+ PAM \
+ WIRELESS
+.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
+.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
+.endif
+.if defined(MK_${var}_SUPPORT)
+.error MK_${var}_SUPPORT can't be set by a user.
+.endif
+.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
+MK_${var}_SUPPORT:= no
+.else
+MK_${var}_SUPPORT:= yes
+.endif
+.endfor
+
+#
+# MK_* options whose default value depends on another option.
+#
+.for vv in \
+ GSSAPI/KERBEROS \
+ MAN_UTILS/MAN
+.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H})
+.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set.
+.endif
+.if defined(MK_${vv:H})
+.error MK_${vv:H} can't be set by a user.
+.endif
+.if defined(WITH_${vv:H})
+MK_${vv:H}:= yes
+.elif defined(WITHOUT_${vv:H})
+MK_${vv:H}:= no
+.else
+MK_${vv:H}:= ${MK_${vv:T}}
+.endif
+.endfor
+
+#
+# MK_* options that default to "yes" if the compiler is a C++11 compiler.
+#
+.include <bsd.compiler.mk>
+.for var in \
+ LIBCPLUSPLUS
+.if defined(WITH_${var}) && defined(WITHOUT_${var})
+.error WITH_${var} and WITHOUT_${var} can't both be set.
+.endif
+.if defined(MK_${var})
+.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
+.error MK_${var} can't be set by a user.
+.endif
+.else
+.if ${COMPILER_FEATURES:Mc++11}
+.if defined(WITHOUT_${var})
+MK_${var}:= no
+.else
+MK_${var}:= yes
+.endif
+.else
+.if defined(WITH_${var})
+MK_${var}:= yes
+.else
+MK_${var}:= no
+.endif
+.endif
+.endif
+.endfor
+
+.if !${COMPILER_FEATURES:Mc++11}
+MK_LLDB:= no
+.endif
+
+.endif # !_WITHOUT_SRCCONF
+
+.endif
diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk
index b2ce100..3105cd6 100644
--- a/share/mk/bsd.own.mk
+++ b/share/mk/bsd.own.mk
@@ -122,13 +122,34 @@
.if !target(__<bsd.own.mk>__)
__<bsd.own.mk>__:
+.include <bsd.opts.mk>
+
.if !defined(_WITHOUT_SRCCONF)
-SRCCONF?= /etc/src.conf
-.if exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf"
-.include "${SRCCONF}"
+
+.if ${MK_CTF} != "no"
+CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
+.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300)
+CTFCONVERT_CMD=
+.else
+CTFCONVERT_CMD= @:
+.endif
+
+.if ${MK_INSTALL_AS_USER} != "no"
+_uid!= id -u
+.if ${_uid} != 0
+.if !defined(USER)
+USER!= id -un
+.endif
+_gid!= id -gn
+.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE
+$xOWN= ${USER}
+$xGRP= ${_gid}
+.endfor
.endif
.endif
+.endif # !_WITHOUT_SRCCONF
+
# Binaries
BINOWN?= root
BINGRP?= wheel
@@ -209,457 +230,6 @@ STRIP?= -s
COMPRESS_CMD?= gzip -cn
COMPRESS_EXT?= .gz
-.if !defined(_WITHOUT_SRCCONF)
-#
-# Define MK_* variables (which are either "yes" or "no") for users
-# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
-# make(1) environment.
-# These should be tested with `== "no"' or `!= "no"' in makefiles.
-# The NO_* variables should only be set by makefiles.
-#
-
-#
-# Older-style variables that enabled behaviour when set.
-#
-.if defined(YES_HESIOD)
-WITH_HESIOD=
-.endif
-
-__DEFAULT_YES_OPTIONS = \
- ACCT \
- ACPI \
- AMD \
- APM \
- ARM_EABI \
- ASSERT_DEBUG \
- AT \
- ATM \
- AUDIT \
- AUTHPF \
- BINUTILS \
- BINUTILS_BOOTSTRAP \
- BLUETOOTH \
- BMAKE \
- BOOT \
- BSD_CPIO \
- BSNMP \
- BZIP2 \
- CALENDAR \
- CAPSICUM \
- CASPER \
- CDDL \
- CPP \
- CROSS_COMPILER \
- CRYPT \
- CTM \
- CXX \
- DICT \
- DMAGENT \
- DYNAMICROOT \
- ED_CRYPTO \
- EXAMPLES \
- FDT \
- FLOPPY \
- FMTREE \
- FORMAT_EXTENSIONS \
- FORTH \
- FP_LIBC \
- FREEBSD_UPDATE \
- GAMES \
- GCOV \
- GDB \
- GNU \
- GNU_GREP_COMPAT \
- GPIB \
- GPIO \
- GPL_DTC \
- GROFF \
- HTML \
- ICONV \
- INET \
- INET6 \
- INFO \
- INSTALLLIB \
- IPFILTER \
- IPFW \
- JAIL \
- KDUMP \
- KERBEROS \
- KERNEL_SYMBOLS \
- KVM \
- LDNS \
- LDNS_UTILS \
- LEGACY_CONSOLE \
- LIB32 \
- LIBPTHREAD \
- LIBTHR \
- LOCALES \
- LOCATE \
- LPR \
- LS_COLORS \
- LZMA_SUPPORT \
- MAIL \
- MAILWRAPPER \
- MAKE \
- MAN \
- MANCOMPRESS \
- NCURSESW \
- NDIS \
- NETCAT \
- NETGRAPH \
- NIS \
- NLS \
- NLS_CATALOGS \
- NS_CACHING \
- NTP \
- OPENSSH \
- OPENSSL \
- PAM \
- PC_SYSINSTALL \
- PF \
- PKGBOOTSTRAP \
- PMC \
- PORTSNAP \
- PPP \
- PROFILE \
- QUOTAS \
- RCMDS \
- RCS \
- RESCUE \
- ROUTED \
- SENDMAIL \
- SETUID_LOGIN \
- SHAREDOCS \
- SOURCELESS \
- SOURCELESS_HOST \
- SOURCELESS_UCODE \
- SSP \
- SVNLITE \
- SYMVER \
- SYSCALL_COMPAT \
- SYSCONS \
- SYSINSTALL \
- TCSH \
- TELNET \
- TEXTPROC \
- TOOLCHAIN \
- UNBOUND \
- USB \
- UTMPX \
- WIRELESS \
- WPA_SUPPLICANT_EAPOL \
- ZFS \
- ZONEINFO
-
-__DEFAULT_NO_OPTIONS = \
- BSD_GREP \
- CLANG_EXTRAS \
- CTF \
- DEBUG_FILES \
- EISA \
- HESIOD \
- INSTALL_AS_USER \
- LLDB \
- NAND \
- OFED \
- OPENSSH_NONE_CIPHER \
- SHARED_TOOLCHAIN \
- SORT_THREADS \
- SVN \
- TESTS \
- USB_GADGET_EXAMPLES
-
-#
-# Default behaviour of some options depends on the architecture. Unfortunately
-# this means that we have to test TARGET_ARCH (the buildworld case) as well
-# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not
-# used at all in bsd.*.mk, but we have to make an exception here if we want
-# to allow defaults for some things like clang to vary by target architecture.
-#
-.if defined(TARGET_ARCH)
-__T=${TARGET_ARCH}
-.else
-__T=${MACHINE_ARCH}
-.endif
-.if defined(TARGET)
-__TT=${TARGET}
-.else
-__TT=${MACHINE}
-.endif
-# Clang is only for x86, powerpc and little-endian arm right now, by default.
-.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*}
-__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP
-.elif ${__T} == "arm" || ${__T} == "armv6" || ${__T} == "armv6hf"
-__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP
-# GCC is unable to build the full clang on arm, disable it by default.
-__DEFAULT_NO_OPTIONS+=CLANG_FULL
-.else
-__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP
-.endif
-# Clang the default system compiler only on little-endian arm and x86.
-.if ${__T} == "amd64" || ${__T} == "arm" || ${__T} == "armv6" || \
- ${__T} == "armv6hf" || ${__T} == "i386"
-__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
-__DEFAULT_NO_OPTIONS+=GNUCXX
-# The pc98 bootloader requires gcc to build and so we must leave gcc enabled
-# for pc98 for now.
-.if ${__TT} == "pc98"
-__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP
-.else
-__DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP
-.endif
-.else
-# If clang is not cc, then build gcc by default
-__DEFAULT_NO_OPTIONS+=CLANG_IS_CC CLANG CLANG_BOOTSTRAP
-__DEFAULT_YES_OPTIONS+=GCC GNUCXX GCC_BOOTSTRAP
-.endif
-
-#
-# MK_* options which default to "yes".
-#
-.for var in ${__DEFAULT_YES_OPTIONS}
-.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
-.endif
-.if defined(MK_${var})
-.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
-.error MK_${var} can't be set by a user.
-.endif
-.else
-.if defined(WITHOUT_${var})
-MK_${var}:= no
-.else
-MK_${var}:= yes
-.endif
-.endif
-.endfor
-.undef __DEFAULT_YES_OPTIONS
-
-#
-# MK_* options which default to "no".
-#
-.for var in ${__DEFAULT_NO_OPTIONS}
-.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
-.endif
-.if defined(MK_${var})
-.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
-.error MK_${var} can't be set by a user.
-.endif
-.else
-.if defined(WITH_${var})
-MK_${var}:= yes
-.else
-MK_${var}:= no
-.endif
-.endif
-.endfor
-.undef __DEFAULT_NO_OPTIONS
-
-
-#
-# Supported NO_* options (if defined, MK_* will be forced to "no",
-# regardless of user's setting).
-#
-# These are transitional and will disappaer in the fullness of time.
-#
-.for var in \
- CTF \
- DEBUG_FILES \
- INSTALLLIB \
- MAN \
- PROFILE
-.if defined(NO_${var})
-MK_${var}:=no
-.endif
-.endfor
-
-#
-# Force some options off if their dependencies are off.
-# Order is somewhat important.
-#
-.if ${MK_LIBPTHREAD} == "no"
-MK_LIBTHR:= no
-.endif
-
-.if ${MK_LDNS} == "no"
-MK_LDNS_UTILS:= no
-MK_UNBOUND:= no
-.endif
-
-.if ${MK_SOURCELESS} == "no"
-MK_SOURCELESS_HOST:= no
-MK_SOURCELESS_UCODE:= no
-.endif
-
-.if ${MK_CDDL} == "no"
-MK_ZFS:= no
-MK_CTF:= no
-.endif
-
-.if ${MK_CRYPT} == "no"
-MK_OPENSSL:= no
-MK_OPENSSH:= no
-MK_KERBEROS:= no
-.endif
-
-.if ${MK_CXX} == "no"
-MK_CLANG:= no
-MK_GROFF:= no
-.endif
-
-.if ${MK_MAIL} == "no"
-MK_MAILWRAPPER:= no
-MK_SENDMAIL:= no
-MK_DMAGENT:= no
-.endif
-
-.if ${MK_NETGRAPH} == "no"
-MK_ATM:= no
-MK_BLUETOOTH:= no
-.endif
-
-.if ${MK_OPENSSL} == "no"
-MK_OPENSSH:= no
-MK_KERBEROS:= no
-.endif
-
-.if ${MK_PF} == "no"
-MK_AUTHPF:= no
-.endif
-
-.if ${MK_TEXTPROC} == "no"
-MK_GROFF:= no
-.endif
-
-.if ${MK_CROSS_COMPILER} == "no"
-MK_BINUTILS_BOOTSTRAP:= no
-MK_CLANG_BOOTSTRAP:= no
-MK_GCC_BOOTSTRAP:= no
-.endif
-
-.if ${MK_TOOLCHAIN} == "no"
-MK_BINUTILS:= no
-MK_CLANG:= no
-MK_GCC:= no
-MK_GDB:= no
-.endif
-
-.if ${MK_CLANG} == "no"
-MK_CLANG_EXTRAS:= no
-MK_CLANG_FULL:= no
-.endif
-
-#
-# Set defaults for the MK_*_SUPPORT variables.
-#
-
-#
-# MK_*_SUPPORT options which default to "yes" unless their corresponding
-# MK_* variable is set to "no".
-#
-.for var in \
- BZIP2 \
- GNU \
- INET \
- INET6 \
- KERBEROS \
- KVM \
- NETGRAPH \
- PAM \
- WIRELESS
-.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
-.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
-.endif
-.if defined(MK_${var}_SUPPORT)
-.error MK_${var}_SUPPORT can't be set by a user.
-.endif
-.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
-MK_${var}_SUPPORT:= no
-.else
-MK_${var}_SUPPORT:= yes
-.endif
-.endfor
-
-#
-# MK_* options whose default value depends on another option.
-#
-.for vv in \
- GSSAPI/KERBEROS \
- MAN_UTILS/MAN
-.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H})
-.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set.
-.endif
-.if defined(MK_${vv:H})
-.error MK_${vv:H} can't be set by a user.
-.endif
-.if defined(WITH_${vv:H})
-MK_${vv:H}:= yes
-.elif defined(WITHOUT_${vv:H})
-MK_${vv:H}:= no
-.else
-MK_${vv:H}:= ${MK_${vv:T}}
-.endif
-.endfor
-
-#
-# MK_* options that default to "yes" if the compiler is a C++11 compiler.
-#
-.include <bsd.compiler.mk>
-.for var in \
- LIBCPLUSPLUS
-.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
-.endif
-.if defined(MK_${var})
-.if defined(.MAKE.LEVEL) && ${.MAKE.LEVEL} == 0
-.error MK_${var} can't be set by a user.
-.endif
-.else
-.if ${COMPILER_FEATURES:Mc++11}
-.if defined(WITHOUT_${var})
-MK_${var}:= no
-.else
-MK_${var}:= yes
-.endif
-.else
-.if defined(WITH_${var})
-MK_${var}:= yes
-.else
-MK_${var}:= no
-.endif
-.endif
-.endif
-.endfor
-
-.if !${COMPILER_FEATURES:Mc++11}
-MK_LLDB:= no
-.endif
-
-.if ${MK_CTF} != "no"
-CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
-.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300)
-CTFCONVERT_CMD=
-.else
-CTFCONVERT_CMD= @:
-.endif
-
-.if ${MK_INSTALL_AS_USER} != "no"
-_uid!= id -u
-.if ${_uid} != 0
-.if !defined(USER)
-USER!= id -un
-.endif
-_gid!= id -gn
-.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE
-$xOWN= ${USER}
-$xGRP= ${_gid}
-.endfor
-.endif
-.endif
-
-.endif # !_WITHOUT_SRCCONF
-
# Pointer to the top directory into which tests are installed. Should not be
# overriden by Makefiles, but the user may choose to set this in src.conf(5).
TESTSBASE?= /usr/tests
OpenPOWER on IntegriCloud