bsd.own.mk - just let WITHOUT_* take precedence
Simon J. Gerraty
sjg at juniper.net
Mon Oct 8 17:53:33 UTC 2012
On Mon, 8 Oct 2012 10:48:53 -0500, Brooks Davis writes:
>I'm not sure if I agree or not, I'll have to think more. This sort of
>thing that leads to me yelling at my computer "but I @#%$@# set
>WITH_FOO you ^@$@! machine." :)
For default YES options, WITHOUT_ already takes precedence
(ignoring the fact that you die first if both are set).
The main change is to make default NO options behave the same.
>I think we should at a minimum issue a warning and say what we did.
Sure, something like:
.warning both WITHOUT_${var} and WITH_${var} set; WITHOUT_${var} wins.
>The implementation looks mostly fine. I do think it skips some options
>with variable defaults (LIBCXX in HEAD for example) so I think you'd need
>to sprinkle more of these changes in.
True, here's a more complte change:
Index: share/mk/bsd.own.mk
===================================================================
--- share/mk/bsd.own.mk (revision 241871)
+++ share/mk/bsd.own.mk (working copy)
@@ -469,7 +469,7 @@ __DEFAULT_NO_OPTIONS+=FDT
#
.for var in ${__DEFAULT_YES_OPTIONS}
.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
+.warning both WITH_${var} and WITHOUT_${var} set; WITHOUT_${var} wins.
.endif
.if defined(MK_${var})
.error MK_${var} can't be set by a user.
@@ -487,12 +487,12 @@ MK_${var}:= yes
#
.for var in ${__DEFAULT_NO_OPTIONS}
.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
+.warning both WITH_${var} and WITHOUT_${var} set; WITHOUT_${var} wins.
.endif
.if defined(MK_${var})
.error MK_${var} can't be set by a user.
.endif
-.if defined(WITH_${var})
+.if defined(WITH_${var}) && !defined(WITHOUT_${var})
MK_${var}:= yes
.else
MK_${var}:= no
@@ -609,7 +609,7 @@ MK_CLANG_IS_CC:= no
PAM \
WIRELESS
.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
-.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
+.warning both WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT set; WITHOUT_${var}_SUPPORT wins.
.endif
.if defined(MK_${var}_SUPPORT)
.error MK_${var}_SUPPORT can't be set by a user.
@@ -628,15 +628,15 @@ MK_${var}_SUPPORT:= yes
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.
+.warning both WITH_${vv:H} and WITHOUT_${vv:H} set; WITHOUT_${vv:H} wins.
.endif
.if defined(MK_${vv:H})
.error MK_${vv:H} can't be set by a user.
.endif
-.if defined(WITH_${vv:H})
+.if defined(WITHOUT_${vv:H})
+MK_${vv:H}:= no
+.elif 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
@@ -649,7 +649,7 @@ MK_${vv:H}:= ${MK_${vv:T}}
.for var in \
LIBCPLUSPLUS
.if defined(WITH_${var}) && defined(WITHOUT_${var})
-.error WITH_${var} and WITHOUT_${var} can't both be set.
+.warning both WITH_${var} and WITHOUT_${var} set; WITHOUT_${var} wins.
.endif
.if defined(MK_${var})
.error MK_${var} can't be set by a user.
@@ -661,7 +661,7 @@ MK_${var}:= no
MK_${var}:= yes
.endif
.else
-.if defined(WITH_${var})
+.if defined(WITH_${var}) && !defined(WITHOUT_${var})
MK_${var}:= yes
.else
MK_${var}:= no
More information about the freebsd-arch
mailing list