poky/documentation/Makefile
Michael Opdenacker ae1b8c6079 manuals: add initial sphinx-lint support
Makes it possible to catch errors not reported by sphinx,
such as idle spaces. After customization, this should be used
to enforce our syntax conventions, such as two spaces after a "-"
character to introduce a list item.

Just run "make sphinx-lint".

(From yocto-docs rev: 9e1aeeddca06cb7d65631010ba0eebdcd8ecf9ee)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-08 14:36:38 +01:00

2.4 KiB

Minimal makefile for Sphinx documentation

You can set these variables from the command line, and also

from the environment for the first two.

SPHINXOPTS ?= -W --keep-going -j auto SPHINXBUILD ?= sphinx-build

Release notes are excluded because they contain contributor names and commit messages which can't be modified

VALEOPTS ?= --no-wrap --glob '!migration-guides/release-notes-*.rst' VALEDOCS ?= . SOURCEDIR = . IMAGEDIRS = */svg BUILDDIR = _build DESTDIR = final SVG2PNG = inkscape SVG2PDF = inkscape

ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0) $(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed") endif

Put it first so that "make" without argument is like "make help".

help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: all help Makefile clean stylecheck publish epub latexpdf

publish: Makefile html singlehtml rm -rf $(BUILDDIR)/$(DESTDIR)/ mkdir -p $(BUILDDIR)/$(DESTDIR)/ cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/ cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html

Build a list of SVG files to convert to PDFs

PDFs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.pdf,$(wildcard $(SOURCEDIR)/$(dir)/*.svg)))

Build a list of SVG files to convert to PNGs

PNGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.png,$(wildcard $(SOURCEDIR)/$(dir)/*.svg)))

Pattern rule for converting SVG to PDF

%.pdf : %.svg $(SVG2PDF) --export-filename=$@ $<

Pattern rule for converting SVG to PNG

%.png : %.svg $(SVG2PNG) --export-filename=$@ $<

clean: @rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js releases.rst

stylecheck: vale sync vale $(VALEOPTS) $(VALEDOCS)

sphinx-lint: sphinx-lint $(SOURCEDIR)

epub: $(PNGs) $(SOURCEDIR)/set_versions.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

latexpdf: $(PDFs) $(SOURCEDIR)/set_versions.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

all: html epub latexpdf

Catch-all target: route all unknown targets to Sphinx using the new

"make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).

%: $(SOURCEDIR)/set_versions.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)