]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: rerun bootstrap if po/Makevars got nuked
authorEric Blake <eblake@redhat.com>
Wed, 4 Aug 2010 20:35:41 +0000 (14:35 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 4 Aug 2010 20:36:14 +0000 (14:36 -0600)
There has been a frequent complaint of:

make[2]: Entering directory `/home/remote/eblake/libvirt/po'
make[2]: *** No rule to make target `/config.status', needed by `Makefile'.  Stop.

It happens after nuking and regenerating the po directory,
which is a common action after running anything like
'make dist' or 'make rpm' that dirties all the .po files.

Teach autogen.sh that it must regenerate po/Makevars to avoid
the missing variable declaration, and teach cfg.mk to recognize
that a nuked po directory is cause to rerun autogen.sh.

* cfg.mk (_update_required): Check for po/Makevars.
* autogen.sh (bootstrap): Run bootstrap if it got lost.
Diagnosed by Justin Clift.

autogen.sh
cfg.mk

index 2f5b42d638e318ea237d62cd1a4035ec73816020..c0a1c4ae0d93a83b7e7265c3f350477736af2738 100755 (executable)
@@ -74,10 +74,14 @@ bootstrap_hash()
 
 # 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.
+# 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)"; then
-    : # good, it's up to date, all we need is autoreconf
+if test "$t" = "$(cat $curr_status 2>/dev/null)" \
+    && test -f "$THEDIR/po/Makevars"; then
+    # good, it's up to date, all we need is autoreconf
     autoreconf -if
 else
     echo running bootstrap...
diff --git a/cfg.mk b/cfg.mk
index e12265e2e4e0f06cef4ee3837ce608662faef7c6..7226828a58947ba6ed06f69ca12b0cc14b18f3df 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -459,6 +459,7 @@ ifeq (0,$(MAKELEVEL))
   # b653eda3ac4864de205419d9f41eec267cb89eeb
   _submodule_hash = sed 's/^[ +-]//;s/ .*//'
   _update_required := $(shell                                          \
+      test -f po/Makevars || { echo 1; exit; };                                \
       cd '$(srcdir)';                                                  \
       actual=$$(git submodule status | $(_submodule_hash);             \
                git hash-object bootstrap.conf;                         \