makefile: allow to disable all default-yes config variables with CONFIG_NOTHING=yes

All credit for this should be given to Patrick Georgi (see r1869).

Corresponding to flashrom svn r1944.

Signed-off-by: Stefan Tauner <>
Acked-by: Carl-Daniel Hailfinger <>
diff --git a/Makefile b/Makefile
index 00819c6..1511eef 100644
--- a/Makefile
+++ b/Makefile
@@ -642,6 +642,16 @@
 # Disable wiki printing by default. It is only useful if you have wiki access.
+# Disable all features if CONFIG_NOTHING=yes is given unless CONFIG_EVERYTHING was also set
+ifeq ($(CONFIG_NOTHING), yes)
+  ifeq ($(CONFIG_EVERYTHING), yes)
+    $(error Setting CONFIG_NOTHING=yes and CONFIG_EVERYTHING=yes does not make sense)
+  endif
+  $(foreach var, $(filter CONFIG_%, $(.VARIABLES)),\
+    $(if $(filter yes, $($(var))),\
+      $(eval $(var)=no)))
 # Enable all features if CONFIG_EVERYTHING=yes is given
 ifeq ($(CONFIG_EVERYTHING), yes)
 $(foreach var, $(filter CONFIG_%, $(.VARIABLES)),\