X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=Makefile.local;h=24612c1d09681c0cbf606244112b0f8df86c1a5b;hp=e112072743960951f3896f7b2944e4a11951cc91;hb=0786587f3cf42491629bbd00597b67c221086225;hpb=00263dd1a9e08ab1fa947fa58d1c2ad62e8b9653 diff --git a/Makefile.local b/Makefile.local index e1120727..24612c1d 100644 --- a/Makefile.local +++ b/Makefile.local @@ -9,7 +9,13 @@ # Between releases, (such as when compiling notmuch from the git # repository), we let git append identification of the actual commit. PACKAGE=notmuch -VERSION:=$(shell if [ -f version ]; then cat version; else git describe --match '[0-9.]*'; fi) + +VERSION:=$(shell cat version) +ifneq ($(MAKECMDGOALS),release) +ifneq ($(MAKECMDGOALS),release-message) +VERSION:=$(shell if git describe > /dev/null 2>&1; then git describe --match '[0-9.]*'; else cat version; fi) +endif +endif RELEASE_HOST=notmuchmail.org RELEASE_DIR=/srv/notmuchmail.org/www/releases @@ -50,9 +56,9 @@ test: all $(TAR_FILE): git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ HEAD > $(TAR_FILE).tmp - echo $(VERSION) > version - tar --append -f $(TAR_FILE).tmp --transform s_^_$(PACKAGE)-$(VERSION)/_ version - rm version + echo $(VERSION) > version.tmp + tar --append -f $(TAR_FILE).tmp --transform s_^_$(PACKAGE)-$(VERSION)/_ --transform 's_.tmp$$__' version.tmp + rm version.tmp gzip < $(TAR_FILE).tmp > $(TAR_FILE) @echo "Source is ready for release in $(TAR_FILE)" @@ -68,22 +74,24 @@ dist: $(TAR_FILE) # We invoke make recursively only to force ordering of our phony # targets in the case of parallel invocation of make (-j). +# +# We carefully ensure that our VERSION variable is passed down to any +# sub-ordinate make invocations (which won't otherwhise know that they +# are part of the release and need to take the version from the +# version file). .PHONY: release release: verify-no-dirty-code - $(MAKE) test - $(MAKE) $(GPG_FILE) - $(MAKE) verify-newer + $(MAKE) VERSION=$(VERSION) test + $(MAKE) VERSION=$(VERSION) $(GPG_FILE) + $(MAKE) VERSION=$(VERSION) verify-newer scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR) ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)" mkdir -p releases mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION) git push origin $(VERSION) - @echo "Please send a release announcement as follows:" - @echo "" - $(MAKE) release-message - $(MAKE) release-message > $(PACKAGE)-$(VERSION).announce - @echo "(This message is also available in $(PACKAGE)-$(VERSION).announce" + $(MAKE) VERSION=$(VERSION) release-message > $(PACKAGE)-$(VERSION).announce + @echo "Please send a release announcement using $(PACKAGE)-$(VERSION).announce as a template." .PHONY: release-message release-message: @@ -105,7 +113,7 @@ release-message: @echo "" @echo "What's new in notmuch $(VERSION)" @echo "=========================" - @sed -ne '/^[Nn]otmuch 0.1/{n;n;b NEWS}; d; :NEWS /^===/q; {p;n;b NEWS}' < NEWS | head -n -2 + @sed -ne '/^[Nn]otmuch $(VERSION)/{n;n;b NEWS}; d; :NEWS /^===/q; {p;n;b NEWS}' < NEWS | head -n -2 @echo "" @echo "What is notmuch" @echo "==============="