[Libguestfs] [PATCH v2] appliance: Don't rebuild the appliance every time configure runs

Richard W.M. Jones rjones at redhat.com
Mon Nov 2 16:41:15 UTC 2009


This seems like a better way to fix this.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://et.redhat.com/~rjones/libguestfs/
See what it can do: http://et.redhat.com/~rjones/libguestfs/recipes.html
-------------- next part --------------
>From ff704b2291680ca52051452abbce033953f65f3e Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones at redhat.com>
Date: Fri, 30 Oct 2009 17:11:02 +0000
Subject: [PATCH] appliance: Don't rebuild the appliance every time configure runs.

config.status touches make.sh each time it runs, even if the
resulting script would not change.  This causes the appliance
to get rebuilt much more frequently than is necessary.

There's no way to stop configure running, but we can move the
config.status command into a Makefile rule to stop this
undesirable behaviour.
---
 appliance/Makefile.am |    9 +++++++++
 configure.ac          |    2 --
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/appliance/Makefile.am b/appliance/Makefile.am
index d1338bf..1fb7699 100644
--- a/appliance/Makefile.am
+++ b/appliance/Makefile.am
@@ -61,6 +61,15 @@ $(top_builddir)/initramfs/fakeroot.log: make.sh kmod.whitelist packagelist
 	mv $(VMLINUZ) $(VMLINUZ).bak 2>/dev/null; :
 	if ! bash make.sh; then rm -f $@; exit 1; fi
 
+# This used to be a configure-generated file (as is update.sh still).
+# However config.status always touches the destination file, which
+# means the appliance got rebuilt too often.
+make.sh: make.sh.in
+	cd $(top_builddir) && \
+	  ./config.status --file=appliance/$@-t:appliance/$<
+	chmod +x $@-t
+	mv $@-t $@
+
 $(INITRAMFSIMG): $(top_builddir)/initramfs/fakeroot.log $(top_builddir)/daemon/guestfsd init update.sh
 	rm -f $@
 	bash update.sh
diff --git a/configure.ac b/configure.ac
index b31c193..e11de0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -699,8 +699,6 @@ AC_CONFIG_SUBDIRS([daemon])
 dnl Produce output files.
 AC_CONFIG_HEADERS([config.h])
 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
-AC_CONFIG_FILES([appliance/make.sh],
-                [chmod +x appliance/make.sh])
 AC_CONFIG_FILES([appliance/update.sh],
                 [chmod +x appliance/update.sh])
 AC_CONFIG_FILES([appliance/supermin-split.sh],
-- 
1.6.5.rc2



More information about the Libguestfs mailing list