| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- # -*- makefile -*-
- # Makefile for Sphinx documentation
- #
- # for cleaning
- subdir- := devicetree/bindings
- ifneq ($(MAKECMDGOALS),cleandocs)
- # Check for broken documentation file references
- ifeq ($(CONFIG_WARN_MISSING_DOCUMENTS),y)
- $(shell $(srctree)/tools/docs/documentation-file-ref-check --warn)
- endif
- # Check for broken ABI files
- ifeq ($(CONFIG_WARN_ABI_ERRORS),y)
- $(shell $(srctree)/tools/docs/get_abi.py --dir $(srctree)/Documentation/ABI validate)
- endif
- endif
- # You can set these variables from the command line.
- SPHINXBUILD = sphinx-build
- SPHINXOPTS =
- SPHINXDIRS = .
- DOCS_THEME =
- DOCS_CSS =
- RUSTDOC =
- PAPER =
- BUILDDIR = $(obj)/output
- PDFLATEX = xelatex
- LATEXOPTS = -interaction=batchmode -no-shell-escape
- PYTHONPYCACHEPREFIX ?= $(abspath $(BUILDDIR)/__pycache__)
- # Wrapper for sphinx-build
- BUILD_WRAPPER = $(srctree)/tools/docs/sphinx-build-wrapper
- # For denylisting "variable font" files
- # Can be overridden by setting as an env variable
- FONTS_CONF_DENY_VF ?= $(HOME)/deny-vf
- # User-friendly check for sphinx-build
- HAVE_SPHINX := $(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi)
- ifeq ($(HAVE_SPHINX),0)
- .DEFAULT:
- $(warning The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed and in PATH, or set the SPHINXBUILD make variable to point to the full path of the '$(SPHINXBUILD)' executable.)
- @echo
- @$(srctree)/tools/docs/sphinx-pre-install
- @echo " SKIP Sphinx $@ target."
- else # HAVE_SPHINX
- # Common documentation targets
- htmldocs mandocs infodocs texinfodocs latexdocs epubdocs xmldocs pdfdocs linkcheckdocs:
- $(Q)PYTHONPYCACHEPREFIX="$(PYTHONPYCACHEPREFIX)" \
- $(srctree)/tools/docs/sphinx-pre-install --version-check
- +$(Q)PYTHONPYCACHEPREFIX="$(PYTHONPYCACHEPREFIX)" \
- $(PYTHON3) $(BUILD_WRAPPER) $@ \
- --sphinxdirs="$(SPHINXDIRS)" $(RUSTDOC) \
- --builddir="$(BUILDDIR)" --deny-vf=$(FONTS_CONF_DENY_VF) \
- --theme=$(DOCS_THEME) --css=$(DOCS_CSS) --paper=$(PAPER)
- endif
- # The following targets are independent of HAVE_SPHINX, and the rules should
- # work or silently pass without Sphinx.
- htmldocs-redirects: $(srctree)/Documentation/.renames.txt
- @tools/docs/gen-redirects.py --output $(BUILDDIR) < $<
- refcheckdocs:
- $(Q)cd $(srctree); tools/docs/documentation-file-ref-check
- cleandocs:
- $(Q)rm -rf $(BUILDDIR)
- # Used only on help
- _SPHINXDIRS = $(shell printf "%s\n" $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst)) | sort -f)
- dochelp:
- @echo ' Linux kernel internal documentation in different formats from ReST:'
- @echo ' htmldocs - HTML'
- @echo ' htmldocs-redirects - generate HTML redirects for moved pages'
- @echo ' texinfodocs - Texinfo'
- @echo ' infodocs - Info'
- @echo ' mandocs - Man pages'
- @echo ' latexdocs - LaTeX'
- @echo ' pdfdocs - PDF'
- @echo ' epubdocs - EPUB'
- @echo ' xmldocs - XML'
- @echo ' linkcheckdocs - check for broken external links'
- @echo ' (will connect to external hosts)'
- @echo ' refcheckdocs - check for references to non-existing files under'
- @echo ' Documentation'
- @echo ' cleandocs - clean all generated files'
- @echo
- @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
- @echo ' top level values for SPHINXDIRS are:'
- @echo '$(_SPHINXDIRS)' | fmt -s -w 75 -g 75 | sed 's/^/ /'
- @echo ' you may also use a subdirectory like SPHINXDIRS=userspace-api/media,'
- @echo ' provided that there is an index.rst file at the subdirectory.'
- @echo
- @echo ' make DOCS_THEME={sphinx-theme} selects a different Sphinx theme.'
- @echo
- @echo ' make DOCS_CSS={a .css file} adds a DOCS_CSS override file for html/epub output.'
- @echo
- @echo ' make PAPER={a4|letter} Specifies the paper size used for LaTeX/PDF output.'
- @echo
- @echo ' make FONTS_CONF_DENY_VF={path} sets a deny list to block variable Noto CJK fonts'
- @echo ' for PDF build. See tools/lib/python/kdoc/latex_fonts.py for more details'
- @echo
- @echo ' Default location for the generated documents is Documentation/output'
|