Files
poky/documentation/Makefile
Julien Stephan f6ac0554af documentation: Makefile: add SPHINXLINTDOCS to specify subset to sphinx-lint
make sphinx-lint runs sphinx-lint on the whole documentation which can be
long and reports a lot or errors/warnings. Let's add a new
SHPINXLINTDOCS variable to allow specifying a subset, just as VALEDOCS
does. Keep variable assignment aligned and also use $(SOURCEDIR) by
default for SPHINXLINTDOCS and VALEDOCS variables.

Also update the README file and fix a typo in Link checking section
title.

(From yocto-docs rev: c478ef829433c431456835bca240df44ffe8fcca)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Reviewed-by: Antonin Godard <antonin.godard@bootlin.com>
Tested-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 3dfe7b5c746af31de74f67cf88214e5d52bdb65d)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-11-09 05:53:57 -08:00

2.5 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' SOURCEDIR = . VALEDOCS ?= $(SOURCEDIR) SPHINXLINTDOCS ?= $(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 $(SPHINXLINTDOCS)

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)