homepage: drop index.html and created.rid
[msgthr.git] / GNUmakefile
blobb9c3e222113fd36e72d18164bc0533f2e5c30201
1 # Copyright (C) 2016 all contributors <msgthr-public@80x24.org>
2 # License: GPL-2.0+ <https://www.gnu.org/licenses/gpl-2.0.txt>
3 all::
4 pkg = msgthr
5 RUBY = ruby
6 lib := lib
7 VERSION := 1.2.2
8 RSYNC_DEST := 80x24.org:/srv/80x24/msgthr/
10 RSYNC = rsync
11 OLDDOC = olddoc
12 RDOC = rdoc
14 all:: test
15 test_units := $(wildcard test/test_*.rb)
16 test: $(test_units)
17 $(test_units):
18 $(RUBY) -w -I $(lib) $@ -v
20 check-warnings:
21 @(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
22 do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
24 check: test
26 pkggem := pkg/$(pkg)-$(VERSION).gem
28 fix-perms:
29 git ls-tree -r HEAD | awk '/^100644 / {print $$NF}' | xargs chmod 644
31 gem: $(pkggem)
33 install-gem: $(pkggem)
34 gem install --local $(CURDIR)/$<
36 $(pkggem): .manifest NEWS
37 VERSION=$(VERSION) gem build $(pkg).gemspec
38 mkdir -p pkg
39 mv $(@F) $@
41 pkg_extra :=
43 .manifest: fix-perms
44 git ls-files | LC_ALL=C sort >$@+
45 cmp $@+ $@ || mv $@+ $@; rm -f $@+
47 package: $(pkggem)
49 NEWS: .olddoc.yml
50 $(OLDDOC) prepare || echo 'See https://80x24.org/msgthr/NEWS' >$@
51 LATEST: NEWS
53 doc:: .document .olddoc.yml
54 -find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
55 $(RM) -r doc
56 $(OLDDOC) prepare
57 $(RDOC) -f dark216
59 # this requires GNU coreutils variants
60 ifneq ($(RSYNC_DEST),)
61 publish_doc:
62 -git set-file-times
63 $(MAKE) doc
64 mkdir -p www
65 $(RM) -r www/rdoc
66 mv doc www/rdoc
67 install -m644 README www/README
68 install -m644 NEWS www/NEWS
69 install -m644 NEWS.atom.xml www/NEWS.atom.xml
70 for i in $$(find www -type f ! -regex '^.*\.gz$$'); do \
71 gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
72 $(RSYNC) -av www/ $(RSYNC_DEST) \
73 --exclude index.html* --exclude created.rid*
74 git ls-files | xargs touch
75 endif
77 .PHONY: all test $(test_units)
78 .PHONY: check-warnings fix-perms