GNUmakefile in sleepy_penguin-1.0.0 vs GNUmakefile in sleepy_penguin-1.1.1
- old
+ new
@@ -1,11 +1,10 @@
# use GNU Make to run tests in parallel, and without depending on RubyGems
all::
RUBY = ruby
RAKE = rake
RSYNC = rsync
-GIT_URL = git://git.bogomips.org/sleepy_penguin.git
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
@./GIT-VERSION-GEN
-include GIT-VERSION-FILE
-include local.mk
@@ -26,64 +25,31 @@
$(prep_setup_rb)
setup_rb_files := .config InstalledFiles
prep_setup_rb := @-$(RM) $(setup_rb_files);$(MAKE) -C $(ext) clean
+extdir := ext/sleepy_penguin
clean:
- -$(MAKE) -C ext/sleepy_penguin clean
- $(RM) $(setup_rb_files) ext/sleepy_penguin/Makefile
+ -$(MAKE) -C $(extdir) clean
+ $(RM) $(setup_rb_files) $(extdir)/Makefile
-pkg_extra := GIT-VERSION-FILE NEWS ChangeLog
-manifest: $(pkg_extra)
- $(RM) .manifest
- $(MAKE) .manifest
+pkg_extra := GIT-VERSION-FILE NEWS ChangeLog LATEST
+ChangeLog: GIT-VERSION-FILE .wrongdoc.yml
+ wrongdoc prepare
-.manifest:
- (git ls-files && \
- for i in $@ $(pkg_extra); \
- do echo $$i; done) | LC_ALL=C sort > $@+
+.manifest: ChangeLog
+ (git ls-files && for i in $@ $(pkg_extra); do echo $$i; done) | \
+ LC_ALL=C sort > $@+
cmp $@+ $@ || mv $@+ $@
$(RM) $@+
-NEWS: GIT-VERSION-FILE
- $(RAKE) -s news_rdoc > $@+
- mv $@+ $@
-
-latest: NEWS
- @awk 'BEGIN{RS="=== ";ORS=""}NR==2{sub(/\n$$/,"");print RS""$$0 }' $<
-
-SINCE =
-ChangeLog: LOG_VERSION = \
- $(shell git rev-parse -q "$(GIT_VERSION)" >/dev/null 2>&1 && \
- echo $(GIT_VERSION) || git describe)
-ifneq ($(SINCE),)
-ChangeLog: log_range = v$(SINCE)..$(LOG_VERSION)
-endif
-ChangeLog: GIT-VERSION-FILE
- @echo "ChangeLog from $(GIT_URL) ($(log_range))" > $@+
- @echo >> $@+
- git log $(log_range) | sed -e 's/^/ /' >> $@+
- mv $@+ $@
-
-news_atom := http://bogomips.org/sleepy_penguin/NEWS.atom.xml
-cgit_atom := http://git.bogomips.org/cgit/sleepy_penguin.git/atom/?h=master
-atom = <link rel="alternate" title="Atom feed" href="$(1)" \
- type="application/atom+xml"/>
-
-# using rdoc 2.5.x
-doc: .document NEWS ChangeLog
- rdoc -t "$(shell sed -ne '1s/^= //p' README)"
+doc: .document .wrongdoc.yml
+ find lib ext -type f -name '*.rbc' -exec rm -f '{}' ';'
+ $(RM) -r doc
+ wrongdoc all
install -m644 COPYING doc/COPYING
install -m644 $(shell grep '^[A-Z]' .document) doc/
- $(RUBY) -i -p -e \
- '$$_.gsub!("</title>",%q{\&$(call atom,$(cgit_atom))})' \
- doc/ChangeLog.html
- $(RUBY) -i -p -e \
- '$$_.gsub!("</title>",%q{\&$(call atom,$(news_atom))})' \
- doc/NEWS.html doc/README.html
- $(RAKE) -s news_atom > doc/NEWS.atom.xml
- cd doc && ln README.html tmp && mv tmp index.html
ifneq ($(VERSION),)
rfproject := rainbows
rfpackage := sleepy_penguin
pkggem := pkg/$(rfpackage)-$(VERSION).gem
@@ -92,14 +58,14 @@
release_changes := release_changes-$(VERSION)
release-notes: $(release_notes)
release-changes: $(release_changes)
$(release_changes):
- $(RAKE) -s release_changes > $@+
+ wrongdoc release_changes > $@+
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
$(release_notes):
- GIT_URL=$(GIT_URL) $(RAKE) -s release_notes > $@+
+ wrongdoc release_notes > $@+
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
# ensures we're actually on the tagged $(VERSION), only used for release
verify:
test x"$(shell umask)" = x0022
@@ -115,33 +81,33 @@
gem: $(pkggem)
install-gem: $(pkggem)
gem install $(CURDIR)/$<
-$(pkggem): manifest fix-perms
+$(pkggem): .manifest fix-perms
gem build $(rfpackage).gemspec
mkdir -p pkg
mv $(@F) $@
$(pkgtgz): distdir = $(basename $@)
$(pkgtgz): HEAD = v$(VERSION)
-$(pkgtgz): manifest fix-perms
+$(pkgtgz): .manifest fix-perms
@test -n "$(distdir)"
$(RM) -r $(distdir)
mkdir -p $(distdir)
- tar c `cat .manifest` | (cd $(distdir) && tar x)
- cd pkg && tar c $(basename $(@F)) | gzip -9 > $(@F)+
+ tar cf - `cat .manifest` | (cd $(distdir) && tar xf -)
+ cd pkg && tar cf - $(basename $(@F)) | gzip -9 > $(@F)+
mv $@+ $@
package: $(pkgtgz) $(pkggem)
test-release: verify package $(release_notes) $(release_changes)
release: verify package $(release_notes) $(release_changes)
# make tgz release on RubyForge
rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
$(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
- # push gem to Gemcutter
+ # push gem to RubyGems.org
gem push $(pkggem)
# in case of gem downloads from RubyForge releases page
-rubyforge add_file \
$(rfproject) $(rfpackage) $(VERSION) $(pkggem)
$(RAKE) raa_update VERSION=$(VERSION)
@@ -149,16 +115,16 @@
else
gem install-gem: GIT-VERSION-FILE
$(MAKE) $@ VERSION=$(GIT_VERSION)
endif
-extdir := ext/sleepy_penguin
ext := $(extdir)/sleepy_penguin_ext.$(DLEXT)
$(extdir)/Makefile: $(extdir)/extconf.rb
cd $(@D) && $(RUBY) extconf.rb
-$(ext): $(wildcard $(extdir)/*.c) $(wildcard $(extdir)/*.h) $(extdir)/Makefile
+c_files := $(wildcard $(extdir)/*.[ch] $(extdir)/*/*.h)
+$(ext): $(c_files) $(extdir)/Makefile
$(MAKE) -C $(@D)
all:: test
build: $(ext)
@@ -169,24 +135,21 @@
$(RUBY) -I lib:$(extdir) $@
# this requires GNU coreutils variants
publish_doc:
-git set-file-times
- $(RM) -r doc ChangeLog NEWS
- $(MAKE) doc LOG_VERSION=$(shell git tag -l | tail -1)
- $(MAKE) -s latest > doc/LATEST
- find doc/images doc/js -type f | \
- TZ=UTC xargs touch -d '1970-01-01 00:00:00' doc/rdoc.css
+ $(MAKE) doc
+ find doc/images -type f | \
+ TZ=UTC xargs touch -d '1970-01-01 00:00:06' doc/rdoc.css
$(MAKE) doc_gz
chmod 644 $$(find doc -type f)
$(RSYNC) -av doc/ bogomips.org:/srv/bogomips/sleepy_penguin/
git ls-files | xargs touch
# Create gzip variants of the same timestamp as the original so nginx
# "gzip_static on" can serve the gzipped versions directly.
doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.\(gif\|jpg\|png\|gz\)$$')
doc_gz:
- touch doc/NEWS.atom.xml -d "$$(awk 'NR==1{print $$4,$$5,$$6}' NEWS)"
for i in $(docs); do \
gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
-.PHONY: .FORCE-GIT-VERSION-FILE doc manifest man test $(test_units)
+.PHONY: .FORCE-GIT-VERSION-FILE doc test $(test_units)