]> git.proxmox.com Git - proxmox-backup.git/blame - docs/Makefile
docs: mention group filter in sync docs
[proxmox-backup.git] / docs / Makefile
CommitLineData
bb5c7707
DM
1include ../defines.mk
2
4bf0cc3b 3GENERATED_SYNOPSIS := \
bebd4a7c 4 proxmox-tape/synopsis.rst \
4bf0cc3b
DM
5 proxmox-backup-client/synopsis.rst \
6 proxmox-backup-client/catalog-shell-synopsis.rst \
7 proxmox-backup-manager/synopsis.rst \
df12c9ec 8 proxmox-backup-debug/synopsis.rst \
76425d84 9 proxmox-file-restore/synopsis.rst \
4bf0cc3b 10 pxar/synopsis.rst \
c9727044 11 pmtx/synopsis.rst \
4c209d6b 12 pmt/synopsis.rst \
167e5406 13 config/media-pool/config.rst \
c111c9a9 14 config/tape/config.rst \
7ca0ba45 15 config/tape-job/config.rst \
67cc79ec 16 config/user/config.rst \
d8dae160
DM
17 config/remote/config.rst \
18 config/sync/config.rst \
5b7f4455 19 config/verification/config.rst \
2ca396c0 20 config/acl/roles.rst \
4a0d3a3e 21 config/datastore/config.rst
bb5c7707 22
4a0d3a3e 23MAN1_PAGES := \
e4a5ab8d 24 pxar.1 \
c9727044 25 pmtx.1 \
4c209d6b 26 pmt.1 \
bebd4a7c 27 proxmox-tape.1 \
b933ed7f 28 proxmox-backup-proxy.1 \
028bd254 29 proxmox-backup-client.1 \
76425d84 30 proxmox-backup-manager.1 \
df12c9ec
WB
31 proxmox-file-restore.1 \
32 proxmox-backup-debug.1
7ef486ae 33
4a0d3a3e 34MAN5_PAGES := \
bb71e3a0 35 media-pool.cfg.5 \
c111c9a9 36 tape.cfg.5 \
7ca0ba45 37 tape-job.cfg.5 \
2ca396c0 38 acl.cfg.5 \
67cc79ec 39 user.cfg.5 \
6279b8f5 40 remote.cfg.5 \
d8dae160 41 sync.cfg.5 \
5b7f4455 42 verification.cfg.5 \
4a0d3a3e
DM
43 datastore.cfg.5
44
3323798b
FE
45PRUNE_SIMULATOR_FILES := \
46 prune-simulator/index.html \
47 prune-simulator/documentation.html \
21b55284 48 prune-simulator/clear-trigger.png \
3323798b 49 prune-simulator/prune-simulator.js
7ef486ae 50
442d6da8
DC
51PRUNE_SIMULATOR_JS_SOURCE := \
52 /usr/share/javascript/proxmox-widget-toolkit-dev/Toolkit.js \
53 prune-simulator/prune-simulator_source.js
54
d7386690
DC
55LTO_BARCODE_JS_SOURCE := \
56 /usr/share/javascript/proxmox-widget-toolkit-dev/Toolkit.js \
57 lto-barcode/code39.js \
58 lto-barcode/prefix-field.js \
59 lto-barcode/label-style.js \
60 lto-barcode/tape-type.js \
61 lto-barcode/paper-size.js \
62 lto-barcode/page-layout.js \
63 lto-barcode/page-calibration.js \
64 lto-barcode/label-list.js \
65 lto-barcode/label-setup.js \
66 lto-barcode/lto-barcode.js
67
4a227b54
DM
68LTO_BARCODE_FILES := \
69 lto-barcode/index.html \
d7386690 70 lto-barcode/lto-barcode-generator.js
4a227b54 71
1adbc7c1
DM
72API_VIEWER_SOURCES= \
73 api-viewer/index.html \
74 api-viewer/apidoc.js
75
85417b2a
DC
76API_VIEWER_FILES := \
77 api-viewer/apidata.js \
78 /usr/share/javascript/proxmox-widget-toolkit-dev/APIViewer.js \
79
7ef486ae
DM
80# Sphinx documentation setup
81SPHINXOPTS =
82SPHINXBUILD = sphinx-build
7ef486ae
DM
83BUILDDIR = output
84
3a998863
TL
85ifeq ($(BUILD_MODE), release)
86COMPILEDIR := ../target/release
87SPHINXOPTS += -t release
88else
89COMPILEDIR := ../target/debug
90SPHINXOPTS += -t devbuild
91endif
92
7ef486ae 93# Sphinx internal variables.
c5ff1241 94ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) .
7ef486ae 95
4a0d3a3e 96all: ${MAN1_PAGES} ${MAN5_PAGES}
7ef486ae
DM
97
98# Build manual pages using rst2man
99
e4a5ab8d
DM
100pxar/synopsis.rst: ${COMPILEDIR}/pxar
101 ${COMPILEDIR}/pxar printdoc > pxar/synopsis.rst
102
103pxar.1: pxar/man1.rst pxar/description.rst pxar/synopsis.rst
104 rst2man $< >$@
105
c9727044
DM
106
107pmtx/synopsis.rst: ${COMPILEDIR}/pmtx
108 ${COMPILEDIR}/pmtx printdoc > pmtx/synopsis.rst
109
110pmtx.1: pmtx/man1.rst pmtx/description.rst pmtx/synopsis.rst
111 rst2man $< >$@
112
113
4c209d6b
DM
114pmt/synopsis.rst: ${COMPILEDIR}/pmt
115 ${COMPILEDIR}/pmt printdoc > pmt/synopsis.rst
116
bebd4a7c 117pmt.1: pmt/man1.rst pmt/description.rst pmt/options.rst pmt/synopsis.rst
4c209d6b
DM
118 rst2man $< >$@
119
4a0d3a3e
DM
120config/datastore/config.rst: ${COMPILEDIR}/docgen
121 ${COMPILEDIR}/docgen datastore.cfg >$@
122
6279b8f5 123datastore.cfg.5: config/datastore/man5.rst config/datastore/config.rst config/datastore/format.rst
4a0d3a3e 124 rst2man $< >$@
4c209d6b 125
67cc79ec
DM
126config/user/config.rst: ${COMPILEDIR}/docgen
127 ${COMPILEDIR}/docgen user.cfg >$@
128
6279b8f5
DM
129user.cfg.5: config/user/man5.rst config/user/config.rst config/user/format.rst
130 rst2man $< >$@
131
132config/remote/config.rst: ${COMPILEDIR}/docgen
133 ${COMPILEDIR}/docgen remote.cfg >$@
134
135remote.cfg.5: config/remote/man5.rst config/remote/config.rst config/remote/format.rst
67cc79ec
DM
136 rst2man $< >$@
137
d8dae160
DM
138config/sync/config.rst: ${COMPILEDIR}/docgen
139 ${COMPILEDIR}/docgen sync.cfg >$@
140
141sync.cfg.5: config/sync/man5.rst config/sync/config.rst config/sync/format.rst
142 rst2man $< >$@
143
5b7f4455
DM
144config/verification/config.rst: ${COMPILEDIR}/docgen
145 ${COMPILEDIR}/docgen verification.cfg >$@
146
147verification.cfg.5: config/verification/man5.rst config/verification/config.rst config/verification/format.rst
148 rst2man $< >$@
149
2ca396c0
DM
150config/acl/roles.rst: ${COMPILEDIR}/docgen
151 ${COMPILEDIR}/docgen "config::acl::Role" >$@
152
153acl.cfg.5: config/acl/man5.rst config/acl/roles.rst config/acl/format.rst
154 rst2man $< >$@
155
bb71e3a0
DM
156config/media-pool/config.rst: ${COMPILEDIR}/docgen
157 ${COMPILEDIR}/docgen media-pool.cfg >$@
158
159media-pool.cfg.5: config/media-pool/man5.rst config/media-pool/config.rst config/media-pool/format.rst
160 rst2man $< >$@
161
c111c9a9
DM
162config/tape/config.rst: ${COMPILEDIR}/docgen
163 ${COMPILEDIR}/docgen tape.cfg >$@
164
165tape.cfg.5: config/tape/man5.rst config/tape/config.rst config/tape/format.rst
166 rst2man $< >$@
167
7ca0ba45
DM
168config/tape-job/config.rst: ${COMPILEDIR}/docgen
169 ${COMPILEDIR}/docgen tape-job.cfg >$@
170
171tape-job.cfg.5: config/tape-job/man5.rst config/tape-job/config.rst config/tape-job/format.rst
172 rst2man $< >$@
173
bebd4a7c
DM
174proxmox-tape/synopsis.rst: ${COMPILEDIR}/proxmox-tape
175 ${COMPILEDIR}/proxmox-tape printdoc > proxmox-tape/synopsis.rst
176
177proxmox-tape.1: proxmox-tape/man1.rst proxmox-tape/description.rst proxmox-tape/synopsis.rst
178 rst2man $< >$@
179
7ef486ae 180proxmox-backup-client/synopsis.rst: ${COMPILEDIR}/proxmox-backup-client
bb5c7707 181 ${COMPILEDIR}/proxmox-backup-client printdoc > proxmox-backup-client/synopsis.rst
7ef486ae 182
4bf0cc3b
DM
183proxmox-backup-client/catalog-shell-synopsis.rst: ${COMPILEDIR}/dump-catalog-shell-cli
184 ${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
185
186proxmox-backup-client.1: proxmox-backup-client/man1.rst proxmox-backup-client/description.rst proxmox-backup-client/synopsis.rst proxmox-backup-client/catalog-shell-synopsis.rst
bb5c7707
DM
187 rst2man $< >$@
188
028bd254
DM
189proxmox-backup-manager/synopsis.rst: ${COMPILEDIR}/proxmox-backup-manager
190 ${COMPILEDIR}/proxmox-backup-manager printdoc > proxmox-backup-manager/synopsis.rst
191
192proxmox-backup-manager.1: proxmox-backup-manager/man1.rst proxmox-backup-manager/description.rst proxmox-backup-manager/synopsis.rst
193 rst2man $< >$@
194
b933ed7f
DM
195proxmox-backup-proxy.1: proxmox-backup-proxy/man1.rst proxmox-backup-proxy/description.rst
196 rst2man $< >$@
197
76425d84
DC
198proxmox-file-restore/synopsis.rst: ${COMPILEDIR}/proxmox-file-restore
199 ${COMPILEDIR}/proxmox-file-restore printdoc > proxmox-file-restore/synopsis.rst
200
201proxmox-file-restore.1: proxmox-file-restore/man1.rst proxmox-file-restore/description.rst proxmox-file-restore/synopsis.rst
202 rst2man $< >$@
203
df12c9ec
WB
204proxmox-backup-debug/synopsis.rst: ${COMPILEDIR}/proxmox-backup-debug
205 ${COMPILEDIR}/proxmox-backup-debug printdoc > proxmox-backup-debug/synopsis.rst
206
207proxmox-backup-debug.1: proxmox-backup-debug/man1.rst proxmox-backup-debug/description.rst proxmox-backup-debug/synopsis.rst
208 rst2man $< >$@
209
49df8ac1
OB
210.PHONY: onlinehelpinfo
211onlinehelpinfo:
212 @echo "Generating OnlineHelpInfo.js..."
3c06eba1 213 $(SPHINXBUILD) -b proxmox-scanrefs -Q $(ALLSPHINXOPTS) $(BUILDDIR)/scanrefs
49df8ac1
OB
214 @echo "Build finished. OnlineHelpInfo.js is in $(BUILDDIR)/scanrefs."
215
1adbc7c1
DM
216api-viewer/apidata.js: ${COMPILEDIR}/docgen
217 ${COMPILEDIR}/docgen apidata.js >$@
218
85417b2a
DC
219api-viewer/apidoc.js: ${API_VIEWER_FILES}
220 cat ${API_VIEWER_FILES} >$@.tmp
221 mv $@.tmp $@
1adbc7c1 222
442d6da8
DC
223prune-simulator/prune-simulator.js: ${PRUNE_SIMULATOR_JS_SOURCE}
224 cat ${PRUNE_SIMULATOR_JS_SOURCE} >$@.tmp
225 mv $@.tmp $@
226
d7386690
DC
227lto-barcode/lto-barcode-generator.js: ${LTO_BARCODE_JS_SOURCE}
228 cat ${LTO_BARCODE_JS_SOURCE} >$@.tmp
229 mv $@.tmp $@
230
7ef486ae 231.PHONY: html
1adbc7c1 232html: ${GENERATED_SYNOPSIS} images/proxmox-logo.svg custom.css conf.py ${PRUNE_SIMULATOR_FILES} ${LTO_BARCODE_FILES} ${API_VIEWER_SOURCES}
7ef486ae 233 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
8a40e226 234 install -m 0644 custom.js custom.css images/proxmox-logo.svg $(BUILDDIR)/html/_static/
3323798b
FE
235 install -dm 0755 $(BUILDDIR)/html/prune-simulator
236 install -m 0644 ${PRUNE_SIMULATOR_FILES} $(BUILDDIR)/html/prune-simulator
4a227b54
DM
237 install -dm 0755 $(BUILDDIR)/html/lto-barcode
238 install -m 0644 ${LTO_BARCODE_FILES} $(BUILDDIR)/html/lto-barcode
1adbc7c1
DM
239 install -dm 0755 $(BUILDDIR)/html/api-viewer
240 install -m 0644 ${API_VIEWER_SOURCES} $(BUILDDIR)/html/api-viewer
7ef486ae
DM
241 @echo
242 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
243
244.PHONY: latexpdf
177db84b 245latexpdf: ${GENERATED_SYNOPSIS}
fc598cdb 246 @echo "Requires python3-sphinx, texlive-xetex, xindy and texlive-fonts-extra"
7ef486ae 247 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
15d74eaa 248 @echo "Running LaTeX files through xelatex..."
7ef486ae 249 $(MAKE) -C $(BUILDDIR)/latex all-pdf
15d74eaa 250 @echo "xelatex finished; the PDF files are in $(BUILDDIR)/latex."
bb5c7707 251
7ef486ae 252.PHONY: epub3
177db84b 253epub3: ${GENERATED_SYNOPSIS}
7ef486ae
DM
254 $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
255 @echo
256 @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
bb5c7707
DM
257
258clean:
1adbc7c1 259 rm -r -f *~ *.1 ${BUILDDIR} ${GENERATED_SYNOPSIS} api-viewer/apidata.js
13a24457 260 rm -f api-viewer/apidoc.js lto-barcode/lto-barcode-generator.js prune-simulator/prune-simulator.js
bb5c7707 261
720776b8 262
4a0d3a3e 263install_manual_pages: ${MAN1_PAGES} ${MAN5_PAGES}
bb5c7707 264 install -dm755 $(DESTDIR)$(MAN1DIR)
4a0d3a3e
DM
265 for i in ${MAN1_PAGES}; do install -m755 $$i $(DESTDIR)$(MAN1DIR)/ ; done
266 install -dm755 $(DESTDIR)$(MAN5DIR)
267 for i in ${MAN5_PAGES}; do install -m755 $$i $(DESTDIR)$(MAN5DIR)/ ; done
720776b8
DM
268
269install_html: html
270 install -dm755 $(DESTDIR)$(DOCDIR)
da0e1e40 271 rsync -a ${BUILDDIR}/html $(DESTDIR)$(DOCDIR)
720776b8
DM
272
273install_pdf: latexpdf
274 install -dm755 $(DESTDIR)$(DOCDIR)
275 install -m 0644 output/latex/ProxmoxBackup.pdf $(DESTDIR)$(DOCDIR)/proxmox-backup.pdf
276
277ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
278
279install: install_manual_pages
280
281else
282
283install: install_manual_pages install_html install_pdf
284
285endif