3c06eba17a
We get lots of warnings due to sphinx complaining about missing includes for generated synopsis. We do not reference to any of those for now, so we can ignore that now and supress all standard and warning output. Note: Errors are still reported. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
256 lines
8.0 KiB
Makefile
256 lines
8.0 KiB
Makefile
include ../defines.mk
|
|
|
|
GENERATED_SYNOPSIS := \
|
|
proxmox-tape/synopsis.rst \
|
|
proxmox-backup-client/synopsis.rst \
|
|
proxmox-backup-client/catalog-shell-synopsis.rst \
|
|
proxmox-backup-manager/synopsis.rst \
|
|
proxmox-file-restore/synopsis.rst \
|
|
pxar/synopsis.rst \
|
|
pmtx/synopsis.rst \
|
|
pmt/synopsis.rst \
|
|
config/media-pool/config.rst \
|
|
config/tape/config.rst \
|
|
config/tape-job/config.rst \
|
|
config/user/config.rst \
|
|
config/remote/config.rst \
|
|
config/sync/config.rst \
|
|
config/verification/config.rst \
|
|
config/acl/roles.rst \
|
|
config/datastore/config.rst
|
|
|
|
MAN1_PAGES := \
|
|
pxar.1 \
|
|
pmtx.1 \
|
|
pmt.1 \
|
|
proxmox-tape.1 \
|
|
proxmox-backup-proxy.1 \
|
|
proxmox-backup-client.1 \
|
|
proxmox-backup-manager.1 \
|
|
proxmox-file-restore.1
|
|
|
|
MAN5_PAGES := \
|
|
media-pool.cfg.5 \
|
|
tape.cfg.5 \
|
|
tape-job.cfg.5 \
|
|
acl.cfg.5 \
|
|
user.cfg.5 \
|
|
remote.cfg.5 \
|
|
sync.cfg.5 \
|
|
verification.cfg.5 \
|
|
datastore.cfg.5
|
|
|
|
PRUNE_SIMULATOR_FILES := \
|
|
prune-simulator/index.html \
|
|
prune-simulator/documentation.html \
|
|
prune-simulator/clear-trigger.png \
|
|
prune-simulator/prune-simulator.js
|
|
|
|
LTO_BARCODE_FILES := \
|
|
lto-barcode/index.html \
|
|
lto-barcode/code39.js \
|
|
lto-barcode/prefix-field.js \
|
|
lto-barcode/label-style.js \
|
|
lto-barcode/tape-type.js \
|
|
lto-barcode/paper-size.js \
|
|
lto-barcode/page-layout.js \
|
|
lto-barcode/page-calibration.js \
|
|
lto-barcode/label-list.js \
|
|
lto-barcode/label-setup.js \
|
|
lto-barcode/lto-barcode.js
|
|
|
|
API_VIEWER_SOURCES= \
|
|
api-viewer/index.html \
|
|
api-viewer/apidoc.js
|
|
|
|
# Sphinx documentation setup
|
|
SPHINXOPTS =
|
|
SPHINXBUILD = sphinx-build
|
|
BUILDDIR = output
|
|
|
|
ifeq ($(BUILD_MODE), release)
|
|
COMPILEDIR := ../target/release
|
|
SPHINXOPTS += -t release
|
|
else
|
|
COMPILEDIR := ../target/debug
|
|
SPHINXOPTS += -t devbuild
|
|
endif
|
|
|
|
# Sphinx internal variables.
|
|
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) .
|
|
|
|
all: ${MAN1_PAGES} ${MAN5_PAGES}
|
|
|
|
# Build manual pages using rst2man
|
|
|
|
pxar/synopsis.rst: ${COMPILEDIR}/pxar
|
|
${COMPILEDIR}/pxar printdoc > pxar/synopsis.rst
|
|
|
|
pxar.1: pxar/man1.rst pxar/description.rst pxar/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
|
|
pmtx/synopsis.rst: ${COMPILEDIR}/pmtx
|
|
${COMPILEDIR}/pmtx printdoc > pmtx/synopsis.rst
|
|
|
|
pmtx.1: pmtx/man1.rst pmtx/description.rst pmtx/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
|
|
pmt/synopsis.rst: ${COMPILEDIR}/pmt
|
|
${COMPILEDIR}/pmt printdoc > pmt/synopsis.rst
|
|
|
|
pmt.1: pmt/man1.rst pmt/description.rst pmt/options.rst pmt/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
config/datastore/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen datastore.cfg >$@
|
|
|
|
datastore.cfg.5: config/datastore/man5.rst config/datastore/config.rst config/datastore/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/user/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen user.cfg >$@
|
|
|
|
user.cfg.5: config/user/man5.rst config/user/config.rst config/user/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/remote/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen remote.cfg >$@
|
|
|
|
remote.cfg.5: config/remote/man5.rst config/remote/config.rst config/remote/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/sync/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen sync.cfg >$@
|
|
|
|
sync.cfg.5: config/sync/man5.rst config/sync/config.rst config/sync/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/verification/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen verification.cfg >$@
|
|
|
|
verification.cfg.5: config/verification/man5.rst config/verification/config.rst config/verification/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/acl/roles.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen "config::acl::Role" >$@
|
|
|
|
acl.cfg.5: config/acl/man5.rst config/acl/roles.rst config/acl/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/media-pool/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen media-pool.cfg >$@
|
|
|
|
media-pool.cfg.5: config/media-pool/man5.rst config/media-pool/config.rst config/media-pool/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/tape/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen tape.cfg >$@
|
|
|
|
tape.cfg.5: config/tape/man5.rst config/tape/config.rst config/tape/format.rst
|
|
rst2man $< >$@
|
|
|
|
config/tape-job/config.rst: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen tape-job.cfg >$@
|
|
|
|
tape-job.cfg.5: config/tape-job/man5.rst config/tape-job/config.rst config/tape-job/format.rst
|
|
rst2man $< >$@
|
|
|
|
proxmox-tape/synopsis.rst: ${COMPILEDIR}/proxmox-tape
|
|
${COMPILEDIR}/proxmox-tape printdoc > proxmox-tape/synopsis.rst
|
|
|
|
proxmox-tape.1: proxmox-tape/man1.rst proxmox-tape/description.rst proxmox-tape/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
proxmox-backup-client/synopsis.rst: ${COMPILEDIR}/proxmox-backup-client
|
|
${COMPILEDIR}/proxmox-backup-client printdoc > proxmox-backup-client/synopsis.rst
|
|
|
|
proxmox-backup-client/catalog-shell-synopsis.rst: ${COMPILEDIR}/dump-catalog-shell-cli
|
|
${COMPILEDIR}/dump-catalog-shell-cli > proxmox-backup-client/catalog-shell-synopsis.rst
|
|
|
|
proxmox-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
|
|
rst2man $< >$@
|
|
|
|
proxmox-backup-manager/synopsis.rst: ${COMPILEDIR}/proxmox-backup-manager
|
|
${COMPILEDIR}/proxmox-backup-manager printdoc > proxmox-backup-manager/synopsis.rst
|
|
|
|
proxmox-backup-manager.1: proxmox-backup-manager/man1.rst proxmox-backup-manager/description.rst proxmox-backup-manager/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
proxmox-backup-proxy.1: proxmox-backup-proxy/man1.rst proxmox-backup-proxy/description.rst
|
|
rst2man $< >$@
|
|
|
|
proxmox-file-restore/synopsis.rst: ${COMPILEDIR}/proxmox-file-restore
|
|
${COMPILEDIR}/proxmox-file-restore printdoc > proxmox-file-restore/synopsis.rst
|
|
|
|
proxmox-file-restore.1: proxmox-file-restore/man1.rst proxmox-file-restore/description.rst proxmox-file-restore/synopsis.rst
|
|
rst2man $< >$@
|
|
|
|
.PHONY: onlinehelpinfo
|
|
onlinehelpinfo:
|
|
@echo "Generating OnlineHelpInfo.js..."
|
|
$(SPHINXBUILD) -b proxmox-scanrefs -Q $(ALLSPHINXOPTS) $(BUILDDIR)/scanrefs
|
|
@echo "Build finished. OnlineHelpInfo.js is in $(BUILDDIR)/scanrefs."
|
|
|
|
api-viewer/apidata.js: ${COMPILEDIR}/docgen
|
|
${COMPILEDIR}/docgen apidata.js >$@
|
|
|
|
api-viewer/apidoc.js: api-viewer/apidata.js api-viewer/PBSAPI.js
|
|
cat api-viewer/apidata.js api-viewer/PBSAPI.js >$@
|
|
|
|
.PHONY: html
|
|
html: ${GENERATED_SYNOPSIS} images/proxmox-logo.svg custom.css conf.py ${PRUNE_SIMULATOR_FILES} ${LTO_BARCODE_FILES} ${API_VIEWER_SOURCES}
|
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
install -m 0644 custom.js custom.css images/proxmox-logo.svg $(BUILDDIR)/html/_static/
|
|
install -dm 0755 $(BUILDDIR)/html/prune-simulator
|
|
install -m 0644 ${PRUNE_SIMULATOR_FILES} $(BUILDDIR)/html/prune-simulator
|
|
install -dm 0755 $(BUILDDIR)/html/lto-barcode
|
|
install -m 0644 ${LTO_BARCODE_FILES} $(BUILDDIR)/html/lto-barcode
|
|
install -dm 0755 $(BUILDDIR)/html/api-viewer
|
|
install -m 0644 ${API_VIEWER_SOURCES} $(BUILDDIR)/html/api-viewer
|
|
@echo
|
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
|
|
|
.PHONY: latexpdf
|
|
latexpdf: ${GENERATED_SYNOPSIS}
|
|
@echo "Requires python3-sphinx, texlive-xetex, xindy and texlive-fonts-extra"
|
|
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
@echo "Running LaTeX files through xelatex..."
|
|
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
|
@echo "xelatex finished; the PDF files are in $(BUILDDIR)/latex."
|
|
|
|
.PHONY: epub3
|
|
epub3: ${GENERATED_SYNOPSIS}
|
|
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
|
|
@echo
|
|
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
|
|
|
|
clean:
|
|
rm -r -f *~ *.1 ${BUILDDIR} ${GENERATED_SYNOPSIS} api-viewer/apidata.js
|
|
|
|
|
|
install_manual_pages: ${MAN1_PAGES} ${MAN5_PAGES}
|
|
install -dm755 $(DESTDIR)$(MAN1DIR)
|
|
for i in ${MAN1_PAGES}; do install -m755 $$i $(DESTDIR)$(MAN1DIR)/ ; done
|
|
install -dm755 $(DESTDIR)$(MAN5DIR)
|
|
for i in ${MAN5_PAGES}; do install -m755 $$i $(DESTDIR)$(MAN5DIR)/ ; done
|
|
|
|
install_html: html
|
|
install -dm755 $(DESTDIR)$(DOCDIR)
|
|
rsync -a ${BUILDDIR}/html $(DESTDIR)$(DOCDIR)
|
|
|
|
install_pdf: latexpdf
|
|
install -dm755 $(DESTDIR)$(DOCDIR)
|
|
install -m 0644 output/latex/ProxmoxBackup.pdf $(DESTDIR)$(DOCDIR)/proxmox-backup.pdf
|
|
|
|
ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
|
|
|
|
install: install_manual_pages
|
|
|
|
else
|
|
|
|
install: install_manual_pages install_html install_pdf
|
|
|
|
endif
|