diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-08-29 12:45:45 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-08-29 12:45:45 -0700 |
commit | 46a176a741ad4d19d81946b4232c0c26fb8bdbc8 (patch) | |
tree | 05035e8ce48019622a2d643d45b0ed020ae5259c | |
parent | 0a582a3a0f18d359792a523d3ca3ae25eba0b279 (diff) | |
download | clogger-46a176a741ad4d19d81946b4232c0c26fb8bdbc8.tar.gz |
-rw-r--r-- | GNUmakefile | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/GNUmakefile b/GNUmakefile index 3481564..913f821 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -32,6 +32,45 @@ test: test-ext test-pure Manifest.txt: git ls-files > $@+ cmp $@+ $@ || mv $@+ $@ - $(RM) -f $@+ + $(RM) $@+ -.PHONY: test doc Manifest.txt +VERSION := $(shell git describe 2>/dev/null | sed 's/^v//') + +ifneq ($(VERSION),) +v := /^v$(VERSION)$$/ +vPREV := $(shell git tag -l 2>/dev/null | sed -n -e '$(v)!h' -e '$(v){x;p;q}') +release_notes := release_notes-$(VERSION).txt +release_changes := release_changes-$(VERSION).txt +$(release_changes): verify + git diff --stat $(vPREV) v$(VERSION) > $@+ + echo >> $@+ + git log $(vPREV) v$(VERSION) >> $@+ + $(VISUAL) $@+ && test -s $@+ && mv $@+ $@ +$(release_notes): verify package + gem spec pkg/clogger-$(VERSION).gem description | sed -ne '/\w/p' > $@+ + git cat-file tag v$(VERSION) | awk 'p>1{print $$0}/^$$/{++p}' >> $@+ + $(VISUAL) $@+ && test -s $@+ && mv $@+ $@ +verify: + @test -n "$(VERSION)" || { echo >&2 VERSION= not defined; exit 1; } + git rev-parse --verify refs/tags/v$(VERSION)^{} + @test -n "$(VISUAL)" || { echo >&2 VISUAL= not defined; exit 1; } + +package: verify + git diff-index --quiet HEAD^0 + test `git rev-parse --verify HEAD^0` = \ + `git rev-parse --verify refs/tags/v$(VERSION)^{}` + $(RM) -r pkg + unset CLOGGER_EXT; rake package VERSION=$(VERSION) + CLOGGER_EXT=1 rake package VERSION=$(VERSION) + +# not using Hoe's release system since we release 2 gems but only one tgz +release: package Manifest.txt $(release_notes) $(release_changes) + rubyforge add_release -f -n $(release_notes) -c $(release_changes) \ + clogger clogger $(VERSION) pkg/clogger-$(VERSION).gem + rubyforge add_file \ + clogger clogger $(VERSION) pkg/clogger-$(VERSION).tgz + rubyforge add_release -f -n $(release_notes) -c $(release_changes) \ + clogger clogger_ext $(VERSION) pkg/clogger_ext-$(VERSION).gem +endif + +.PHONY: test doc Manifest.txt release |