05c16a6e59
It's not all perfect (yet) but way cleaner and simpler to use than the sphinx one. Custom do the scrolling for the fixed side bar and make some other slight adjustments. Main issue for now is that the "Developer Appendix" is always shown in the navigation tree, but we only include that toctree for devbuilds... Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
123 lines
3.7 KiB
Makefile
123 lines
3.7 KiB
Makefile
include ../defines.mk
|
|
|
|
GENERATED_SYNOPSIS := \
|
|
proxmox-backup-client/synopsis.rst \
|
|
proxmox-backup-client/catalog-shell-synopsis.rst \
|
|
proxmox-backup-manager/synopsis.rst \
|
|
pxar/synopsis.rst \
|
|
backup-protocol-api.rst \
|
|
reader-protocol-api.rst
|
|
|
|
MANUAL_PAGES := \
|
|
pxar.1 \
|
|
proxmox-backup-proxy.1 \
|
|
proxmox-backup-client.1 \
|
|
proxmox-backup-manager.1
|
|
|
|
|
|
# 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: ${MANUAL_PAGES}
|
|
|
|
# Extract backup protocol docs
|
|
backup-protocol-api.rst: ${COMPILEDIR}/dump-backup-api
|
|
${COMPILEDIR}/dump-backup-api >$@
|
|
|
|
# Extract reader protocol docs
|
|
reader-protocol-api.rst: ${COMPILEDIR}/dump-reader-api
|
|
${COMPILEDIR}/dump-backup-api >$@
|
|
|
|
# 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 $< >$@
|
|
|
|
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 $< >$@
|
|
|
|
.PHONY: onlinehelpinfo
|
|
onlinehelpinfo:
|
|
@echo "Generating OnlineHelpInfo.js..."
|
|
$(SPHINXBUILD) -b proxmox-scanrefs $(ALLSPHINXOPTS) $(BUILDDIR)/scanrefs
|
|
@echo "Build finished. OnlineHelpInfo.js is in $(BUILDDIR)/scanrefs."
|
|
|
|
.PHONY: html
|
|
html: ${GENERATED_SYNOPSIS}
|
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
cp images/proxmox-logo.svg $(BUILDDIR)/html/_static/
|
|
cp custom.css $(BUILDDIR)/html/_static/
|
|
@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}
|
|
|
|
|
|
install_manual_pages: ${MANUAL_PAGES}
|
|
install -dm755 $(DESTDIR)$(MAN1DIR)
|
|
for i in ${MANUAL_PAGES}; do install -m755 $$i $(DESTDIR)$(MAN1DIR)/ ; 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
|