| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 | subdir- := devicetree/bindings
|
| 7 |
|
| 8 |
|
| 9 | ifeq ($(CONFIG_WARN_MISSING_DOCUMENTS),y)
|
| 10 | $(shell $(srctree)/scripts/documentation-file-ref-check --warn)
|
| 11 | endif
|
| 12 |
|
| 13 |
|
| 14 | ifeq ($(CONFIG_WARN_ABI_ERRORS),y)
|
| 15 | $(shell $(srctree)/scripts/get_abi.pl validate --dir $(srctree)/Documentation/ABI)
|
| 16 | endif
|
| 17 |
|
| 18 |
|
| 19 | SPHINXBUILD = sphinx-build
|
| 20 | SPHINXOPTS =
|
| 21 | SPHINXDIRS = .
|
| 22 | _SPHINXDIRS = $(sort $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst)))
|
| 23 | SPHINX_CONF = conf.py
|
| 24 | PAPER =
|
| 25 | BUILDDIR = $(obj)/output
|
| 26 | PDFLATEX = xelatex
|
| 27 | LATEXOPTS = -interaction=batchmode
|
| 28 |
|
| 29 | ifeq ($(KBUILD_VERBOSE),0)
|
| 30 | SPHINXOPTS += "-q"
|
| 31 | endif
|
| 32 |
|
| 33 |
|
| 34 | HAVE_SPHINX := $(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi)
|
| 35 |
|
| 36 | ifeq ($(HAVE_SPHINX),0)
|
| 37 |
|
| 38 | .DEFAULT:
|
| 39 | $(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.)
|
| 40 | @echo
|
| 41 | @$(srctree)/scripts/sphinx-pre-install
|
| 42 | @echo " SKIP Sphinx $@ target."
|
| 43 |
|
| 44 | else
|
| 45 |
|
| 46 |
|
| 47 | HAVE_PDFLATEX := $(shell if which $(PDFLATEX) >/dev/null 2>&1; then echo 1; else echo 0; fi)
|
| 48 | HAVE_LATEXMK := $(shell if which latexmk >/dev/null 2>&1; then echo 1; else echo 0; fi)
|
| 49 |
|
| 50 | ifeq ($(HAVE_LATEXMK),1)
|
| 51 | PDFLATEX := latexmk -$(PDFLATEX)
|
| 52 | endif
|
| 53 |
|
| 54 |
|
| 55 | PAPEROPT_a4 = -D latex_paper_size=a4
|
| 56 | PAPEROPT_letter = -D latex_paper_size=letter
|
| 57 | KERNELDOC = $(srctree)/scripts/kernel-doc
|
| 58 | KERNELDOC_CONF = -D kerneldoc_srctree=$(srctree) -D kerneldoc_bin=$(KERNELDOC)
|
| 59 | ALLSPHINXOPTS = $(KERNELDOC_CONF) $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
|
| 60 |
|
| 61 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
| 62 |
|
| 63 |
|
| 64 | loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit;
|
| 65 |
|
| 66 |
|
| 67 |
|
| 68 |
|
| 69 |
|
| 70 |
|
| 71 |
|
| 72 |
|
| 73 |
|
| 74 | quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
| 75 | cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
| 76 | PYTHONDONTWRITEBYTECODE=1 \
|
| 77 | BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
| 78 | $(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
| 79 | $(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
| 80 | $(SPHINXBUILD) \
|
| 81 | -b $2 \
|
| 82 | -c $(abspath $(srctree)/$(src)) \
|
| 83 | -d $(abspath $(BUILDDIR)/.doctrees/$3) \
|
| 84 | -D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) \
|
| 85 | $(ALLSPHINXOPTS) \
|
| 86 | $(abspath $(srctree)/$(src)/$5) \
|
| 87 | $(abspath $(BUILDDIR)/$3/$4)
|
| 88 |
|
| 89 | htmldocs:
|
| 90 | @$(srctree)/scripts/sphinx-pre-install --version-check
|
| 91 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
|
| 92 |
|
| 93 | linkcheckdocs:
|
| 94 | @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,linkcheck,$(var),,$(var)))
|
| 95 |
|
| 96 | latexdocs:
|
| 97 | @$(srctree)/scripts/sphinx-pre-install --version-check
|
| 98 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,latex,$(var),latex,$(var)))
|
| 99 |
|
| 100 | ifeq ($(HAVE_PDFLATEX),0)
|
| 101 |
|
| 102 | pdfdocs:
|
| 103 | $(warning The '$(PDFLATEX)' command was not found. Make sure you have it installed and in PATH to produce PDF output.)
|
| 104 | @echo " SKIP Sphinx $@ target."
|
| 105 |
|
| 106 | else
|
| 107 |
|
| 108 | pdfdocs: latexdocs
|
| 109 | @$(srctree)/scripts/sphinx-pre-install --version-check
|
| 110 | $(foreach var,$(SPHINXDIRS), \
|
| 111 | $(MAKE) PDFLATEX="$(PDFLATEX)" LATEXOPTS="$(LATEXOPTS)" -C $(BUILDDIR)/$(var)/latex || exit; \
|
| 112 | mkdir -p $(BUILDDIR)/$(var)/pdf; \
|
| 113 | mv $(subst .tex,.pdf,$(wildcard $(BUILDDIR)/$(var)/latex/*.tex)) $(BUILDDIR)/$(var)/pdf/; \
|
| 114 | )
|
| 115 |
|
| 116 | endif
|
| 117 |
|
| 118 | epubdocs:
|
| 119 | @$(srctree)/scripts/sphinx-pre-install --version-check
|
| 120 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,epub,$(var),epub,$(var)))
|
| 121 |
|
| 122 | xmldocs:
|
| 123 | @$(srctree)/scripts/sphinx-pre-install --version-check
|
| 124 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,xml,$(var),xml,$(var)))
|
| 125 |
|
| 126 | endif
|
| 127 |
|
| 128 |
|
| 129 |
|
| 130 |
|
| 131 | refcheckdocs:
|
| 132 | $(Q)cd $(srctree);scripts/documentation-file-ref-check
|
| 133 |
|
| 134 | cleandocs:
|
| 135 | $(Q)rm -rf $(BUILDDIR)
|
| 136 | $(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media clean
|
| 137 |
|
| 138 | dochelp:
|
| 139 | @echo ' Linux kernel internal documentation in different formats from ReST:'
|
| 140 | @echo ' htmldocs - HTML'
|
| 141 | @echo ' latexdocs - LaTeX'
|
| 142 | @echo ' pdfdocs - PDF'
|
| 143 | @echo ' epubdocs - EPUB'
|
| 144 | @echo ' xmldocs - XML'
|
| 145 | @echo ' linkcheckdocs - check for broken external links'
|
| 146 | @echo ' (will connect to external hosts)'
|
| 147 | @echo ' refcheckdocs - check for references to non-existing files under'
|
| 148 | @echo ' Documentation'
|
| 149 | @echo ' cleandocs - clean all generated files'
|
| 150 | @echo
|
| 151 | @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'
|
| 152 | @echo ' valid values for SPHINXDIRS are: $(_SPHINXDIRS)'
|
| 153 | @echo
|
| 154 | @echo ' make SPHINX_CONF={conf-file} [target] use *additional* sphinx-build'
|
| 155 | @echo ' configuration. This is e.g. useful to build with nit-picking config.'
|
| 156 | @echo
|
| 157 | @echo ' Default location for the generated documents is Documentation/output'
|