From 00263dd1a9e08ab1fa947fa58d1c2ad62e8b9653 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Thu, 15 Apr 2010 20:03:30 -0700 Subject: make release: Enforce a clean source tree before release. Where by clean, we check that no files are known to git to be modified. --- Makefile.local | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'Makefile.local') diff --git a/Makefile.local b/Makefile.local index 98d69c4d..e1120727 100644 --- a/Makefile.local +++ b/Makefile.local @@ -69,7 +69,7 @@ dist: $(TAR_FILE) # We invoke make recursively only to force ordering of our phony # targets in the case of parallel invocation of make (-j). .PHONY: release -release: verify-version +release: verify-no-dirty-code $(MAKE) test $(MAKE) $(GPG_FILE) $(MAKE) verify-newer @@ -116,6 +116,21 @@ release-message: @echo "" @echo "For more about notmuch, see http://notmuchmail.org" +.PHONY: verify-no-dirty-code +verify-no-dirty-code: verify-version + @printf "Checking that source tree is clean..." +ifneq ($(shell git ls-files -m),) + @echo "No" + @echo "The following files have been modified since the most recent git commit:" + @echo "" + @git ls-files -m + @echo "" + @echo "The release will be made from the committed state, but perhaps you meant" + @echo "to commit this code first? Please clean this up to make it more clear." + @false +else + @echo "Good" +endif .PHONY: verify-version verify-version: -- cgit v1.2.3