libxl: fix api check Makefile
authorIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 3 Sep 2012 10:22:01 +0000 (11:22 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 3 Sep 2012 10:22:01 +0000 (11:22 +0100)
Touch the libxl.api-ok stamp file, and unconditionally put in place
the new _libxl.api-for-check.  This avoids needlessly rerunning the
preprocessor on libxl.h each time we call "make".

Ensure that _libxl.api-for-check gets the CFLAGS used for xl, so that
if it is asked for in a standalone make run it can find xentoollog.h.

Remove *.api-ok on clean.

Also fix .gitignore.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
.gitignore
.hgignore
tools/libxl/Makefile

index 084ec6216ec00f2495ffe222ab22f84ec7bf1958..776e4b217222da3e82a40f5853093c771f487d2d 100644 (file)
@@ -189,7 +189,8 @@ tools/libxl/xl
 tools/libxl/testenum
 tools/libxl/testenum.c
 tools/libxl/tmp.*
-tools/libxl/libxl.api-for-check
+tools/libxl/_libxl.api-for-check
+tools/libxl/*.api-ok
 tools/libaio/src/*.ol
 tools/libaio/src/*.os
 tools/misc/cpuperf/cpuperf-perfcntr
index 5ef6838db61fab73cf310835d910ae39b532b0cc..141809ee32ed1c1571157bff02779f9cb995bc03 100644 (file)
--- a/.hgignore
+++ b/.hgignore
 ^tools/libxl/tmp\..*$
 ^tools/libxl/.*\.new$
 ^tools/libxl/_libxl\.api-for-check
+^tools/libxl/libxl\.api-ok
 ^tools/libvchan/vchan-node[12]$
 ^tools/libaio/src/.*\.ol$
 ^tools/libaio/src/.*\.os$
index 22c48816d702b2eed105c9436e0dc7d7a571e2c7..a9d9ec604dcceb238078145a48259d3a3e567348 100644 (file)
@@ -85,7 +85,8 @@ $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
 CLIENTS = xl testidl libxl-save-helper
 
 XL_OBJS = xl.o xl_cmdimpl.o xl_cmdtable.o xl_sxp.o
-$(XL_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
+$(XL_OBJS) _libxl.api-for-check: \
+            CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
 $(XL_OBJS): CFLAGS += $(CFLAGS_libxenlight)
 $(XL_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h # libxl_json.h needs it.
 
@@ -116,12 +117,13 @@ $(eval $(genpath-target))
 
 libxl.api-ok: check-libxl-api-rules _libxl.api-for-check
        $(PERL) $^
+       touch $@
 
 _%.api-for-check: %.h
        $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -c -E $< $(APPEND_CFLAGS) \
                -DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \
                >$@.new
-       $(call move-if-changed,$@.new,$@)
+       mv -f $@.new $@
 
 _paths.h: genpath
        sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@.tmp >$@.2.tmp
@@ -211,7 +213,7 @@ install: all
 clean:
        $(RM) -f _*.h *.o *.so* *.a $(CLIENTS) $(DEPS)
        $(RM) -f _*.c *.pyc _paths.*.tmp _*.api-for-check
-       $(RM) -f testidl.c.new testidl.c
+       $(RM) -f testidl.c.new testidl.c *.api-ok
 
 distclean: clean