.. | .. |
---|
2 | 2 | # Makefile for Sphinx documentation |
---|
3 | 3 | # |
---|
4 | 4 | |
---|
5 | | -subdir-y := |
---|
| 5 | +# for cleaning |
---|
| 6 | +subdir- := devicetree/bindings |
---|
| 7 | + |
---|
| 8 | +# Check for broken documentation file references |
---|
| 9 | +ifeq ($(CONFIG_WARN_MISSING_DOCUMENTS),y) |
---|
| 10 | +$(shell $(srctree)/scripts/documentation-file-ref-check --warn) |
---|
| 11 | +endif |
---|
| 12 | + |
---|
| 13 | +# Check for broken ABI files |
---|
| 14 | +ifeq ($(CONFIG_WARN_ABI_ERRORS),y) |
---|
| 15 | +$(shell $(srctree)/scripts/get_abi.pl validate --dir $(srctree)/Documentation/ABI) |
---|
| 16 | +endif |
---|
6 | 17 | |
---|
7 | 18 | # You can set these variables from the command line. |
---|
8 | 19 | SPHINXBUILD = sphinx-build |
---|
9 | 20 | SPHINXOPTS = |
---|
10 | 21 | SPHINXDIRS = . |
---|
11 | | -_SPHINXDIRS = $(patsubst $(srctree)/Documentation/%/conf.py,%,$(wildcard $(srctree)/Documentation/*/conf.py)) |
---|
| 22 | +_SPHINXDIRS = $(sort $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst))) |
---|
12 | 23 | SPHINX_CONF = conf.py |
---|
13 | 24 | PAPER = |
---|
14 | 25 | BUILDDIR = $(obj)/output |
---|
15 | 26 | PDFLATEX = xelatex |
---|
16 | 27 | LATEXOPTS = -interaction=batchmode |
---|
| 28 | + |
---|
| 29 | +ifeq ($(KBUILD_VERBOSE),0) |
---|
| 30 | +SPHINXOPTS += "-q" |
---|
| 31 | +endif |
---|
17 | 32 | |
---|
18 | 33 | # User-friendly check for sphinx-build |
---|
19 | 34 | HAVE_SPHINX := $(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi) |
---|
.. | .. |
---|
23 | 38 | .DEFAULT: |
---|
24 | 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.) |
---|
25 | 40 | @echo |
---|
26 | | - @./scripts/sphinx-pre-install |
---|
| 41 | + @$(srctree)/scripts/sphinx-pre-install |
---|
27 | 42 | @echo " SKIP Sphinx $@ target." |
---|
28 | 43 | |
---|
29 | 44 | else # HAVE_SPHINX |
---|
30 | 45 | |
---|
31 | | -# User-friendly check for pdflatex |
---|
| 46 | +# User-friendly check for pdflatex and latexmk |
---|
32 | 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 #HAVE_LATEXMK |
---|
33 | 53 | |
---|
34 | 54 | # Internal variables. |
---|
35 | 55 | PAPEROPT_a4 = -D latex_paper_size=a4 |
---|
.. | .. |
---|
44 | 64 | loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit; |
---|
45 | 65 | |
---|
46 | 66 | # $2 sphinx builder e.g. "html" |
---|
47 | | -# $3 name of the build subfolder / e.g. "media", used as: |
---|
| 67 | +# $3 name of the build subfolder / e.g. "userspace-api/media", used as: |
---|
48 | 68 | # * dest folder relative to $(BUILDDIR) and |
---|
49 | 69 | # * cache folder relative to $(BUILDDIR)/.doctrees |
---|
50 | | -# $4 dest subfolder e.g. "man" for man pages at media/man |
---|
| 70 | +# $4 dest subfolder e.g. "man" for man pages at userspace-api/media/man |
---|
51 | 71 | # $5 reST source folder relative to $(srctree)/$(src), |
---|
52 | | -# e.g. "media" for the linux-tv book-set at ./Documentation/media |
---|
| 72 | +# e.g. "userspace-api/media" for the linux-tv book-set at ./Documentation/userspace-api/media |
---|
53 | 73 | |
---|
54 | 74 | quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4) |
---|
55 | | - cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \ |
---|
| 75 | + cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \ |
---|
56 | 76 | PYTHONDONTWRITEBYTECODE=1 \ |
---|
57 | 77 | BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \ |
---|
| 78 | + $(PYTHON) $(srctree)/scripts/jobserver-exec \ |
---|
| 79 | + $(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \ |
---|
58 | 80 | $(SPHINXBUILD) \ |
---|
59 | 81 | -b $2 \ |
---|
60 | 82 | -c $(abspath $(srctree)/$(src)) \ |
---|
.. | .. |
---|
65 | 87 | $(abspath $(BUILDDIR)/$3/$4) |
---|
66 | 88 | |
---|
67 | 89 | htmldocs: |
---|
| 90 | + @$(srctree)/scripts/sphinx-pre-install --version-check |
---|
68 | 91 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var))) |
---|
69 | 92 | |
---|
70 | 93 | linkcheckdocs: |
---|
71 | 94 | @$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,linkcheck,$(var),,$(var))) |
---|
72 | 95 | |
---|
73 | 96 | latexdocs: |
---|
| 97 | + @$(srctree)/scripts/sphinx-pre-install --version-check |
---|
74 | 98 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,latex,$(var),latex,$(var))) |
---|
75 | 99 | |
---|
76 | 100 | ifeq ($(HAVE_PDFLATEX),0) |
---|
.. | .. |
---|
82 | 106 | else # HAVE_PDFLATEX |
---|
83 | 107 | |
---|
84 | 108 | pdfdocs: latexdocs |
---|
85 | | - $(foreach var,$(SPHINXDIRS), $(MAKE) PDFLATEX=$(PDFLATEX) LATEXOPTS="$(LATEXOPTS)" -C $(BUILDDIR)/$(var)/latex || exit;) |
---|
| 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 | + ) |
---|
86 | 115 | |
---|
87 | 116 | endif # HAVE_PDFLATEX |
---|
88 | 117 | |
---|
89 | 118 | epubdocs: |
---|
| 119 | + @$(srctree)/scripts/sphinx-pre-install --version-check |
---|
90 | 120 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,epub,$(var),epub,$(var))) |
---|
91 | 121 | |
---|
92 | 122 | xmldocs: |
---|
| 123 | + @$(srctree)/scripts/sphinx-pre-install --version-check |
---|
93 | 124 | @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,xml,$(var),xml,$(var))) |
---|
94 | 125 | |
---|
95 | 126 | endif # HAVE_SPHINX |
---|
.. | .. |
---|
102 | 133 | |
---|
103 | 134 | cleandocs: |
---|
104 | 135 | $(Q)rm -rf $(BUILDDIR) |
---|
105 | | - $(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media clean |
---|
| 136 | + $(Q)$(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media clean |
---|
106 | 137 | |
---|
107 | 138 | dochelp: |
---|
108 | 139 | @echo ' Linux kernel internal documentation in different formats from ReST:' |
---|
.. | .. |
---|
111 | 142 | @echo ' pdfdocs - PDF' |
---|
112 | 143 | @echo ' epubdocs - EPUB' |
---|
113 | 144 | @echo ' xmldocs - XML' |
---|
114 | | - @echo ' linkcheckdocs - check for broken external links (will connect to external hosts)' |
---|
115 | | - @echo ' refcheckdocs - check for references to non-existing files under Documentation' |
---|
| 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' |
---|
116 | 149 | @echo ' cleandocs - clean all generated files' |
---|
117 | 150 | @echo |
---|
118 | 151 | @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2' |
---|