From f272378d52e28b937219121e8b90883df8a10012 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 10 Jul 2009 10:01:04 +0200 Subject: 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. --- autogen.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'autogen.sh') diff --git a/autogen.sh b/autogen.sh index e6bde33ae..415f3ec6d 100755 --- a/autogen.sh +++ b/autogen.sh @@ -54,6 +54,17 @@ if test -z "$*"; then echo "to pass any to it, please specify them on the $0 command line." fi +# 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) +if test "$t" = "$(cat $curr_status 2>/dev/null)"; then + : # good, it's up to date +else + echo running bootstrap... + ./bootstrap && echo "$t" > $curr_status +fi + # Automake requires that ChangeLog exist. touch ChangeLog -- cgit v1.2.3