From cc9222742808629ddaa0fa3ba9ca77bea386b461 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Thu, 17 Sep 2015 21:49:29 +0000 Subject: Add a check to ensure that the env-only mkopts are not set via src.conf. Sponsored by: EMC / Isilon Storage Division --- share/mk/src.sys.mk | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'share/mk') 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 -- cgit v1.2.3