From: Jim Meyering Date: Sat, 2 May 2009 20:20:10 +0000 (+0200) Subject: build: ensure that a release build fails when a submodule is unclean X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=181a69f91ee2e3699b5e4a5a21f1fc3c843568e5;hp=52ba377209500b66aaeb6142b3cd979a406a0d88;p=pspp build: ensure that a release build fails when a submodule is unclean * top/maint.mk (no-submodule-changes): New rule. (alpha beta major): Depend on it. --- diff --git a/ChangeLog b/ChangeLog index aacbc0c004..3d72119df1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-02 Jim Meyering + + build: ensure that a release build fails when a submodule is unclean + * top/maint.mk (no-submodule-changes): New rule. + (alpha beta major): Depend on it. + 2009-05-02 Bruno Haible Remove incompatibility between modules fnmatch-posix and fnmatch-gnu. diff --git a/top/maint.mk b/top/maint.mk index b7f68680ba..f34f6bf04b 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -676,9 +676,21 @@ define emit-commit-log '* cfg.mk (old_NEWS_hash): Auto-update.' endef +.PHONY: no-submodule-changes +no-submodule-changes: + if test -d .git; then \ + diff=$$(git submodule -q foreach git diff-index --name-only HEAD) \ + || exit 1; \ + case $$diff in '') ;; \ + *) echo '$(ME): submodule files are locally modified:'; \ + echo "$$diff"; exit 1;; esac; \ + else \ + : ; \ + fi + .PHONY: alpha beta major ALL_RECURSIVE_TARGETS += alpha beta major -alpha beta major: $(local-check) writable-files +alpha beta major: $(local-check) writable-files no-submodule-changes test $@ = major \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\