Makefile: add variable print capabilities
authorÉmeric Vigier <emeric.vigier@savoirfairelinux.com>
Tue, 28 May 2013 22:41:11 +0000 (00:41 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 1 Aug 2013 06:01:45 +0000 (08:01 +0200)
Add a new goal that dumps all of our variables.

Taken from http://www.cmcrossroads.com/ask-mr-make/6521-dumping-every-makefile-variable

Signed-off-by: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
[yann.morin.1998@free.fr: drop per-variable print; refresh patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Makefile

index 0cd7f5541fd21c79049b8347feddb7cb0a8b8dbf..5a0c64a52a055cc5fac99d947acc744ba985e96b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -407,7 +407,7 @@ toolchain: prepare dirs dependencies $(BASE_TARGETS)
 world: toolchain $(TARGETS_ALL)
 
 .PHONY: all world toolchain dirs clean distclean source outputmakefile \
-       legal-info legal-info-prepare legal-info-clean \
+       legal-info legal-info-prepare legal-info-clean printvars \
        $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
        $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
        $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
@@ -731,6 +731,14 @@ ifeq ($(NEED_WRAPPER),y)
        $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
 endif
 
+# printvars prints all the variables currently defined in our Makefiles
+printvars:
+       @$(foreach V, \
+               $(sort $(.VARIABLES)), \
+               $(if $(filter-out environment% default automatic, \
+                               $(origin $V)), \
+               $(info $V=$($V) ($(value $V)))))
+
 clean:
        rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
                $(STAMP_DIR) $(BUILD_DIR) $(BASE_DIR)/staging \