ext: store each response element explicitly
[clogger.git] / GNUmakefile
blobb57c947f0e6456392862c941e568004d1825ae5a
1 all:: test
2 ruby = ruby
4 -include local.mk
6 ifeq ($(DLEXT),) # "so" for Linux
7 DLEXT := $(shell $(ruby) -rrbconfig -e 'puts Config::CONFIG["DLEXT"]')
8 endif
10 ifeq ($(RUBY_VERSION),)
11 RUBY_VERSION := $(shell $(ruby) -e 'puts RUBY_VERSION')
12 endif
14 ext/clogger_ext/Makefile: ext/clogger_ext/clogger.c ext/clogger_ext/extconf.rb
15 cd ext/clogger_ext && $(ruby) extconf.rb
17 ext/clogger_ext/clogger.$(DLEXT): ext/clogger_ext/Makefile
18 $(MAKE) -C ext/clogger_ext
20 clean:
21 -$(MAKE) -C ext/clogger_ext clean
22 $(RM) ext/clogger_ext/Makefile lib/clogger_ext.$(DLEXT)
24 test-ext: ext/clogger_ext/clogger.$(DLEXT)
25 $(ruby) -Iext/clogger_ext:lib test/test_clogger.rb
27 test-pure:
28 CLOGGER_PURE=t $(ruby) -Ilib test/test_clogger.rb
30 test: test-ext test-pure
32 Manifest.txt:
33 git ls-files > $@+
34 cmp $@+ $@ || mv $@+ $@
35 $(RM) $@+
37 VERSION := $(shell git describe 2>/dev/null | sed 's/^v//')
39 ifneq ($(VERSION),)
40 v := /^v$(VERSION)$$/
41 vPREV := $(shell git tag -l 2>/dev/null | sed -n -e '$(v)!h' -e '$(v){x;p;q}')
42 release_notes := release_notes-$(VERSION).txt
43 release_changes := release_changes-$(VERSION).txt
44 $(release_changes): verify
45 git diff --stat $(vPREV) v$(VERSION) > $@+
46 echo >> $@+
47 git log $(vPREV)..v$(VERSION) >> $@+
48 $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
49 $(release_notes): verify package
50 gem spec pkg/clogger-$(VERSION).gem description | sed -ne '/\w/p' > $@+
51 echo >> $@+
52 git cat-file tag v$(VERSION) | awk 'p>1{print $$0}/^$$/{++p}' >> $@+
53 $(VISUAL) $@+ && test -s $@+ && mv $@+ $@
54 verify:
55 @test -n "$(VERSION)" || { echo >&2 VERSION= not defined; exit 1; }
56 git rev-parse --verify refs/tags/v$(VERSION)^{}
57 @test -n "$(VISUAL)" || { echo >&2 VISUAL= not defined; exit 1; }
59 package: verify
60 git diff-index --quiet HEAD^0
61 test `git rev-parse --verify HEAD^0` = \
62 `git rev-parse --verify refs/tags/v$(VERSION)^{}`
63 $(RM) -r pkg
64 unset CLOGGER_EXT; rake package VERSION=$(VERSION)
65 CLOGGER_EXT=1 rake package VERSION=$(VERSION)
67 # not using Hoe's release system since we release 2 gems but only one tgz
68 release: package Manifest.txt $(release_notes) $(release_changes)
69 rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
70 clogger clogger $(VERSION) pkg/clogger-$(VERSION).gem
71 rubyforge add_file \
72 clogger clogger $(VERSION) pkg/clogger-$(VERSION).tgz
73 rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
74 clogger clogger_ext $(VERSION) pkg/clogger_ext-$(VERSION).gem
75 rake post_news
76 endif
78 .PHONY: test doc Manifest.txt release