File Index
Files and directories
Sign in
FILE

Makefile

File preview with syntax highlighting.

linux-6.19.14/Documentation/Makefile MAKEFILE
  1# -*- makefile -*-
  2# Makefile for Sphinx documentation
  3#
  4
  5# for cleaning
  6subdir- := devicetree/bindings
  7
  8ifneq ($(MAKECMDGOALS),cleandocs)
  9# Check for broken documentation file references
 10ifeq ($(CONFIG_WARN_MISSING_DOCUMENTS),y)
 11$(shell $(srctree)/tools/docs/documentation-file-ref-check --warn)
 12endif
 13
 14# Check for broken ABI files
 15ifeq ($(CONFIG_WARN_ABI_ERRORS),y)
 16$(shell $(srctree)/tools/docs/get_abi.py --dir $(srctree)/Documentation/ABI validate)
 17endif
 18endif
 19
 20# You can set these variables from the command line.
 21SPHINXBUILD   = sphinx-build
 22SPHINXOPTS    =
 23SPHINXDIRS    = .
 24DOCS_THEME    =
 25DOCS_CSS      =
 26RUSTDOC       =
 27PAPER         =
 28BUILDDIR      = $(obj)/output
 29PDFLATEX      = xelatex
 30LATEXOPTS     = -interaction=batchmode -no-shell-escape
 31
 32PYTHONPYCACHEPREFIX ?= $(abspath $(BUILDDIR)/__pycache__)
 33
 34# Wrapper for sphinx-build
 35
 36BUILD_WRAPPER = $(srctree)/tools/docs/sphinx-build-wrapper
 37
 38# For denylisting "variable font" files
 39# Can be overridden by setting as an env variable
 40FONTS_CONF_DENY_VF ?= $(HOME)/deny-vf
 41
 42# User-friendly check for sphinx-build
 43HAVE_SPHINX := $(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi)
 44
 45ifeq ($(HAVE_SPHINX),0)
 46
 47.DEFAULT:
 48	$(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.)
 49	@echo
 50	@$(srctree)/tools/docs/sphinx-pre-install
 51	@echo "  SKIP    Sphinx $@ target."
 52
 53else # HAVE_SPHINX
 54
 55# Common documentation targets
 56htmldocs mandocs infodocs texinfodocs latexdocs epubdocs xmldocs pdfdocs linkcheckdocs:
 57	$(Q)PYTHONPYCACHEPREFIX="$(PYTHONPYCACHEPREFIX)" \
 58		$(srctree)/tools/docs/sphinx-pre-install --version-check
 59	+$(Q)PYTHONPYCACHEPREFIX="$(PYTHONPYCACHEPREFIX)" \
 60		$(PYTHON3) $(BUILD_WRAPPER) $@ \
 61		--sphinxdirs="$(SPHINXDIRS)" $(RUSTDOC) \
 62		--builddir="$(BUILDDIR)" --deny-vf=$(FONTS_CONF_DENY_VF) \
 63		--theme=$(DOCS_THEME) --css=$(DOCS_CSS) --paper=$(PAPER)
 64
 65
 66endif
 67
 68# The following targets are independent of HAVE_SPHINX, and the rules should
 69# work or silently pass without Sphinx.
 70
 71htmldocs-redirects: $(srctree)/Documentation/.renames.txt
 72	@tools/docs/gen-redirects.py --output $(BUILDDIR) < $<
 73
 74refcheckdocs:
 75	$(Q)cd $(srctree); tools/docs/documentation-file-ref-check
 76
 77cleandocs:
 78	$(Q)rm -rf $(BUILDDIR)
 79
 80# Used only on help
 81_SPHINXDIRS   = $(shell printf "%s\n" $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst)) | sort -f)
 82
 83dochelp:
 84	@echo  ' Linux kernel internal documentation in different formats from ReST:'
 85	@echo  '  htmldocs        - HTML'
 86	@echo  '  htmldocs-redirects - generate HTML redirects for moved pages'
 87	@echo  '  texinfodocs     - Texinfo'
 88	@echo  '  infodocs        - Info'
 89	@echo  '  mandocs         - Man pages'
 90	@echo  '  latexdocs       - LaTeX'
 91	@echo  '  pdfdocs         - PDF'
 92	@echo  '  epubdocs        - EPUB'
 93	@echo  '  xmldocs         - XML'
 94	@echo  '  linkcheckdocs   - check for broken external links'
 95	@echo  '                    (will connect to external hosts)'
 96	@echo  '  refcheckdocs    - check for references to non-existing files under'
 97	@echo  '                    Documentation'
 98	@echo  '  cleandocs       - clean all generated files'
 99	@echo
100	@echo  '  make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
101	@echo  '  top level values for SPHINXDIRS are: $(_SPHINXDIRS)'
102	@echo  '  you may also use a subdirectory like SPHINXDIRS=userspace-api/media,'
103	@echo  '  provided that there is an index.rst file at the subdirectory.'
104	@echo
105	@echo  '  make DOCS_THEME={sphinx-theme} selects a different Sphinx theme.'
106	@echo
107	@echo  '  make DOCS_CSS={a .css file} adds a DOCS_CSS override file for html/epub output.'
108	@echo
109	@echo  '  make PAPER={a4|letter} Specifies the paper size used for LaTeX/PDF output.'
110	@echo
111	@echo  '  make FONTS_CONF_DENY_VF={path} sets a deny list to block variable Noto CJK fonts'
112	@echo  '  for PDF build. See tools/lib/python/kdoc/latex_fonts.py for more details'
113	@echo
114	@echo  '  Default location for the generated documents is Documentation/output'
~/ Read-only file preview.