mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
afd8c70fd6
When we try to build manpages with xmlto and sed, but xmlto is missing fail at the xmlto stage. Otherwise, one may run `cd doc; make' and miss the warnings like: xmlto: not found sed: hg.1: No such file or directory and end up with empty files installed as manpages.
49 lines
1023 B
Makefile
49 lines
1023 B
Makefile
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
|
|
ASCIIDOC=asciidoc
|
|
|
|
all: man html
|
|
|
|
man: $(MAN)
|
|
|
|
html: $(HTML)
|
|
|
|
hg.1.txt: hg.1.gendoc.txt
|
|
touch hg.1.txt
|
|
|
|
hg.1.gendoc.txt: ../mercurial/commands.py ../mercurial/help.py
|
|
${PYTHON} gendoc.py > $@
|
|
|
|
%: %.xml
|
|
xmlto man $*.xml && \
|
|
sed -e 's/^\.hg/\\\&.hg/' $* > $*~ && \
|
|
mv $*~ $*
|
|
|
|
%.xml: %.txt
|
|
$(ASCIIDOC) -d manpage -b docbook $*.txt
|
|
|
|
%.html: %.txt
|
|
$(ASCIIDOC) -b html4 $*.txt || $(ASCIIDOC) -b html $*.txt
|
|
|
|
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:%=%.xml) $(MAN:%=%.html) *.[0-9].gendoc.txt MANIFEST
|