Skip to content

Commit

Permalink
build: rerun bootstrap if po/Makevars got nuked
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ebblake committed Aug 4, 2010
1 parent 634ea3f commit 5f211d4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
8 changes: 6 additions & 2 deletions autogen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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...
Expand Down
1 change: 1 addition & 0 deletions cfg.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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; \
Expand Down

0 comments on commit 5f211d4

Please sign in to comment.