build-system: Add pre-release target

This is a lighter weight version of the release target, intended to
support uploading release candidates to Debian.

As a side effect, filter ~ out of VERSION to make tag names.
This commit is contained in:
David Bremner 2011-07-29 17:45:12 +02:00
parent 97d090c105
commit 839b7f20f6

View file

@ -15,11 +15,16 @@ IS_GIT=$(shell if [ -d .git ] ; then echo yes ; else echo no; fi)
VERSION:=$(shell cat ${srcdir}/version) VERSION:=$(shell cat ${srcdir}/version)
ifneq ($(MAKECMDGOALS),release) ifneq ($(MAKECMDGOALS),release)
ifneq ($(MAKECMDGOALS),release-message) ifneq ($(MAKECMDGOALS),release-message)
ifneq ($(MAKECMDGOALS),pre-release)
ifeq ($(IS_GIT),yes) ifeq ($(IS_GIT),yes)
VERSION:=$(shell git describe --match '[0-9.]*') VERSION:=$(shell git describe --match '[0-9.]*')
endif endif
endif endif
endif endif
endif
UPSTREAM_TAG=$(subst ~,_,$(VERSION))
DEB_TAG=debian/$(UPSTREAM_TAG)-1
RELEASE_HOST=notmuchmail.org RELEASE_HOST=notmuchmail.org
RELEASE_DIR=/srv/notmuchmail.org/www/releases RELEASE_DIR=/srv/notmuchmail.org/www/releases
@ -96,11 +101,11 @@ release: verify-source-tree-and-version
$(MAKE) VERSION=$(VERSION) verify-newer $(MAKE) VERSION=$(VERSION) verify-newer
$(MAKE) VERSION=$(VERSION) clean $(MAKE) VERSION=$(VERSION) clean
$(MAKE) VERSION=$(VERSION) test $(MAKE) VERSION=$(VERSION) test
git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION) git tag -s -m "$(PACKAGE) $(VERSION) release" $(UPSTREAM_TAG)
$(MAKE) VERSION=$(VERSION) $(GPG_FILE) $(MAKE) VERSION=$(VERSION) $(GPG_FILE)
ln -sf $(TAR_FILE) $(DEB_TAR_FILE) ln -sf $(TAR_FILE) $(DEB_TAR_FILE)
pristine-tar commit $(DEB_TAR_FILE) $(VERSION) pristine-tar commit $(DEB_TAR_FILE) $(UPSTREAM_TAG)
git tag -s -m "$(PACKAGE) Debian $(VERSION)-1 upload (same as $(VERSION))" debian/$(VERSION)-1 git tag -s -m "$(PACKAGE) Debian $(VERSION)-1 upload (same as $(VERSION))" $(DEB_TAG)
mkdir -p releases mkdir -p releases
mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
$(MAKE) VERSION=$(VERSION) release-message > $(PACKAGE)-$(VERSION).announce $(MAKE) VERSION=$(VERSION) release-message > $(PACKAGE)-$(VERSION).announce
@ -111,6 +116,18 @@ ifeq ($(REALLY_UPLOAD),yes)
endif endif
@echo "Please send a release announcement using $(PACKAGE)-$(VERSION).announce as a template." @echo "Please send a release announcement using $(PACKAGE)-$(VERSION).announce as a template."
.PHONY: pre-release
pre-release:
$(MAKE) VERSION=$(VERSION) clean
$(MAKE) VERSION=$(VERSION) test
git tag -s -m "$(PACKAGE) $(VERSION) release" $(UPSTREAM_TAG)
git tag -s -m "$(PACKAGE) Debian $(VERSION)-1 upload (same as $(VERSION))" $(DEB_TAG)
$(MAKE) VERSION=$(VERSION) $(TAR_FILE)
ln -sf $(TAR_FILE) $(DEB_TAR_FILE)
pristine-tar commit $(DEB_TAR_FILE) $(UPSTREAM_TAG)
mkdir -p releases
mv $(TAR_FILE) $(DEB_TAR_FILE) releases
.PHONY: release-message .PHONY: release-message
release-message: release-message:
@echo "To: notmuch@notmuchmail.org" @echo "To: notmuch@notmuchmail.org"