diff --git a/autogen.sh b/autogen.sh index ff13fd1486..b64521e5ed 100755 --- a/autogen.sh +++ b/autogen.sh @@ -8,8 +8,8 @@ THEDIR=`pwd` cd "$srcdir" test -f src/libvirt.c || { - echo "You must run this script in the top-level libvirt directory" - exit 1 + echo "You must run this script in the top-level libvirt directory" + exit 1 } @@ -52,16 +52,19 @@ bootstrap_hash() # Also, running 'make rpm' tends to litter the po/ directory, and some people # like to run 'git clean -x -f po' to fix it; but only ./bootstrap regenerates # the required file po/Makevars. -curr_status=.git-module-status -t=$(bootstrap_hash; git diff .gnulib) -if test "$t" = "$(cat $curr_status 2>/dev/null)" \ - && test -f "po/Makevars"; then - # good, it's up to date, all we need is autoreconf - autoreconf -if -else - echo running bootstrap$no_git... - ./bootstrap$no_git --bootstrap-sync && bootstrap_hash > $curr_status \ - || { echo "Failed to bootstrap, please investigate."; exit 1; } +# Only run bootstrap from a git checkout, never from a tarball. +if test -d .git; then + curr_status=.git-module-status + t=$(bootstrap_hash; git diff .gnulib) + if test "$t" = "$(cat $curr_status 2>/dev/null)" \ + && test -f "po/Makevars"; then + # good, it's up to date, all we need is autoreconf + autoreconf -if + else + echo running bootstrap$no_git... + ./bootstrap$no_git --bootstrap-sync && bootstrap_hash > $curr_status \ + || { echo "Failed to bootstrap, please investigate."; exit 1; } + fi fi cd "$THEDIR" diff --git a/cfg.mk b/cfg.mk index 120f452bc0..4bbeb966aa 100644 --- a/cfg.mk +++ b/cfg.mk @@ -507,6 +507,7 @@ ifeq (0,$(MAKELEVEL)) _submodule_hash = sed 's/^[ +-]//;s/ .*//' _update_required := $(shell \ cd '$(srcdir)'; \ + test -d .git || { echo 0; exit; }; \ test -f po/Makevars || { echo 1; exit; }; \ actual=$$(git submodule status | $(_submodule_hash); \ git hash-object bootstrap.conf; \