1
- # Makefile for Sphinx documentation
1
+ # Minimal makefile for Sphinx documentation
2
2
#
3
3
4
- # You can set these variables from the command line.
5
- SPHINXOPTS =
6
- SPHINXBUILD = sphinx-build
7
- PAPER =
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
8
9
BUILDDIR = _build
9
10
10
- # User-friendly check for sphinx-build
11
- ifeq ($(shell which $(SPHINXBUILD ) >/dev/null 2>&1; echo $$? ) , 1)
12
- $(error The '$(SPHINXBUILD ) ' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD ) ' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http ://sphinx-doc.org/)
13
- endif
14
-
15
- # Internal variables.
16
- PAPEROPT_a4 = -D latex_paper_size=a4
17
- PAPEROPT_letter = -D latex_paper_size=letter
18
- ALLSPHINXOPTS = -d $(BUILDDIR ) /doctrees $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) .
19
- # the i18n builder cannot share the environment and doctrees with the others
20
- I18NSPHINXOPTS = $(PAPEROPT_$(PAPER ) ) $(SPHINXOPTS ) .
21
-
22
- .PHONY : help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
23
-
11
+ # Put it first so that "make" without argument is like "make help".
24
12
help :
25
- @echo " Please use \` make <target>' where <target> is one of"
26
- @echo " html to make standalone HTML files"
27
- @echo " dirhtml to make HTML files named index.html in directories"
28
- @echo " singlehtml to make a single large HTML file"
29
- @echo " pickle to make pickle files"
30
- @echo " json to make JSON files"
31
- @echo " htmlhelp to make HTML files and a HTML help project"
32
- @echo " qthelp to make HTML files and a qthelp project"
33
- @echo " devhelp to make HTML files and a Devhelp project"
34
- @echo " epub to make an epub"
35
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
36
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
37
- @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
38
- @echo " text to make text files"
39
- @echo " man to make manual pages"
40
- @echo " texinfo to make Texinfo files"
41
- @echo " info to make Texinfo files and run them through makeinfo"
42
- @echo " gettext to make PO message catalogs"
43
- @echo " changes to make an overview of all changed/added/deprecated items"
44
- @echo " xml to make Docutils-native XML files"
45
- @echo " pseudoxml to make pseudoxml-XML files for display purposes"
46
- @echo " linkcheck to check all external links for integrity"
47
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
48
- @echo " coverage to run coverage check of the documentation (if enabled)"
49
-
50
- clean :
51
- rm -rf $(BUILDDIR ) /*
52
-
53
- html :
54
- $(SPHINXBUILD ) -b html $(ALLSPHINXOPTS ) $(BUILDDIR ) /html
55
- @echo
56
- @echo " Build finished. The HTML pages are in $( BUILDDIR) /html."
57
-
58
- dirhtml :
59
- $(SPHINXBUILD ) -b dirhtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /dirhtml
60
- @echo
61
- @echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
62
-
63
- singlehtml :
64
- $(SPHINXBUILD ) -b singlehtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /singlehtml
65
- @echo
66
- @echo " Build finished. The HTML page is in $( BUILDDIR) /singlehtml."
67
-
68
- pickle :
69
- $(SPHINXBUILD ) -b pickle $(ALLSPHINXOPTS ) $(BUILDDIR ) /pickle
70
- @echo
71
- @echo " Build finished; now you can process the pickle files."
72
-
73
- json :
74
- $(SPHINXBUILD ) -b json $(ALLSPHINXOPTS ) $(BUILDDIR ) /json
75
- @echo
76
- @echo " Build finished; now you can process the JSON files."
77
-
78
- htmlhelp :
79
- $(SPHINXBUILD ) -b htmlhelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /htmlhelp
80
- @echo
81
- @echo " Build finished; now you can run HTML Help Workshop with the" \
82
- " .hhp project file in $( BUILDDIR) /htmlhelp."
83
-
84
- qthelp :
85
- $(SPHINXBUILD ) -b qthelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /qthelp
86
- @echo
87
- @echo " Build finished; now you can run " qcollectiongenerator" with the" \
88
- " .qhcp project file in $( BUILDDIR) /qthelp, like this:"
89
- @echo " # qcollectiongenerator $( BUILDDIR) /qthelp/discord.py.qhcp"
90
- @echo " To view the help file:"
91
- @echo " # assistant -collectionFile $( BUILDDIR) /qthelp/discord.py.qhc"
92
-
93
- devhelp :
94
- $(SPHINXBUILD ) -b devhelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /devhelp
95
- @echo
96
- @echo " Build finished."
97
- @echo " To view the help file:"
98
- @echo " # mkdir -p $$ HOME/.local/share/devhelp/discord.py"
99
- @echo " # ln -s $( BUILDDIR) /devhelp $$ HOME/.local/share/devhelp/discord.py"
100
- @echo " # devhelp"
101
-
102
- epub :
103
- $(SPHINXBUILD ) -b epub $(ALLSPHINXOPTS ) $(BUILDDIR ) /epub
104
- @echo
105
- @echo " Build finished. The epub file is in $( BUILDDIR) /epub."
106
-
107
- latex :
108
- $(SPHINXBUILD ) -b latex $(ALLSPHINXOPTS ) $(BUILDDIR ) /latex
109
- @echo
110
- @echo " Build finished; the LaTeX files are in $( BUILDDIR) /latex."
111
- @echo " Run \` make' in that directory to run these through (pdf)latex" \
112
- " (use \` make latexpdf' here to do that automatically)."
113
-
114
- latexpdf :
115
- $(SPHINXBUILD ) -b latex $(ALLSPHINXOPTS ) $(BUILDDIR ) /latex
116
- @echo " Running LaTeX files through pdflatex..."
117
- $(MAKE ) -C $(BUILDDIR ) /latex all-pdf
118
- @echo " pdflatex finished; the PDF files are in $( BUILDDIR) /latex."
119
-
120
- latexpdfja :
121
- $(SPHINXBUILD ) -b latex $(ALLSPHINXOPTS ) $(BUILDDIR ) /latex
122
- @echo " Running LaTeX files through platex and dvipdfmx..."
123
- $(MAKE ) -C $(BUILDDIR ) /latex all-pdf-ja
124
- @echo " pdflatex finished; the PDF files are in $( BUILDDIR) /latex."
125
-
126
- text :
127
- $(SPHINXBUILD ) -b text $(ALLSPHINXOPTS ) $(BUILDDIR ) /text
128
- @echo
129
- @echo " Build finished. The text files are in $( BUILDDIR) /text."
130
-
131
- man :
132
- $(SPHINXBUILD ) -b man $(ALLSPHINXOPTS ) $(BUILDDIR ) /man
133
- @echo
134
- @echo " Build finished. The manual pages are in $( BUILDDIR) /man."
135
-
136
- texinfo :
137
- $(SPHINXBUILD ) -b texinfo $(ALLSPHINXOPTS ) $(BUILDDIR ) /texinfo
138
- @echo
139
- @echo " Build finished. The Texinfo files are in $( BUILDDIR) /texinfo."
140
- @echo " Run \` make' in that directory to run these through makeinfo" \
141
- " (use \` make info' here to do that automatically)."
142
-
143
- info :
144
- $(SPHINXBUILD ) -b texinfo $(ALLSPHINXOPTS ) $(BUILDDIR ) /texinfo
145
- @echo " Running Texinfo files through makeinfo..."
146
- make -C $(BUILDDIR ) /texinfo info
147
- @echo " makeinfo finished; the Info files are in $( BUILDDIR) /texinfo."
148
-
149
- gettext :
150
- $(SPHINXBUILD ) -b gettext $(I18NSPHINXOPTS ) $(BUILDDIR ) /locale
151
- @echo
152
- @echo " Build finished. The message catalogs are in $( BUILDDIR) /locale."
153
-
154
- changes :
155
- $(SPHINXBUILD ) -b changes $(ALLSPHINXOPTS ) $(BUILDDIR ) /changes
156
- @echo
157
- @echo " The overview file is in $( BUILDDIR) /changes."
158
-
159
- linkcheck :
160
- $(SPHINXBUILD ) -b linkcheck $(ALLSPHINXOPTS ) $(BUILDDIR ) /linkcheck
161
- @echo
162
- @echo " Link check complete; look for any errors in the above output " \
163
- " or in $( BUILDDIR) /linkcheck/output.txt."
164
-
165
- doctest :
166
- $(SPHINXBUILD ) -b doctest $(ALLSPHINXOPTS ) $(BUILDDIR ) /doctest
167
- @echo " Testing of doctests in the sources finished, look at the " \
168
- " results in $( BUILDDIR) /doctest/output.txt."
169
-
170
- coverage :
171
- $(SPHINXBUILD ) -b coverage $(ALLSPHINXOPTS ) $(BUILDDIR ) /coverage
172
- @echo " Testing of coverage in the sources finished, look at the " \
173
- " results in $( BUILDDIR) /coverage/python.txt."
13
+ @$(SPHINXBUILD ) -M help " $( SOURCEDIR) " " $( BUILDDIR) " $(SPHINXOPTS ) $(O )
174
14
175
- xml :
176
- $(SPHINXBUILD ) -b xml $(ALLSPHINXOPTS ) $(BUILDDIR ) /xml
177
- @echo
178
- @echo " Build finished. The XML files are in $( BUILDDIR) /xml."
15
+ .PHONY : help Makefile
179
16
180
- pseudoxml :
181
- $( SPHINXBUILD ) -b pseudoxml $( ALLSPHINXOPTS ) $( BUILDDIR ) /pseudoxml
182
- @echo
183
- @echo " Build finished. The pseudo-XML files are in $( BUILDDIR) /pseudoxml. "
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ % : Makefile
20
+ @$( SPHINXBUILD ) -M $@ " $( SOURCEDIR ) " " $( BUILDDIR) " $( SPHINXOPTS ) $( O )
0 commit comments