7 ifeq ($(DLEXT
),) # "so" for Linux
8 DLEXT
:= $(shell $(ruby
) -rrbconfig
-e
'puts Config::CONFIG["DLEXT"]')
11 ext
/clogger_ext
/Makefile
: ext
/clogger_ext
/clogger.c ext
/clogger_ext
/extconf.rb
12 cd ext
/clogger_ext
&& $(ruby
) extconf.rb
14 ext
/clogger_ext
/clogger.
$(DLEXT
): ext
/clogger_ext
/Makefile
15 $(MAKE
) -C ext
/clogger_ext
18 -$(MAKE
) -C ext
/clogger_ext
clean
19 $(RM
) ext
/clogger_ext
/Makefile lib
/clogger_ext.
$(DLEXT
)
21 test-ext
: ext
/clogger_ext
/clogger.
$(DLEXT
)
22 $(ruby
) -Iext
/clogger_ext
:lib
test/test_clogger.rb
25 CLOGGER_PURE
=t
$(ruby
) -Ilib
test/test_clogger.rb
27 test: test-ext test-pure
30 $(rake
) -s history
> $@
+
34 (git ls-files
; for i in
$^
$@
; do echo
$$i; done
) | LC_ALL
=C
sort > $@
+
37 VERSION
:= $(shell git describe
2>/dev
/null | sed
's/^v//')
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-notes
: $(release_notes
)
45 release-changes
: $(release_changes
)
46 $(release_changes
): verify
47 git diff
--stat
$(vPREV
) v
$(VERSION
) > $@
+
49 git log
$(vPREV
)..v
$(VERSION
) >> $@
+
50 $(VISUAL
) $@
+ && test -s
$@
+ && mv
$@
+ $@
51 $(release_notes
): verify package
52 gem spec pkg
/clogger-
$(VERSION
).gem description | sed
-ne
'/\w/p' > $@
+
54 git cat-file tag v
$(VERSION
) | awk
'p>1{print $$0}/^$$/{++p}' >> $@
+
55 $(VISUAL
) $@
+ && test -s
$@
+ && mv
$@
+ $@
57 @
test -n
"$(VERSION)" ||
{ echo
>&2 VERSION
= not defined
; exit
1; }
58 git rev-parse
--verify refs
/tags/v
$(VERSION
)^
{}
59 @
test -n
"$(VISUAL)" ||
{ echo
>&2 VISUAL
= not defined
; exit
1; }
60 git diff-index
--quiet HEAD^
0
61 test `git rev-parse --verify HEAD^0` = \
62 `git rev-parse --verify refs/tags/v$(VERSION)^{}`
64 pkg
/clogger-
$(VERSION
).gem
: .manifest History clogger.gemspec
65 gem build clogger.gemspec
69 pkg
/clogger-
$(VERSION
).tgz
: HEAD
= v
$(VERSION
)
70 pkg
/clogger-
$(VERSION
).tgz
: .manifest History
71 $(RM
) -r
$(basename $@
)
72 git archive
--format
=tar --prefix=$(basename $@
)/ $(HEAD
) |
tar xv
73 install -m644
$^
$(basename $@
)
74 cd pkg
&& tar cv
$(basename $(@F
)) | gzip
-9 > $(@F
)+
77 package
: pkg
/clogger-
$(VERSION
).gem pkg
/clogger-
$(VERSION
).tgz
79 # not using Hoe's release system since we release 2 gems but only one tgz
80 release
: package
$(release_notes
) $(release_changes
)
81 rubyforge add_release
-f
-n
$(release_notes
) -a
$(release_changes
) \
82 clogger clogger
$(VERSION
) pkg
/clogger-
$(VERSION
).gem
84 clogger clogger
$(VERSION
) pkg
/clogger-
$(VERSION
).tgz
87 doc
: .document History
88 rdoc
-Na
-t
"$(shell sed -ne '1s/^= //p' README)"
89 install -m644 COPYING doc
/COPYING
90 cd doc
&& ln README.html tmp.html
&& mv tmp.html index.html
92 # publishes docs to http://clogger.rubyforge.org/
93 # this preserves timestamps as best as possible to help HTTP caches out
94 # git set-file-times can is here: http://git-scm.org/gitwiki/ExampleScripts
99 rsync
-av
--delete doc
/ rubyforge.org
:/var
/www
/gforge-projects
/clogger
/
100 git ls-files | xargs touch
102 .PHONY
: test doc .manifest release History