doc/Makefile: detect the right name for rst2man and rst2html
docutils uses the .py extension on the commands, and so do their installer.
Distribution packages might strip the .py, but the official name should work too.
SOURCES=$(wildcard *.[0-9].txt)
MAN=$(SOURCES:%.txt=%)
HTML=$(SOURCES:%.txt=%.html)
PREFIX=/usr/local
MANDIR=$(PREFIX)/share/man
INSTALL=install -c -m 644
PYTHON=python
RST2HTML=$(shell which rst2html 2> /dev/null || which rst2html.py)
RST2MAN=$(shell which rst2man 2> /dev/null || which rst2man.py)
all: man html
man: $(MAN)
html: $(HTML)
hg.1.txt: hg.1.gendoc.txt
touch hg.1.txt
hg.1.gendoc.txt: gendoc.py ../mercurial/commands.py ../mercurial/help.py
${PYTHON} gendoc.py > $@
%: %.txt common.txt
$(RST2MAN) $*.txt > $*.tmp
# add newline after all literal blocks and fix backslash escape
sed \
-e 's/^\.fi$$/.fi\n/' \
-e 's/\\fB\\\\fP/\\fB\\e\\fP/' \
$*.tmp > $*
rm $*.tmp
%.html: %.txt common.txt
$(RST2HTML) $*.txt > $*.html
MANIFEST: man html
# tracked files are already in the main MANIFEST
$(RM) $@
for i in $(MAN) $(HTML) hg.1.gendoc.txt; do \
echo "doc/$$i" >> $@ ; \
done
install: man
for i in $(MAN) ; do \
subdir=`echo $$i | sed -n 's/^.*\.\([0-9]\)$$/man\1/p'` ; \
mkdir -p $(DESTDIR)$(MANDIR)/$$subdir ; \
$(INSTALL) $$i $(DESTDIR)$(MANDIR)/$$subdir ; \
done
clean:
$(RM) $(MAN) $(MAN:%=%.html) *.[0-9].gendoc.txt MANIFEST