diff options
Diffstat (limited to 'GNUmakefile')
-rw-r--r-- | GNUmakefile | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/GNUmakefile b/GNUmakefile index 201d6f3..20ad53d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,7 +1,9 @@ # use GNU Make to run tests in parallel, and without depending on RubyGems all:: +MRI = ruby RUBY = ruby RAKE = rake +RSYNC = rsync GIT_URL = git://git.bogomips.org/zbatery.git GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE @@ -14,9 +16,11 @@ endif ifeq ($(RUBY_VERSION),) RUBY_VERSION := $(shell $(RUBY) -e 'puts RUBY_VERSION') endif +RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))') base_bins := zbatery bins := $(addprefix bin/, $(base_bins)) +man1_rdoc := $(addsuffix _1, $(base_bins)) man1_bins := $(addsuffix .1, $(base_bins)) man1_paths := $(addprefix man/man1/, $(man1_bins)) @@ -76,26 +80,52 @@ cgit_atom := http://git.bogomips.org/cgit/zbatery.git/atom/?h=master atom = <link rel="alternate" title="Atom feed" href="$(1)" \ type="application/atom+xml"/> -# using rdoc 2.4.1+ +# using rdoc 2.5.x+ doc: .document NEWS ChangeLog - for i in $(man1_bins); do > $$i; done - rdoc -Na -t "$(shell sed -ne '1s/^= //p' README)" + for i in $(man1_rdoc); do echo > $$i; done + find bin lib -type f -name '*.rbc' -exec rm -f '{}' ';' + rdoc -t "$(shell sed -ne '1s/^= //p' README)" install -m644 COPYING doc/COPYING install -m644 $(shell grep '^[A-Z]' .document) doc/ $(MAKE) -C Documentation install-html install-man install -m644 $(man1_paths) doc/ cd doc && for i in $(base_bins); do \ + $(RM) 1.html $${i}.1.html; \ sed -e '/"documentation">/r man1/'$$i'.1.html' \ - < $${i}_1.html > tmp && mv tmp $${i}_1.html; done - $(RUBY) -i -p -e \ + < $${i}_1.html > tmp && mv tmp $${i}_1.html; \ + ln $${i}_1.html $${i}.1.html; \ + done + $(MRI) -i -p -e \ '$$_.gsub!("</title>",%q{\&$(call atom,$(cgit_atom))})' \ doc/ChangeLog.html - $(RUBY) -i -p -e \ + $(MRI) -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 - $(RM) $(man1_bins) + $(RM) $(man1_rdoc) + +# publishes docs to http://zbatery.bogomip.org/ +publish_doc: + -git set-file-times + $(RM) -r doc ChangeLog NEWS + $(MAKE) doc LOG_VERSION=$(shell git tag -l | tail -1) + awk 'BEGIN{RS="=== ";ORS=""}NR==2{sub(/\n$$/,"");print RS""$$0 }' \ + < NEWS > doc/LATEST + find doc/images doc/js -type f | \ + TZ=UTC xargs touch -d '1970-01-01 00:00:01' doc/rdoc.css + $(MAKE) doc_gz + chmod 644 $$(find doc -type f) + $(RSYNC) -av doc/ zbatery.bogomip.org:/srv/zbatery/ + 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 ifneq ($(VERSION),) rfproject := rainbows @@ -152,11 +182,13 @@ 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) + $(RAKE) fm_update VERSION=$(VERSION) else gem install-gem: GIT-VERSION-FILE $(MAKE) $@ VERSION=$(GIT_VERSION) |