source: trunk/docs/Makefile

Last change on this file was c13fb8d, checked in by Sajith Sasidharan <sajith@…>, at 2021-04-02T21:27:32Z

Add a make rule to invoke sphinx-autobuild when building docs

  • Property mode set to 100644
File size: 7.6 KB
Line 
1# Makefile for Sphinx documentation
2#
3
4# You can set these variables from the command line.
5SPHINXOPTS    =
6SPHINXBUILD   = sphinx-build
7PAPER         =
8BUILDDIR      = _build
9
10# User-friendly check for sphinx-build
11ifeq ($(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/)
13endif
14
15# Internal variables.
16PAPEROPT_a4     = -D latex_paper_size=a4
17PAPEROPT_letter = -D latex_paper_size=letter
18ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
19# the i18n builder cannot share the environment and doctrees with the others
20I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
21
22.PHONY: help
23help:
24        @echo "Please use \`make <target>' where <target> is one of"
25        @echo "  html       to make standalone HTML files"
26        @echo "  dirhtml    to make HTML files named index.html in directories"
27        @echo "  singlehtml to make a single large HTML file"
28        @echo "  pickle     to make pickle files"
29        @echo "  json       to make JSON files"
30        @echo "  htmlhelp   to make HTML files and a HTML help project"
31        @echo "  qthelp     to make HTML files and a qthelp project"
32        @echo "  applehelp  to make an Apple Help Book"
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.PHONY: clean
51clean:
52        rm -rf $(BUILDDIR)/*
53
54.PHONY: html
55html:
56        $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
57        @echo
58        @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
59
60.PHONY: dirhtml
61dirhtml:
62        $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
63        @echo
64        @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
65
66.PHONY: singlehtml
67singlehtml:
68        $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
69        @echo
70        @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
71
72.PHONY: pickle
73pickle:
74        $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
75        @echo
76        @echo "Build finished; now you can process the pickle files."
77
78.PHONY: json
79json:
80        $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
81        @echo
82        @echo "Build finished; now you can process the JSON files."
83
84.PHONY: htmlhelp
85htmlhelp:
86        $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
87        @echo
88        @echo "Build finished; now you can run HTML Help Workshop with the" \
89              ".hhp project file in $(BUILDDIR)/htmlhelp."
90
91.PHONY: qthelp
92qthelp:
93        $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
94        @echo
95        @echo "Build finished; now you can run "qcollectiongenerator" with the" \
96              ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
97        @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Tahoe-LAFS.qhcp"
98        @echo "To view the help file:"
99        @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Tahoe-LAFS.qhc"
100
101.PHONY: applehelp
102applehelp:
103        $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
104        @echo
105        @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
106        @echo "N.B. You won't be able to view it unless you put it in" \
107              "~/Library/Documentation/Help or install it in your application" \
108              "bundle."
109
110.PHONY: devhelp
111devhelp:
112        $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
113        @echo
114        @echo "Build finished."
115        @echo "To view the help file:"
116        @echo "# mkdir -p $$HOME/.local/share/devhelp/Tahoe-LAFS"
117        @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Tahoe-LAFS"
118        @echo "# devhelp"
119
120.PHONY: epub
121epub:
122        $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
123        @echo
124        @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
125
126.PHONY: latex
127latex:
128        $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
129        @echo
130        @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
131        @echo "Run \`make' in that directory to run these through (pdf)latex" \
132              "(use \`make latexpdf' here to do that automatically)."
133
134.PHONY: latexpdf
135latexpdf:
136        $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
137        @echo "Running LaTeX files through pdflatex..."
138        $(MAKE) -C $(BUILDDIR)/latex all-pdf
139        @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
140
141.PHONY: latexpdfja
142latexpdfja:
143        $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
144        @echo "Running LaTeX files through platex and dvipdfmx..."
145        $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
146        @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
147
148.PHONY: text
149text:
150        $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
151        @echo
152        @echo "Build finished. The text files are in $(BUILDDIR)/text."
153
154.PHONY: man
155man:
156        $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
157        @echo
158        @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
159
160.PHONY: texinfo
161texinfo:
162        $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
163        @echo
164        @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
165        @echo "Run \`make' in that directory to run these through makeinfo" \
166              "(use \`make info' here to do that automatically)."
167
168.PHONY: info
169info:
170        $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
171        @echo "Running Texinfo files through makeinfo..."
172        make -C $(BUILDDIR)/texinfo info
173        @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
174
175.PHONY: gettext
176gettext:
177        $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
178        @echo
179        @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
180
181.PHONY: changes
182changes:
183        $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
184        @echo
185        @echo "The overview file is in $(BUILDDIR)/changes."
186
187.PHONY: linkcheck
188linkcheck:
189        $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
190        @echo
191        @echo "Link check complete; look for any errors in the above output " \
192              "or in $(BUILDDIR)/linkcheck/output.txt."
193
194.PHONY: doctest
195doctest:
196        $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
197        @echo "Testing of doctests in the sources finished, look at the " \
198              "results in $(BUILDDIR)/doctest/output.txt."
199
200.PHONY: coverage
201coverage:
202        $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
203        @echo "Testing of coverage in the sources finished, look at the " \
204              "results in $(BUILDDIR)/coverage/python.txt."
205
206.PHONY: xml
207xml:
208        $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
209        @echo
210        @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
211
212.PHONY: pseudoxml
213pseudoxml:
214        $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
215        @echo
216        @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
217
218.PHONY: livehtml
219livehtml:
220        sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
Note: See TracBrowser for help on using the repository browser.