mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
57b4ef6f30
The subtle part is adding .rst and .py files to vpath so they can be used as dependencies without prefixing with $(srcdir) We also change the interface to mkbuildeps.py: rather than getting the containing directory from the conf file path, we go the other way.
74 lines
2.2 KiB
Makefile
74 lines
2.2 KiB
Makefile
# -*- makefile -*-
|
|
|
|
dir := doc
|
|
|
|
# You can set these variables from the command line.
|
|
SPHINXOPTS := -q
|
|
SPHINXBUILD = sphinx-build
|
|
DOCBUILDDIR := $(dir)/_build
|
|
|
|
prerst2man := python $(srcdir)/$(dir)/prerst2man.py
|
|
mkdocdeps := python $(srcdir)/$(dir)/mkdocdeps.py
|
|
|
|
# Internal variables.
|
|
ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
|
|
|
|
.PHONY: sphinx-html sphinx-texinfo sphinx-info
|
|
|
|
.PHONY: install-man build-man
|
|
|
|
%.gz: %
|
|
rm -f $@ && gzip --stdout $^ > $@
|
|
|
|
sphinx-html:
|
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DOCBUILDDIR)/html
|
|
|
|
sphinx-texinfo:
|
|
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCBUILDDIR)/texinfo
|
|
|
|
sphinx-info: sphinx-texinfo
|
|
make -C $(DOCBUILDDIR)/texinfo info
|
|
|
|
-include $(dir)/docdeps.mk
|
|
|
|
MAN_GZIP_FILES := $(addsuffix .gz,${MAN_ROFF_FILES})
|
|
|
|
# Use the man page converter that is available. We should never depend
|
|
# on MAN_ROFF_FILES if a converter is not available.
|
|
${MAN_ROFF_FILES}: ${MAN_RST_FILES}
|
|
ifeq ($(HAVE_SPHINX),1)
|
|
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCBUILDDIR)/man
|
|
for section in 1 5 7; do \
|
|
mkdir -p $(DOCBUILDDIR)/man/man$${section}; \
|
|
mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \
|
|
done
|
|
else ifeq ($(HAVE_RST2MAN),1)
|
|
$(prerst2man) $(srcdir)/doc $(DOCBUILDDIR)/man
|
|
else
|
|
@echo "Fatal: build dependency fail."
|
|
@false
|
|
endif
|
|
|
|
# Do not try to build or install man pages if a man page converter is
|
|
# not available.
|
|
ifeq ($(HAVE_SPHINX)$(HAVE_RST2MAN),00)
|
|
build-man:
|
|
install-man:
|
|
@echo "No sphinx or rst2man, will not install man pages."
|
|
else
|
|
build-man: ${MAN_GZIP_FILES}
|
|
install-man: ${MAN_GZIP_FILES}
|
|
mkdir -p "$(DESTDIR)$(mandir)/man1"
|
|
mkdir -p "$(DESTDIR)$(mandir)/man5"
|
|
mkdir -p "$(DESTDIR)$(mandir)/man7"
|
|
install -m0644 $(DOCBUILDDIR)/man/man1/*.1.gz $(DESTDIR)/$(mandir)/man1
|
|
install -m0644 $(DOCBUILDDIR)/man/man5/*.5.gz $(DESTDIR)/$(mandir)/man5
|
|
install -m0644 $(DOCBUILDDIR)/man/man7/*.7.gz $(DESTDIR)/$(mandir)/man7
|
|
cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
|
|
endif
|
|
|
|
$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
|
|
$(mkdocdeps) $(srcdir)/doc $(DOCBUILDDIR) $@
|
|
|
|
CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(dir)/man.stamp
|
|
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES)
|