WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] libxl, buildmakevars2file: Do not relink libxl each

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] libxl, buildmakevars2file: Do not relink libxl each time
From: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Date: Mon, 20 Sep 2010 17:06:12 +0100
Delivery-date: Mon, 20 Sep 2010 09:06:45 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>

diff -r 81c40c5db26e Config.mk
--- a/Config.mk Mon Sep 20 16:57:08 2010 +0100
+++ b/Config.mk Mon Sep 20 17:04:34 2010 +0100
@@ -104,16 +104,17 @@ define buildmakevars2file-closure
 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 -r 81c40c5db26e tools/libxl/Makefile
--- a/tools/libxl/Makefile      Mon Sep 20 16:57:08 2010 +0100
+++ b/tools/libxl/Makefile      Mon Sep 20 17:04:34 2010 +0100
@@ -52,12 +52,12 @@ all: $(CLIENTS) libxenlight.so libxenlig
        @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
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>