aboutsummaryrefslogtreecommitdiff
path: root/share/mk/src.sys.mk
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2015-09-17 21:49:29 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2015-09-17 21:49:29 +0000
commitcc9222742808629ddaa0fa3ba9ca77bea386b461 (patch)
tree6244bd9f4a92428e0475f27bc9083d6875ea8671 /share/mk/src.sys.mk
parent4b43341deaaec99e74d30752a34ec2418ad40cfc (diff)
downloadsrc-cc9222742808629ddaa0fa3ba9ca77bea386b461.tar.gz
src-cc9222742808629ddaa0fa3ba9ca77bea386b461.zip
Add a check to ensure that the env-only mkopts are not set via src.conf.
Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=287939
Diffstat (limited to 'share/mk/src.sys.mk')
-rw-r--r--share/mk/src.sys.mk18
1 files changed, 18 insertions, 0 deletions
diff --git a/share/mk/src.sys.mk b/share/mk/src.sys.mk
index 81ecaf6d65f5..fed28a3f2929 100644
--- a/share/mk/src.sys.mk
+++ b/share/mk/src.sys.mk
@@ -8,9 +8,27 @@
# Allow user to configure things that only effect src tree builds.
SRCCONF?= /etc/src.conf
.if (exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf") && !target(_srcconf_included_)
+
+# Validate that the user didn't try setting an env-only variable in
+# their src.conf. This benefits from already including bsd.mkopt.mk.
+.for var in ${__ENV_ONLY_OPTIONS}
+__presrcconf_${var}:= ${MK_${var}:U-}${WITHOUT_${var}:Uno:Dyes}${WITH_${var}:Uno:Dyes}
+.endfor
+
.sinclude "${SRCCONF}"
_srcconf_included_: .NOTMAIN
+
+# Validate the env-only variables.
+.for var in ${__ENV_ONLY_OPTIONS}
+__postrcconf_${var}:= ${MK_${var}:U-}${WITHOUT_${var}:Uno:Dyes}${WITH_${var}:Uno:Dyes}
+.if ${__presrcconf_${var}} != ${__postrcconf_${var}}
+.error Option ${var} may only be defined in ${SRC_ENV_CONF}, environment, or make argument, not ${SRCCONF}.
.endif
+.undef __presrcconf_${var}
+.undef __postrcconf_${var}
+.endfor
+
+.endif # SRCCONF
# tempting, but bsd.compiler.mk causes problems this early
# probably need to remove dependence on bsd.own.mk