svn commit: r265399 - head/share/mk

Warner Losh imp at FreeBSD.org
Mon May 5 22:02:48 UTC 2014


Author: imp
Date: Mon May  5 22:02:48 2014
New Revision: 265399
URL: http://svnweb.freebsd.org/changeset/base/265399

Log:
  [1] Make WITHOUT_FOO alway trump WITH_FOO, regardless of the system
      default. This restores more of the historical expectations that
      were broken when we started disallowing both WITH_FOO and
      WITHOUT_FOO to be defined.
  [2] Document this new behavior, and improve the documentation in
      general here.
  
  Submitted by: sjg@ [1].

Modified:
  head/share/mk/bsd.mkopt.mk

Modified: head/share/mk/bsd.mkopt.mk
==============================================================================
--- head/share/mk/bsd.mkopt.mk	Mon May  5 21:49:31 2014	(r265398)
+++ head/share/mk/bsd.mkopt.mk	Mon May  5 22:02:48 2014	(r265399)
@@ -1,22 +1,34 @@
 #
 # $FreeBSD$
 #
-# Generic mechanism to deal with WITH and WITHOUT options and turn them into MK_ options.
+# Generic mechanism to deal with WITH and WITHOUT options and turn
+# them into MK_ options.
 #
+# For each option FOO in __DEFUALT_YES_OPTIONS, MK_FOO is set to
+# "yes", unless WITHOUT_FOO is defined, in which case it is set to
+# "no".
+#
+# For each option FOO in __DEFUALT_NO_OPTIONS, MK_FOO is set to "no",
+# unless WITH_FOO is defined, in which case it is set to "yes".
+#
+# If both WITH_FOO and WITHOUT_FOO are defined, WITHOUT_FOO wins and
+# MK_FOO is set to "no" regardless of which list it was in.
+#
+# Both __DEFAULT_YES_OPTIONS and __DEFAULT_NO_OPTIONS are undef'd
+# after all this processing, allowing this file to be included
+# multiple times with different lists.
+#
+# Users should generally define WITH_FOO or WITHOUT_FOO, but the build
+# system should use MK_FOO={yes,no} when it needs to override the
+# user's desires or default behavior.
 #
-# For each option FOO that defaults to YES, MK_FOO is set to yes, unless WITHOUT_FOO
-# is defined, in which case it is set to no. If both WITH_FOO and WITHOUT_FOO are
-# defined, WITHOUT_FOO wins. The list of default yes options is contained in the
-# __DEFAULT_YES_OPTIONS variable, which is undefined after expansion.
-#
-# For each option FOO that defaults to NO, MK_FOO is set to no, unless WITH_FOO
-# is defined, in which case it is set to yes. If both WITH_FOO and WITHOUT_FOO are
-# defined, WITH_FOO wins. The list of default no options is contained in the
-# __DEFAULT_NO_OPTIONS variable, which is undefined after expansion.
+
+#
+# MK_* options which default to "yes".
 #
 .for var in ${__DEFAULT_YES_OPTIONS}
 .if !defined(MK_${var})
-.if defined(WITHOUT_${var})	# IF both WITH and WITHOUT defined, WITHOUT wins.
+.if defined(WITHOUT_${var})			# WITHOUT always wins
 MK_${var}:=	no
 .else
 MK_${var}:=	yes
@@ -30,7 +42,7 @@ MK_${var}:=	yes
 #
 .for var in ${__DEFAULT_NO_OPTIONS}
 .if !defined(MK_${var})
-.if defined(WITH_${var})	# If both WITH and WITHOUT defined, WITH wins
+.if definfed(WITH_${var} && !defined(WITHOUT_${var}) # WITHOUT aways wins
 MK_${var}:=	yes
 .else
 MK_${var}:=	no


More information about the svn-src-all mailing list