doc/Makefile
author Mads Kiilerich <mads@kiilerich.com>
Thu, 20 Aug 2009 23:35:37 +0200
changeset 9400 a6747ba27d22
parent 9162 2399362b3bb0
child 9401 2a5144687727
permissions -rw-r--r--
doc/Makefile: detect rst2man errors Make couldn't detect rst2man errors when it wasn't the last command, so empty man page files would be installed.

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=rst2html
RST2MAN=rst2man

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