summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Popov <arrowd@FreeBSD.org>2024-02-17 19:39:51 +0300
committerGleb Popov <arrowd@FreeBSD.org>2024-02-29 09:07:12 +0300
commitd697653cffd19ddaf3cdee2589a830c72ab39777 (patch)
tree6fa00c2e709ddcb6a57c145d48c75a53a4c5cfbd
parentFramework: Introduce testing feature (diff)
Mk/bsd.port.mk: Allow WITHOUT_FEATURE_PORTS to cancel WITH_FEATURE
Differential Revision: https://reviews.freebsd.org/D43949 Sponsored by: Serenity Cybersecurity, LLC
-rw-r--r--Mk/bsd.port.mk39
1 files changed, 30 insertions, 9 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 32baeb54b242..1ec1e6c52c66 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1322,18 +1322,39 @@ LDCONFIG32_DIR= libdata/ldconfig32
TMPDIR?= /tmp
. endif # defined(PACKAGE_BUILDING)
+# If user specified WITH_FEATURE=yes for a feature that is disabled by default
+# treat it as enabled by default
+. for feature in ${_LIST_OF_WITH_FEATURES}
+. if ${_DEFAULT_WITH_FEATURES:N${feature}}
+. if defined(WITH_${feature:tu})
+_DEFAULT_WITH_FEATURES+= ${feature}
+. endif
+. endif
+. endfor
+
+. for feature in ${_LIST_OF_WITH_FEATURES}
+# Create _{WITH,WITHOUT}_FEATURE vars based on user-provided {WITH,WITHOUT}_FEATURE
+. if defined(WITH_${feature:tu})
+_WITH_${feature:tu}= ${WITH_${feature:tu}}
+. endif
+. if defined(WITHOUT_${feature:tu})
+_WITHOUT_${feature:tu}= ${WITHOUT_${feature:tu}}
+. endif
# For each Feature we support, process the
# WITH_FEATURE_PORTS and WITHOUT_FEATURE_PORTS variables
-. for feature in ${_LIST_OF_WITH_FEATURES}
. if ${_DEFAULT_WITH_FEATURES:M${feature}}
-_WITH_OR_WITHOUT= WITHOUT
+. if defined(WITHOUT_${feature:tu}_PORTS)
+. if ${WITHOUT_${feature:tu}_PORTS:M${PKGORIGIN}}
+_WITHOUT_${feature:tu}= yes
+.undef _WITH_${feature:tu}
+. endif
+. endif
. else
-_WITH_OR_WITHOUT= WITH
-. endif
-
-. if defined(${_WITH_OR_WITHOUT}_${feature:tu}_PORTS)
-. if ${${_WITH_OR_WITHOUT}_${feature:tu}_PORTS:M${PKGORIGIN}}
-${_WITH_OR_WITHOUT}_${feature:tu}= yes
+. if defined(WITH_${feature:tu}_PORTS)
+. if ${WITH_${feature:tu}_PORTS:M${PKGORIGIN}}
+_WITH_${feature:tu}= yes
+.undef _WITHOUT_${feature:tu}
+. endif
. endif
. endif
. endfor
@@ -1787,7 +1808,7 @@ CFLAGS:= ${CFLAGS:C/${_CPUCFLAGS}//}
. endif
. for f in ${_LIST_OF_WITH_FEATURES}
-. if defined(WITH_${f:tu}) || ( ${_DEFAULT_WITH_FEATURES:M${f}} && !defined(WITHOUT_${f:tu}) )
+. if defined(_WITH_${f:tu}) || ( ${_DEFAULT_WITH_FEATURES:M${f}} && !defined(_WITHOUT_${f:tu}) )
.include "${PORTSDIR}/Mk/Features/$f.mk"
. endif
. endfor