Factor out --builder and output build directory

This commit is contained in:
Hugo van Kemenade 2025-04-27 18:54:39 +03:00
parent 1d4fcb7170
commit d2fd0f357c

View File

@ -7,14 +7,17 @@ SPHINXOPTS =
SPHINXBUILD = $(PYTHON) -m sphinx.cmd.build SPHINXBUILD = $(PYTHON) -m sphinx.cmd.build
PAPER = PAPER =
BUILDDIR = _build BUILDDIR = _build
BUILDER = html
# Internal variables. # Internal variables.
PAPEROPT_a4 = --define latex_paper_size=a4 PAPEROPT_a4 = --define latex_paper_size=a4
PAPEROPT_letter = --define latex_paper_size=letter PAPEROPT_letter = --define latex_paper_size=letter
ALLSPHINXOPTS = --doctree-dir $(BUILDDIR)/doctrees \ ALLSPHINXOPTS = --builder $(BUILDER) \
--doctree-dir $(BUILDDIR)/doctrees \
$(PAPEROPT_$(PAPER)) \ $(PAPEROPT_$(PAPER)) \
$(SPHINXOPTS) . $(SPHINXOPTS) \
. $(BUILDDIR)/$(BUILDER)
.PHONY: help .PHONY: help
help: help:
@ -37,28 +40,31 @@ install-sphinx:
.PHONY: html .PHONY: html
html: html:
$(MAKE) install-sphinx $(MAKE) install-sphinx
$(SPHINXBUILD) --builder html --fail-on-warning --keep-going $(ALLSPHINXOPTS) $(BUILDDIR)/html $(SPHINXBUILD) --fail-on-warning --keep-going $(ALLSPHINXOPTS)
@echo @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html." @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: dirhtml .PHONY: dirhtml
dirhtml: BUILDER = dirhtml
dirhtml: dirhtml:
$(MAKE) install-sphinx $(MAKE) install-sphinx
$(SPHINXBUILD) --builder dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml $(SPHINXBUILD) $(ALLSPHINXOPTS)
@echo @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml .PHONY: singlehtml
singlehtml: BUILDER = singlehtml
singlehtml: singlehtml:
$(MAKE) install-sphinx $(MAKE) install-sphinx
$(SPHINXBUILD) --builder singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml $(SPHINXBUILD) $(ALLSPHINXOPTS)
@echo @echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: linkcheck .PHONY: linkcheck
linkcheck: BUILDER = linkcheck
linkcheck: linkcheck:
$(MAKE) install-sphinx $(MAKE) install-sphinx
$(SPHINXBUILD) --builder linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck -j auto $(SPHINXBUILD) $(ALLSPHINXOPTS) -j auto
@echo @echo
@echo "Link check complete; look for any errors in the above output " \ @echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt." "or in $(BUILDDIR)/linkcheck/output.txt."