libxl, buildmakevars2file: Do not relink libxl each time

Make Config.mk's definition of buildmakevars2file and
tools/libxl/Makefile's rule for _libxl_paths.h generate their files to
temporary files and only rename them into place if the intended file
has changed.  This gets rid of unnecessarily compilation and link
steps.

Add *.tmp to .hgignore.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Keir Fraser <keir.fraser@citrix.com>
This commit is contained in:
Ian Jackson committed 2010-09-21 16:08:38 +01:00
1 parent 95e155c6ec
commit e1d00a45e0
3 files changed
+15 -13

No files matched your search

+1
View File
@@ -11,6 +11,7 @@
.*\.tar\.bz2$
.*\.tar\.gz$
.*~$
.*\.tmp$
.*\.flc$
.*\.orig$
.*\.rej$
+11 -10
View File
@@ -120,16 +120,17 @@ buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1)))
define buildmakevars2file-closure
.PHONY: genpath
genpath:
rm -f $(1); \
echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \
echo "BINDIR=\"$(BINDIR)\"" >> $(1); \
echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1); \
echo "LIBDIR=\"$(LIBDIR)\"" >> $(1); \
echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1); \
echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1); \
echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1); \
echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1); \
echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1)
rm -f $(1).tmp; \
echo "SBINDIR=\"$(SBINDIR)\"" >> $(1).tmp; \
echo "BINDIR=\"$(BINDIR)\"" >> $(1).tmp; \
echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1).tmp; \
echo "LIBDIR=\"$(LIBDIR)\"" >> $(1).tmp; \
echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1).tmp; \
echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1).tmp; \
echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1).tmp; \
echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1).tmp; \
echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1).tmp; \
if ! cmp $(1).tmp $(1); then mv -f $(1).tmp $(1); fi
endef
ifeq ($(debug),y)
+3 -3
View File
@@ -52,12 +52,12 @@ $(LIBXLU_OBJS): $(AUTOINCS)
@rm -f $*.[ch]
$(FLEX) --header-file=$*.h --outfile=$*.c $<
genpath-target = $(call buildmakevars2file,_libxl_paths.h)
genpath-target = $(call buildmakevars2file,_libxl_paths.h.tmp)
$(eval $(genpath-target))
_libxl_paths.h: genpath
sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@ >_$@
mv _$@ $@
sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@.tmp >$@.2.tmp
if ! cmp $@.2.tmp $@; then mv -f $@.2.tmp $@; fi
libxl_paths.c: _libxl_paths.h
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.