1#=============================================================================
2#    Copyright (c) 2017 Paul Fultz II
3#    requirements.txt
4#    Distributed under the Boost Software License, Version 1.0. (See accompanying
5#    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6#==============================================================================
7# Makefile for Sphinx documentation
8#
9
10# You can set these variables from the command line.
11SPHINXOPTS    =
12SPHINXBUILD   = sphinx-build
13PAPER         =
14BUILDDIR      = _build
15
16# Internal variables.
17PAPEROPT_a4     = -D latex_paper_size=a4
18PAPEROPT_letter = -D latex_paper_size=letter
19ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
20# the i18n builder cannot share the environment and doctrees with the others
21I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
22
23.PHONY: help
24help:
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 "  applehelp  to make an Apple Help Book"
34	@echo "  devhelp    to make HTML files and a Devhelp project"
35	@echo "  epub       to make an epub"
36	@echo "  epub3      to make an epub3"
37	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
38	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
39	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
40	@echo "  text       to make text files"
41	@echo "  man        to make manual pages"
42	@echo "  texinfo    to make Texinfo files"
43	@echo "  info       to make Texinfo files and run them through makeinfo"
44	@echo "  gettext    to make PO message catalogs"
45	@echo "  changes    to make an overview of all changed/added/deprecated items"
46	@echo "  xml        to make Docutils-native XML files"
47	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
48	@echo "  linkcheck  to check all external links for integrity"
49	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
50	@echo "  coverage   to run coverage check of the documentation (if enabled)"
51	@echo "  dummy      to check syntax errors of document sources"
52
53.PHONY: clean
54clean:
55	rm -rf $(BUILDDIR)/*
56
57.PHONY: html
58html:
59	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
60	@echo
61	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
62
63.PHONY: dirhtml
64dirhtml:
65	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
66	@echo
67	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
68
69.PHONY: singlehtml
70singlehtml:
71	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
72	@echo
73	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
74
75.PHONY: pickle
76pickle:
77	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
78	@echo
79	@echo "Build finished; now you can process the pickle files."
80
81.PHONY: json
82json:
83	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
84	@echo
85	@echo "Build finished; now you can process the JSON files."
86
87.PHONY: htmlhelp
88htmlhelp:
89	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
90	@echo
91	@echo "Build finished; now you can run HTML Help Workshop with the" \
92	      ".hhp project file in $(BUILDDIR)/htmlhelp."
93
94.PHONY: qthelp
95qthelp:
96	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
97	@echo
98	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
99	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
100	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Fit.qhcp"
101	@echo "To view the help file:"
102	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Fit.qhc"
103
104.PHONY: applehelp
105applehelp:
106	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
107	@echo
108	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
109	@echo "N.B. You won't be able to view it unless you put it in" \
110	      "~/Library/Documentation/Help or install it in your application" \
111	      "bundle."
112
113.PHONY: devhelp
114devhelp:
115	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
116	@echo
117	@echo "Build finished."
118	@echo "To view the help file:"
119	@echo "# mkdir -p $$HOME/.local/share/devhelp/Fit"
120	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Fit"
121	@echo "# devhelp"
122
123.PHONY: epub
124epub:
125	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
126	@echo
127	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
128
129.PHONY: epub3
130epub3:
131	$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
132	@echo
133	@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
134
135.PHONY: latex
136latex:
137	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
138	@echo
139	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
140	@echo "Run \`make' in that directory to run these through (pdf)latex" \
141	      "(use \`make latexpdf' here to do that automatically)."
142
143.PHONY: latexpdf
144latexpdf:
145	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
146	@echo "Running LaTeX files through pdflatex..."
147	$(MAKE) -C $(BUILDDIR)/latex all-pdf
148	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
149
150.PHONY: latexpdfja
151latexpdfja:
152	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
153	@echo "Running LaTeX files through platex and dvipdfmx..."
154	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
155	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
156
157.PHONY: text
158text:
159	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
160	@echo
161	@echo "Build finished. The text files are in $(BUILDDIR)/text."
162
163.PHONY: man
164man:
165	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
166	@echo
167	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
168
169.PHONY: texinfo
170texinfo:
171	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
172	@echo
173	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
174	@echo "Run \`make' in that directory to run these through makeinfo" \
175	      "(use \`make info' here to do that automatically)."
176
177.PHONY: info
178info:
179	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
180	@echo "Running Texinfo files through makeinfo..."
181	make -C $(BUILDDIR)/texinfo info
182	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
183
184.PHONY: gettext
185gettext:
186	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
187	@echo
188	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
189
190.PHONY: changes
191changes:
192	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
193	@echo
194	@echo "The overview file is in $(BUILDDIR)/changes."
195
196.PHONY: linkcheck
197linkcheck:
198	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
199	@echo
200	@echo "Link check complete; look for any errors in the above output " \
201	      "or in $(BUILDDIR)/linkcheck/output.txt."
202
203.PHONY: doctest
204doctest:
205	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
206	@echo "Testing of doctests in the sources finished, look at the " \
207	      "results in $(BUILDDIR)/doctest/output.txt."
208
209.PHONY: coverage
210coverage:
211	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
212	@echo "Testing of coverage in the sources finished, look at the " \
213	      "results in $(BUILDDIR)/coverage/python.txt."
214
215.PHONY: xml
216xml:
217	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
218	@echo
219	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
220
221.PHONY: pseudoxml
222pseudoxml:
223	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
224	@echo
225	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
226
227.PHONY: dummy
228dummy:
229	$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
230	@echo
231	@echo "Build finished. Dummy builder generates no files."
232