]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
do not require two ./autogen.sh runs to permit "make"
authorJim Meyering <meyering@redhat.com>
Tue, 16 Mar 2010 20:08:31 +0000 (21:08 +0100)
committerJim Meyering <meyering@redhat.com>
Tue, 16 Mar 2010 20:42:56 +0000 (21:42 +0100)
* autogen.sh (bootstrap_hash): New function.
Running bootstrap may update the gnulib SHA1, yet we were computing
t=$(git submodule status ...) *prior* to running bootstrap, and
then recording that sometimes-stale value in the stamp file upon
a successful bootstrap run.  That would require two (lengthy!)
bootstrap runs to update the stamp file.

autogen.sh

index ff946787afa401aa45a4cc017e41bbba7aa023ee..b93cdbae653681f52ae4f2cab7fcd9bde22b75a8 100755 (executable)
@@ -62,20 +62,27 @@ else
     fi
 fi
 
+# Compute the hash we'll use to determine whether rerunning bootstrap
+# is required.  The first is just the SHA1 that selects a gnulib snapshot.
+# The second ensures that whenever we change the set of gnulib modules used
+# by this package, we rerun bootstrap to pull in the matching set of files.
+bootstrap_hash()
+{
+    git submodule status | sed 's/^[ +-]//;s/ .*//'
+    git hash-object bootstrap.conf
+}
+
 # Ensure that whenever we pull in a gnulib update or otherwise change to a
 # different version (i.e., when switching branches), we also rerun ./bootstrap.
 curr_status=.git-module-status
-t=$(git submodule status|sed 's/^[ +-]//;s/ .*//'; \
-    git hash-object bootstrap.conf)
+t=$(bootstrap_hash)
 if test "$t" = "$(cat $curr_status 2>/dev/null)"; then
     : # good, it's up to date, all we need is autoreconf
     autoreconf -if
 else
-  echo running bootstrap...
-  ./bootstrap && echo "$t" > $curr_status || {
-    echo "Failed to bootstrap gnulib, please investigate."
-    exit 1;
-  }
+    echo running bootstrap...
+    ./bootstrap && bootstrap_hash > $curr_status \
+      || { echo "Failed to bootstrap gnulib, please investigate."; exit 1; }
 fi
 
 cd "$THEDIR"