# Maybe it's not worth it to support non-GNU make, though...
RSYNC = rsync
RSYNC_DEST = public-inbox.org:/srv/public-inbox/
+MAN = man
+
+# same as pod2text
+COLUMNS = 76
+
txt := INSTALL README COPYING TODO HACKING
dtxt := design_notes.txt design_www.txt dc-dlvr-spam-flow.txt hosted.txt
dtxt += marketing.txt
# MakeMaker only seems to support manpage sections 1 and 3...
m1 =
-m1 += public-inbox-mda
+m1 += public-inbox-compact
m1 += public-inbox-httpd
+m1 += public-inbox-index
+m1 += public-inbox-mda
m1 += public-inbox-nntpd
m1 += public-inbox-watch
-m1 += public-inbox-index
+m1 += public-inbox-xcpdb
m5 =
m5 += public-inbox-config
m5 += public-inbox-v1-format
all :: $(mantxt)
Documentation/%.txt : Documentation/%.pod
- $(podtext) $< $@+ && mv $@+ $@
+ $(podtext) $< $@+ && touch -r $< $@+ && mv $@+ $@
txt2pre = $(PERL) -I lib ./Documentation/txt2pre <$< >$@+ && \
touch -r $< $@+ && mv $@+ $@
Documentation/standards.txt : Documentation/standards.perl
- $(PERL) $< >$@+ && mv $@+ $@
+ $(PERL) $< >$@+ && touch -r $< $@+ && mv $@+ $@
Documentation/%.html: Documentation/%.txt
$(txt2pre)
gz_docs := $(addsuffix .gz, $(docs) $(docs_html))
rsync_docs := $(gz_docs) $(docs) $(docs_html)
+# external manpages which we host ourselves, since some packages
+# (currently just Xapian) doesn't host manpages themselves.
+xtxt :=
+xtxt += .copydatabase.1
+xtxt += .xapian-compact.1
+xtxt := $(addprefix Documentation/.x/, $(addsuffix .txt, $(xtxt)))
+xdocs := $(xtxt)
+xdocs_html := $(addsuffix .html, $(subst .txt,,$(xtxt)))
+gz_xdocs := $(addsuffix .gz, $(xdocs) $(xdocs_html))
+rsync_xdocs := $(gz_xdocs) $(xdocs_html) $(xdocs)
+xdoc: $(xdocs) $(xdocs_html)
+
+Documentation/.x/%.txt::
+ @-mkdir -p $(@D)
+ $(PERL) -w Documentation/extman.perl $@ >$@+
+ mv $@+ $@
+
+Documentation/.x/%.html: Documentation/.x/%.txt
+ $(txt2pre)
+
doc: $(docs)
%.gz: %
mv $@+ $@
gz-doc: $(gz_docs)
+
+gz-xdoc: $(gz_xdocs)
+
rsync-doc:
- git set-file-times $(docs) $(txt)
- $(MAKE) gz-doc
- $(RSYNC) --chmod=Fugo=r -av $(rsync_docs) $(RSYNC_DEST)
+ # /usr/share/doc/rsync/scripts/git-set-file-times{.gz} on Debian systems
+ # It is also at: https://yhbt.net/git-set-file-times
+ -git set-file-times $(docs) $(txt)
+ $(MAKE) gz-doc gz-xdoc
+ $(RSYNC) --chmod=Fugo=r -av $(rsync_docs) $(rsync_xdocs) $(RSYNC_DEST)
+
clean-doc:
$(RM) $(man1) $(man5) $(man7) $(gz_docs) $(docs_html) $(mantxt)
+ $(RM) $(gz_xdocs) $(xdocs_html) $(xdocs)
clean :: clean-doc