]> git.proxmox.com Git - mirror_ovs.git/blame - Documentation/automake.mk
Documentation: Document a useful pre-push hook for committers.
[mirror_ovs.git] / Documentation / automake.mk
CommitLineData
e9f521b3 1DOC_SOURCE = \
c431227e 2 Documentation/group-selection-method-property.txt \
daf5079e 3 Documentation/_static/logo.png \
2eaf6a08 4 Documentation/_static/overview.png \
daf5079e
SF
5 Documentation/conf.py \
6 Documentation/index.rst \
11820a1f
SF
7 Documentation/contents.rst \
8 Documentation/intro/index.rst \
2eaf6a08 9 Documentation/intro/what-is-ovs.rst \
3c8a3b31 10 Documentation/intro/why-ovs.rst \
11820a1f 11 Documentation/intro/install/index.rst \
795752a3 12 Documentation/intro/install/bash-completion.rst \
0de1b425 13 Documentation/intro/install/afxdp.rst \
795752a3 14 Documentation/intro/install/debian.rst \
73c76b44 15 Documentation/intro/install/documentation.rst \
4ae3db4a 16 Documentation/intro/install/distributions.rst \
795752a3
SF
17 Documentation/intro/install/dpdk.rst \
18 Documentation/intro/install/fedora.rst \
19 Documentation/intro/install/general.rst \
20 Documentation/intro/install/netbsd.rst \
21 Documentation/intro/install/rhel.rst \
22 Documentation/intro/install/userspace.rst \
23 Documentation/intro/install/windows.rst \
24 Documentation/intro/install/xenserver.rst \
11820a1f 25 Documentation/tutorials/index.rst \
98dc8dee 26 Documentation/tutorials/faucet.rst \
e12569bb 27 Documentation/tutorials/ovs-advanced.rst \
c9ccdec7 28 Documentation/tutorials/ovs-conntrack.rst \
7b243c30 29 Documentation/tutorials/ipsec.rst \
11820a1f 30 Documentation/topics/index.rst \
7c9afefd 31 Documentation/topics/bonding.rst \
e90bc056 32 Documentation/topics/idl-compound-indexes.rst \
7c9afefd
SF
33 Documentation/topics/datapath.rst \
34 Documentation/topics/design.rst \
e69e4f5b 35 Documentation/topics/dpdk/index.rst \
7b743caf 36 Documentation/topics/dpdk/bridge.rst \
a790e75f 37 Documentation/topics/dpdk/jumbo-frames.rst \
43307ad0 38 Documentation/topics/dpdk/memory.rst \
099a3547 39 Documentation/topics/dpdk/pdump.rst \
6477dbb9 40 Documentation/topics/dpdk/phy.rst \
31d0dae2 41 Documentation/topics/dpdk/pmd.rst \
6fe32f11 42 Documentation/topics/dpdk/qos.rst \
144d1cee 43 Documentation/topics/dpdk/ring.rst \
b20eabc3 44 Documentation/topics/dpdk/vdev.rst \
e69e4f5b 45 Documentation/topics/dpdk/vhost-user.rst \
d11728b1
BS
46 Documentation/topics/fuzzing/index.rst \
47 Documentation/topics/fuzzing/what-is-fuzzing.rst \
48 Documentation/topics/fuzzing/ovs-fuzzing-infrastructure.rst \
49 Documentation/topics/fuzzing/ovs-fuzzers.rst \
50 Documentation/topics/fuzzing/security-analysis-of-ovs-fuzzers.rst \
e69e4f5b 51 Documentation/topics/testing.rst \
7c9afefd 52 Documentation/topics/integration.rst \
f150a8ba 53 Documentation/topics/language-bindings.rst \
60405863 54 Documentation/topics/networking-namespaces.rst \
7c9afefd
SF
55 Documentation/topics/openflow.rst \
56 Documentation/topics/ovsdb-replication.rst \
57 Documentation/topics/porting.rst \
73f5354b 58 Documentation/topics/tracing.rst \
7c9afefd 59 Documentation/topics/windows.rst \
11820a1f 60 Documentation/howto/index.rst \
e69e4f5b 61 Documentation/howto/dpdk.rst \
7b243c30 62 Documentation/howto/ipsec.rst \
795752a3
SF
63 Documentation/howto/kvm.rst \
64 Documentation/howto/libvirt.rst \
65 Documentation/howto/selinux.rst \
66 Documentation/howto/ssl.rst \
43f317ff 67 Documentation/howto/lisp.rst \
b0bef8d1
SF
68 Documentation/howto/qos.png \
69 Documentation/howto/qos.rst \
198c5d3d
SF
70 Documentation/howto/sflow.png \
71 Documentation/howto/sflow.rst \
4643d687
SF
72 Documentation/howto/tunneling.png \
73 Documentation/howto/tunneling.rst \
b438493e 74 Documentation/howto/userspace-tunneling.rst \
e37319ea
SF
75 Documentation/howto/vlan.png \
76 Documentation/howto/vlan.rst \
43f317ff 77 Documentation/howto/vtep.rst \
11820a1f
SF
78 Documentation/ref/index.rst \
79 Documentation/faq/index.rst \
11e02906
SF
80 Documentation/faq/configuration.rst \
81 Documentation/faq/contributing.rst \
82 Documentation/faq/design.rst \
83 Documentation/faq/general.rst \
84 Documentation/faq/issues.rst \
85 Documentation/faq/openflow.rst \
86 Documentation/faq/qos.rst \
87 Documentation/faq/releases.rst \
88 Documentation/faq/terminology.rst \
89 Documentation/faq/vlan.rst \
90 Documentation/faq/vxlan.rst \
d0e53b15
SF
91 Documentation/internals/index.rst \
92 Documentation/internals/authors.rst \
93 Documentation/internals/bugs.rst \
45c2f69a 94 Documentation/internals/charter.rst \
43e9c263 95 Documentation/internals/committer-emeritus-status.rst \
d0e53b15
SF
96 Documentation/internals/committer-grant-revocation.rst \
97 Documentation/internals/committer-responsibilities.rst \
1e6567d4 98 Documentation/internals/documentation.rst \
d0e53b15
SF
99 Documentation/internals/mailing-lists.rst \
100 Documentation/internals/maintainers.rst \
3c2604f7 101 Documentation/internals/patchwork.rst \
d0e53b15
SF
102 Documentation/internals/release-process.rst \
103 Documentation/internals/security.rst \
104 Documentation/internals/contributing/index.rst \
1102cc39 105 Documentation/internals/contributing/backporting-patches.rst \
d0e53b15
SF
106 Documentation/internals/contributing/coding-style.rst \
107 Documentation/internals/contributing/coding-style-windows.rst \
108 Documentation/internals/contributing/documentation-style.rst \
cb991590 109 Documentation/internals/contributing/libopenvswitch-abi.rst \
73c76b44 110 Documentation/internals/contributing/submitting-patches.rst \
fd0837a7 111 Documentation/requirements.txt \
16ee8726 112 $(addprefix Documentation/ref/,$(RST_MANPAGES) $(RST_MANPAGES_NOINST))
b9b3b9ce 113FLAKE8_PYFILES += Documentation/conf.py
e9f521b3
RB
114EXTRA_DIST += $(DOC_SOURCE)
115
daf5079e
SF
116# You can set these variables from the command line.
117SPHINXOPTS =
daf5079e 118SPHINXSRCDIR = $(srcdir)/Documentation
c431227e 119SPHINXBUILDDIR = $(builddir)/Documentation/_build
daf5079e
SF
120
121# Internal variables.
70cb24de 122ALLSPHINXOPTS = -W -n -d $(SPHINXBUILDDIR)/doctrees $(SPHINXOPTS) $(SPHINXSRCDIR)
daf5079e 123
099cf485
SF
124sphinx_verbose = $(sphinx_verbose_@AM_V@)
125sphinx_verbose_ = $(sphinx_verbose_@AM_DEFAULT_V@)
126sphinx_verbose_0 = -q
d84bdc82
SF
127
128if HAVE_SPHINX
fd0837a7 129docs-check: $(DOC_SOURCE)
e9f521b3 130 $(AM_V_GEN)$(SPHINXBUILD) $(sphinx_verbose) -b html $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html && touch $@
fd0837a7
SF
131 $(AM_V_GEN)$(SPHINXBUILD) $(sphinx_verbose) -b man $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/man && touch $@
132ALL_LOCAL += docs-check
133CLEANFILES += docs-check
099cf485
SF
134
135check-docs:
136 $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/linkcheck
f93f0e4a
SF
137
138clean-docs:
fd0837a7 139 rm -rf $(SPHINXBUILDDIR)
f654d6e4 140 rm -f docs-check
f93f0e4a 141CLEAN_LOCAL += clean-docs
d84bdc82 142endif
d84bdc82 143.PHONY: check-docs
f93f0e4a 144.PHONY: clean-docs
fd0837a7
SF
145\f
146# Installing manpages based on rST.
147#
148# The docs-check target converts the rST files listed in RST_MANPAGES
149# into nroff manpages in Documentation/_build/man. The easiest way to
150# get these installed by "make install" is to write our own helper
151# rules.
152
153# rST formatted manpages under Documentation/ref.
154RST_MANPAGES = \
3591d8c7 155 ovs-test.8.rst \
12b84d50
BP
156 ovs-vlan-test.8.rst \
157 ovsdb-server.7.rst \
158 ovsdb.5.rst \
16ee8726
BP
159 ovsdb.7.rst
160
161# rST formatted manpages that we don't want to install because they
162# document stuff that only works with a build tree, not with an
163# installed OVS.
164RST_MANPAGES_NOINST = ovs-sim.1.rst
fd0837a7
SF
165
166# The GNU standards say that these variables should control
167# installation directories for manpages in each section. Automake
168# will define them for us only if it sees that a manpage in the
169# appropriate section is to be installed through its built-in feature.
170# Since we're working independently, for best safety, we need to
171# define them ourselves.
172man1dir = $(mandir)/man1
173man2dir = $(mandir)/man2
174man3dir = $(mandir)/man3
175man4dir = $(mandir)/man4
176man5dir = $(mandir)/man5
177man6dir = $(mandir)/man6
178man7dir = $(mandir)/man7
179man8dir = $(mandir)/man8
180man9dir = $(mandir)/man9
181
182# Set a shell variable for each manpage directory.
183set_mandirs = \
184 man1dir='$(man1dir)' \
185 man2dir='$(man2dir)' \
186 man3dir='$(man3dir)' \
187 man4dir='$(man4dir)' \
188 man5dir='$(man5dir)' \
189 man6dir='$(man6dir)' \
190 man7dir='$(man7dir)' \
191 man8dir='$(man8dir)' \
192 man9dir='$(man9dir)'
193
194# Given an $rst of "ovs-vlan-test.8.rst", sets $stem to
195# "ovs-vlan-test", $section to "8", and $mandir to $man8dir.
196extract_stem_and_section = \
197 stem=`echo "$$rst" | sed -n 's/^\(.*\)\.\([0-9]\).rst$$/\1/p'`; \
198 section=`echo "$$rst" | sed -n 's/^\(.*\)\.\([0-9]\).rst$$/\2/p'`; \
199 test -n "$$section" || { echo "$$rst: cannot infer manpage section from filename" 2>&1; continue; }; \
200 eval "mandir=\$$man$${section}dir"; \
201 test -n "$$mandir" || { echo "unknown directory for manpage section $$section"; continue; }
202
fd0837a7 203INSTALL_DATA_LOCAL += install-man-rst
9db5e1ef 204if HAVE_SPHINX
fd0837a7
SF
205install-man-rst: docs-check
206 @$(set_mandirs); \
16ee8726 207 for rst in $(RST_MANPAGES) $(EXTRA_RST_MANPAGES); do \
fd0837a7
SF
208 $(extract_stem_and_section); \
209 echo " $(MKDIR_P) '$(DESTDIR)'\"$$mandir\""; \
210 $(MKDIR_P) '$(DESTDIR)'"$$mandir"; \
211 echo " $(INSTALL_DATA) $(SPHINXBUILDDIR)/man/$$stem.$$section '$(DESTDIR)'\"$$mandir/$$stem.$$section\""; \
212 $(INSTALL_DATA) $(SPHINXBUILDDIR)/man/$$stem.$$section '$(DESTDIR)'"$$mandir/$$stem.$$section"; \
213 done
9db5e1ef
BP
214else
215install-man-rst:
216 @:
fd0837a7
SF
217endif
218
219UNINSTALL_LOCAL += uninstall-man-rst
220uninstall-man-rst:
221 @$(set_mandirs); \
222 for rst in $(RST_MANPAGES); do \
223 $(extract_stem_and_section); \
224 echo "rm -f '$(DESTDIR)'\"$$mandir/$$stem.$$section\""; \
225 rm -f '$(DESTDIR)'"$$mandir/$$stem.$$section"; \
226 done