include ../defines.mk GENERATED_SYNOPSIS := \ proxmox-offline-mirror/synopsis.rst \ proxmox-offline-mirror-helper/synopsis.rst \ config/mirror/config.rst MAN1_PAGES := \ proxmox-offline-mirror.1 \ proxmox-offline-mirror-helper.1 MAN5_PAGES := \ proxmox-offline-mirror.cfg.5 EXAMPLE_FILES := \ examples/nginx-conf # Sphinx documentation setup SPHINXOPTS = SPHINXBUILD = sphinx-build BUILDDIR = output ifeq ($(BUILD_MODE), release) COMPILEDIR := ../target/$release SPHINXOPTS += -t release else ifeq ($(BUILD_MODE), release-deb) COMPILEDIR := ../target/$(DEB_HOST_RUST_TYPE)/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) config/%/config.rst: $(COMPILEDIR)/docgen $(COMPILEDIR)/docgen $*.cfg >$@ %/synopsis.rst: $(COMPILEDIR)/% $< printdoc > $@ $(MAN1_PAGES) $(MAN5_PAGES): man-pages .PHONY: man-pages man-pages: $(GENERATED_SYNOPSIS) $(SPHINXBUILD) $(SPHINXOPTS) -b man ./ $(BUILDDIR)/man .PHONY: html html: $(GENERATED_SYNOPSIS) images/proxmox-logo.svg custom.css conf.py $(PRUNE_SIMULATOR_FILES) $(LTO_BARCODE_FILES) $(API_VIEWER_SOURCES) $(EXAMPLE_FILES) $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html install -m 0644 custom.js custom.css images/proxmox-logo.svg $(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: man-pages install -dm755 $(DESTDIR)$(MAN1DIR) for i in $(MAN1_PAGES); do install -m755 $(BUILDDIR)/man/$$i $(DESTDIR)$(MAN1DIR)/ ; done install -dm755 $(DESTDIR)$(MAN5DIR) for i in $(MAN5_PAGES); do install -m755 $(BUILDDIR)/man/$$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/ProxmoxOfflineMirror.pdf $(DESTDIR)$(DOCDIR)/proxmox-offline-mirror.pdf install_examples: $(EXAMPLE_FILES) install -dm755 $(DESTDIR)$(DOCDIR)/examples install -m 0644 examples/nginx-conf $(DESTDIR)$(DOCDIR)/examples ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),) install: install_manual_pages else install: install_manual_pages install_html install_pdf install_examples endif