xref: /aosp_15_r20/external/clang/docs/Makefile.sphinx (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li# Makefile for Sphinx documentation
2*67e74705SXin Li#
3*67e74705SXin Li
4*67e74705SXin Li# You can set these variables from the command line.
5*67e74705SXin LiSPHINXOPTS    =
6*67e74705SXin LiSPHINXBUILD   = sphinx-build
7*67e74705SXin LiPAPER         =
8*67e74705SXin LiBUILDDIR      = _build
9*67e74705SXin Li
10*67e74705SXin Li# Internal variables.
11*67e74705SXin LiPAPEROPT_a4     = -D latex_paper_size=a4
12*67e74705SXin LiPAPEROPT_letter = -D latex_paper_size=letter
13*67e74705SXin LiALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14*67e74705SXin Li# the i18n builder cannot share the environment and doctrees with the others
15*67e74705SXin LiI18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16*67e74705SXin Li
17*67e74705SXin Li.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext default
18*67e74705SXin Li
19*67e74705SXin Lidefault: html
20*67e74705SXin Li
21*67e74705SXin Lihelp:
22*67e74705SXin Li	@echo "Please use \`make <target>' where <target> is one of"
23*67e74705SXin Li	@echo "  html       to make standalone HTML files"
24*67e74705SXin Li	@echo "  dirhtml    to make HTML files named index.html in directories"
25*67e74705SXin Li	@echo "  singlehtml to make a single large HTML file"
26*67e74705SXin Li	@echo "  pickle     to make pickle files"
27*67e74705SXin Li	@echo "  json       to make JSON files"
28*67e74705SXin Li	@echo "  htmlhelp   to make HTML files and a HTML help project"
29*67e74705SXin Li	@echo "  qthelp     to make HTML files and a qthelp project"
30*67e74705SXin Li	@echo "  devhelp    to make HTML files and a Devhelp project"
31*67e74705SXin Li	@echo "  epub       to make an epub"
32*67e74705SXin Li	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
33*67e74705SXin Li	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
34*67e74705SXin Li	@echo "  text       to make text files"
35*67e74705SXin Li	@echo "  man        to make manual pages"
36*67e74705SXin Li	@echo "  texinfo    to make Texinfo files"
37*67e74705SXin Li	@echo "  info       to make Texinfo files and run them through makeinfo"
38*67e74705SXin Li	@echo "  gettext    to make PO message catalogs"
39*67e74705SXin Li	@echo "  changes    to make an overview of all changed/added/deprecated items"
40*67e74705SXin Li	@echo "  linkcheck  to check all external links for integrity"
41*67e74705SXin Li	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
42*67e74705SXin Li
43*67e74705SXin Liclean:
44*67e74705SXin Li	-rm -rf $(BUILDDIR)/*
45*67e74705SXin Li
46*67e74705SXin Lihtml:
47*67e74705SXin Li	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
48*67e74705SXin Li	@echo
49*67e74705SXin Li	@# FIXME: Remove this `cp` once HTML->Sphinx transition is completed.
50*67e74705SXin Li	@# Kind of a hack, but HTML-formatted docs are on the way out anyway.
51*67e74705SXin Li	@echo "Copying legacy HTML-formatted docs into $(BUILDDIR)/html"
52*67e74705SXin Li	@cp -a *.html $(BUILDDIR)/html
53*67e74705SXin Li	@# FIXME: What we really need is a way to specify redirects, so that
54*67e74705SXin Li	@# we can just redirect to a reST'ified version of this document.
55*67e74705SXin Li	@# PR14714 is tracking the issue of redirects.
56*67e74705SXin Li	@cp -a Block-ABI-Apple.txt $(BUILDDIR)/html
57*67e74705SXin Li	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
58*67e74705SXin Li
59*67e74705SXin Lidirhtml:
60*67e74705SXin Li	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
61*67e74705SXin Li	@echo
62*67e74705SXin Li	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
63*67e74705SXin Li
64*67e74705SXin Lisinglehtml:
65*67e74705SXin Li	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
66*67e74705SXin Li	@echo
67*67e74705SXin Li	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
68*67e74705SXin Li
69*67e74705SXin Lipickle:
70*67e74705SXin Li	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
71*67e74705SXin Li	@echo
72*67e74705SXin Li	@echo "Build finished; now you can process the pickle files."
73*67e74705SXin Li
74*67e74705SXin Lijson:
75*67e74705SXin Li	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
76*67e74705SXin Li	@echo
77*67e74705SXin Li	@echo "Build finished; now you can process the JSON files."
78*67e74705SXin Li
79*67e74705SXin Lihtmlhelp:
80*67e74705SXin Li	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
81*67e74705SXin Li	@echo
82*67e74705SXin Li	@echo "Build finished; now you can run HTML Help Workshop with the" \
83*67e74705SXin Li	      ".hhp project file in $(BUILDDIR)/htmlhelp."
84*67e74705SXin Li
85*67e74705SXin Liqthelp:
86*67e74705SXin Li	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
87*67e74705SXin Li	@echo
88*67e74705SXin Li	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
89*67e74705SXin Li	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
90*67e74705SXin Li	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Clang.qhcp"
91*67e74705SXin Li	@echo "To view the help file:"
92*67e74705SXin Li	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Clang.qhc"
93*67e74705SXin Li
94*67e74705SXin Lidevhelp:
95*67e74705SXin Li	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
96*67e74705SXin Li	@echo
97*67e74705SXin Li	@echo "Build finished."
98*67e74705SXin Li	@echo "To view the help file:"
99*67e74705SXin Li	@echo "# mkdir -p $$HOME/.local/share/devhelp/Clang"
100*67e74705SXin Li	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Clang"
101*67e74705SXin Li	@echo "# devhelp"
102*67e74705SXin Li
103*67e74705SXin Liepub:
104*67e74705SXin Li	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
105*67e74705SXin Li	@echo
106*67e74705SXin Li	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
107*67e74705SXin Li
108*67e74705SXin Lilatex:
109*67e74705SXin Li	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
110*67e74705SXin Li	@echo
111*67e74705SXin Li	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
112*67e74705SXin Li	@echo "Run \`make' in that directory to run these through (pdf)latex" \
113*67e74705SXin Li	      "(use \`make latexpdf' here to do that automatically)."
114*67e74705SXin Li
115*67e74705SXin Lilatexpdf:
116*67e74705SXin Li	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
117*67e74705SXin Li	@echo "Running LaTeX files through pdflatex..."
118*67e74705SXin Li	$(MAKE) -C $(BUILDDIR)/latex all-pdf
119*67e74705SXin Li	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
120*67e74705SXin Li
121*67e74705SXin Litext:
122*67e74705SXin Li	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
123*67e74705SXin Li	@echo
124*67e74705SXin Li	@echo "Build finished. The text files are in $(BUILDDIR)/text."
125*67e74705SXin Li
126*67e74705SXin Liman:
127*67e74705SXin Li	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
128*67e74705SXin Li	@echo
129*67e74705SXin Li	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
130*67e74705SXin Li
131*67e74705SXin Litexinfo:
132*67e74705SXin Li	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
133*67e74705SXin Li	@echo
134*67e74705SXin Li	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
135*67e74705SXin Li	@echo "Run \`make' in that directory to run these through makeinfo" \
136*67e74705SXin Li	      "(use \`make info' here to do that automatically)."
137*67e74705SXin Li
138*67e74705SXin Liinfo:
139*67e74705SXin Li	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
140*67e74705SXin Li	@echo "Running Texinfo files through makeinfo..."
141*67e74705SXin Li	make -C $(BUILDDIR)/texinfo info
142*67e74705SXin Li	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
143*67e74705SXin Li
144*67e74705SXin Ligettext:
145*67e74705SXin Li	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
146*67e74705SXin Li	@echo
147*67e74705SXin Li	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
148*67e74705SXin Li
149*67e74705SXin Lichanges:
150*67e74705SXin Li	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
151*67e74705SXin Li	@echo
152*67e74705SXin Li	@echo "The overview file is in $(BUILDDIR)/changes."
153*67e74705SXin Li
154*67e74705SXin Lilinkcheck:
155*67e74705SXin Li	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
156*67e74705SXin Li	@echo
157*67e74705SXin Li	@echo "Link check complete; look for any errors in the above output " \
158*67e74705SXin Li	      "or in $(BUILDDIR)/linkcheck/output.txt."
159*67e74705SXin Li
160*67e74705SXin Lidoctest:
161*67e74705SXin Li	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
162*67e74705SXin Li	@echo "Testing of doctests in the sources finished, look at the " \
163*67e74705SXin Li	      "results in $(BUILDDIR)/doctest/output.txt."
164