diff options
author | Ian Jackson <ian.jackson@eu.citrix.com> | 2010-09-21 16:08:38 +0100 |
---|---|---|
committer | Ian Jackson <ian.jackson@eu.citrix.com> | 2010-09-21 16:08:38 +0100 |
commit | e1d00a45e0f526c7ba98eba7f400987645f18a86 (patch) | |
tree | 2695f649e3b722ca1457a48681062cedf4c24b09 | |
parent | 95e155c6ecda017e44dbccb942e071dae65a34da (diff) | |
download | xen-e1d00a45e0f526c7ba98eba7f400987645f18a86.tar.gz xen-e1d00a45e0f526c7ba98eba7f400987645f18a86.tar.bz2 xen-e1d00a45e0f526c7ba98eba7f400987645f18a86.zip |
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>
-rw-r--r-- | .hgignore | 1 | ||||
-rw-r--r-- | Config.mk | 21 | ||||
-rw-r--r-- | tools/libxl/Makefile | 6 |
3 files changed, 15 insertions, 13 deletions
@@ -11,6 +11,7 @@ .*\.tar\.bz2$ .*\.tar\.gz$ .*~$ +.*\.tmp$ .*\.flc$ .*\.orig$ .*\.rej$ @@ -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) diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 9f74d4b284..d0be502e1d 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -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 |