[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 03/13] Config.mk: add new macro buildmakevars2header

This macro is similar to buildmakevars2file, it just creates a C header
file instead of shell style syntax. Upcoming changes will use this macro
in libxl and libxc.

Note: if target ($(1)) is marked as .PHONY everything that depends on
target will be constantly rebuild. The reason for that seems to be that
make will internally drop target. As a result target is non-existant,
which triggers a rebuild. With the intermediate target.tmp this will not
happen because target changes only if target.tmp really changes.

Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
 Config.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Config.mk b/Config.mk
index 28e9930..92c0567 100644
--- a/Config.mk
+++ b/Config.mk
@@ -181,6 +181,17 @@ define buildmakevars2file-closure
        $(call move-if-changed,$(1).tmp,$(1))
+buildmakevars2header = $(eval $(call buildmakevars2header-closure,$(1)))
+define buildmakevars2header-closure
+    $(1).tmp:
+       rm -f $(1).newtmp; \
+       $(foreach var, $(BUILD_MAKE_VARS), \
+                 echo "#define $(var) \"$($(var))\"" >>$(1).newtmp;) \
+       $(call move-if-changed,$(1).newtmp,$(1).tmp)
+    $(1): $(1).tmp
+       $(call move-if-changed,$(1).tmp,$(1))
 ifeq ($(debug_symbols),y)
 CFLAGS += -g

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.