build: automatically rerun ./bootstrap when needed

When "git pull" (or any other operation) brings in a new version of the
gnulib git submodule, you must rerun the autogen.sh script.  With this
change, "make" now fails and tells you to run ./autogen.sh, when needed.
* autogen.sh: Maintain a new file, .git-module-status, containing
the current submodule status.  If it doesn't exist or its content
is different from what "git submodule status" prints, then run
./bootstrap
* .gitignore: Add .git-module-status
* cfg.mk: Diagnose out of date submodule and fail.
* README-hacking: Update not to mention bootstrap.
* Makefile.am (MAINTAINERCLEANFILES): Add .git-module-status,
so that "make maintainerclean" will remove it.
This commit is contained in:
Jim Meyering
2009-07-10 13:39:28 +02:00
parent e335b2ca90
commit f272378d52
5 changed files with 26 additions and 7 deletions
+10
View File
@@ -230,3 +230,13 @@ sc_libvirt_unmarked_diagnostics:
# We don't use this feature of maint.mk.
prev_version_file = /dev/null
ifeq (0,$(MAKELEVEL))
_curr_status = .git-module-status
_update_required := \
$(shell t=$$(git submodule status); \
test "$$t" = "$$(cat $(_curr_status) 2>/dev/null)"; echo $$?)
ifeq (1,$(_update_required))
$(error gnulib update required; run ./autogen.sh first)
endif
endif