summaryrefslogtreecommitdiff
path: root/utils/makefile.sphinx
diff options
context:
space:
mode:
Diffstat (limited to 'utils/makefile.sphinx')
-rw-r--r--utils/makefile.sphinx199
1 files changed, 0 insertions, 199 deletions
diff --git a/utils/makefile.sphinx b/utils/makefile.sphinx
deleted file mode 100644
index b674cf7f0..000000000
--- a/utils/makefile.sphinx
+++ /dev/null
@@ -1,199 +0,0 @@
-# -*- coding: utf-8; mode: makefile-gmake -*-
-
-export DOCS_FOLDER DOCS_BUILD DOCS_DIST BOOKS_FOLDER BOOKS_DIST
-
-# You can set these variables from the command line.
-SPHINXOPTS ?=
-SPHINXBUILD ?= $(PY_ENV_BIN)/sphinx-build
-SPHINX_CONF ?= conf.py
-
-DOCS_FOLDER = ./docs
-DOCS_BUILD = ./$(LXC_ENV_FOLDER)build/docs
-DOCS_DIST = ./$(LXC_ENV_FOLDER)dist/docs
-GH_PAGES ?= build/gh-pages
-
-BOOKS_FOLDER = ./docs
-BOOKS_DIST = ./$(LXC_ENV_FOLDER)dist/books
-
-ifeq ($(KBUILD_VERBOSE),1)
- SPHINX_VERBOSE = "-v"
-else
- SPHINX_VERBOSE =
-endif
-
-
-docs-help:
- @echo 'makefile.sphinx:'
- @echo ' docs-clean - clean intermediate doc objects'
- @echo ' $(GH_PAGES) - create & upload github pages'
- @echo ' sphinx-pdf - run sphinx latex & pdf targets'
- @echo ''
- @echo ' books/{name}.html : build only the HTML of document {name}'
- @echo ' valid values for books/{name}.html are:'
- @echo ' $(BOOKS_HTML)' | $(FMT)
- @echo ' books/{name}.pdf : build only the PDF of document {name}'
- @echo ' valid values for books/{name}.pdf are:'
- @echo ' $(BOOKS_PDF) ' | $(FMT)
-
-# ------------------------------------------------------------------------------
-# requirements
-# ------------------------------------------------------------------------------
-
-PHONY += msg-texlive texlive
-
-ifeq ($(shell which xelatex >/dev/null 2>&1; echo $$?), 1)
-texlive: msg-TeXLive
- $(error The 'xelatex' command was not found)
-else
-texlive:
- @:
-endif
-
-msg-texlive:
- $(Q)echo "\n\
-The TeX/PDF output and the *math* extension require TexLive and latexmk:\n\n\
- Make sure you have a updated TeXLive with XeTeX engine installed, grab it\n\
- it from https://www.tug.org/texlive or install it from your package manager.\n\n\
- Install latexmk from your package manager or visit https://ctan.org/pkg/latexmk\n\n\
- Sphinx-doc produce (Xe)LaTeX files which might use additional TeX-packages\n\
- and fonts. To process these LaTeX files, a TexLive installation with the\n\
- additional packages is required. On debian based OS these requirements\n\
- are installed by::\n\n\
- sudo -H apt-get install\n\
- latexmk\n\
- texlive-base texlive-xetex texlive-latex-recommended\n\
- texlive-extra-utils dvipng ttf-dejavu\n"
-
-# ------------------------------------------------------------------------------
-# commands
-# ------------------------------------------------------------------------------
-
-# $2 sphinx builder e.g. "html"
-# $3 path where configuration file (conf.py) is located
-# $4 sourcedir
-# $5 dest subfolder e.g. "man" for man pages at $(DOCS_DIST)/man
-
-quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5)
- cmd_sphinx = SPHINX_CONF=$(abspath $4/$(SPHINX_CONF))\
- $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\
- -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5
-
-quiet_cmd_sphinx_autobuild = SPHINX $@ --> file://$(abspath $(DOCS_DIST)/$5)
- cmd_sphinx_autobuild = PATH="$(PY_ENV_BIN):$(PATH)" $(PY_ENV_BIN)/sphinx-autobuild $(SPHINX_VERBOSE) --open-browser --host 0.0.0.0 $(SPHINXOPTS)\
- -b $2 -c $3 -d $(DOCS_BUILD)/.doctrees $4 $(DOCS_DIST)/$5
-
-quiet_cmd_sphinx_clean = CLEAN $@
- cmd_sphinx_clean = rm -rf $(DOCS_BUILD) $(DOCS_DIST) $(GH_PAGES)/* $(GH_PAGES)/.buildinfo
-
-# ------------------------------------------------------------------------------
-# targets
-# ------------------------------------------------------------------------------
-
-# build PDF of whole documentation in: $(DOCS_DIST)/pdf
-
-PHONY += sphinx-pdf
-sphinx-pdf: sphinx-latex
- $(Q)cd $(DOCS_BUILD)/latex/; make all-pdf
- $(Q)mkdir -p $(DOCS_DIST)/pdf
- $(Q)cp $(DOCS_BUILD)/latex/*.pdf $(DOCS_DIST)/pdf
- @echo "SPHINX *.pdf --> file://$(abspath $(DOCS_DIST)/pdf)"
-
-PHONY += sphinx-latex
-sphinx-latex: pyenvinstall texlive
- $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\
- -b latex \
- -c $(DOCS_FOLDER) \
- -d $(DOCS_BUILD)/.doctrees \
- $(DOCS_FOLDER) \
- $(DOCS_BUILD)/latex
-
-# Sphinx projects, we call them *books* (what is more common). Books are
-# folders under $(BOOKS_FOLDER) containing a conf.py file. The HTML output goes
-# to folder $(BOOKS_DIST)/<name> while PDF is placed (BOOKS_DIST)/<name>/pdf
-
-BOOKS=$(patsubst $(BOOKS_FOLDER)/%/conf.py,books/%,$(wildcard $(BOOKS_FOLDER)/*/conf.py))
-
-# fine grained targets
-BOOKS_HTML = $(patsubst %,%.html,$(BOOKS))
-BOOKS_CLEAN = $(patsubst %,%.clean,$(BOOKS))
-BOOKS_LATEX = $(patsubst %,%.latex,$(BOOKS))
-BOOKS_PDF = $(patsubst %,%.pdf,$(BOOKS))
-BOOKS_LIVE = $(patsubst %,%.live,$(BOOKS))
-
-$(BOOKS_DIST):
- mkdir -p $(BOOKS_DIST)
-
-PHONY += $(BOOKS_HTML)
-$(BOOKS_HTML): pyenvinstall | $(BOOKS_DIST)
- SPHINX_CONF=$(patsubst books/%.html,%,$@)/conf.py \
- $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\
- -b html \
- -c $(DOCS_FOLDER) \
- -d $(DOCS_BUILD)/books/$(patsubst books/%.html,%,$@)/.doctrees \
- $(BOOKS_FOLDER)/$(patsubst books/%.html,%,$@) \
- $(BOOKS_DIST)/$(patsubst books/%.html,%,$@)
- @echo "SPHINX $@ --> file://$(abspath $(BOOKS_DIST)/$(patsubst books/%.html,%,$@))"
-
-PHONY += $(BOOKS_HTML)
-$(BOOKS_LIVE): pyenvinstall | $(BOOKS_DIST)
- PATH="$(PY_ENV_BIN):$(PATH)" \
- SPHINX_CONF=$(patsubst books/%.live,%,$@)/conf.py \
- $(PY_ENV_BIN)/sphinx-autobuild --poll -B --host 0.0.0.0 --port 8080 $(SPHINX_VERBOSE) $(SPHINXOPTS)\
- -b html \
- -c $(DOCS_FOLDER) \
- -d $(DOCS_BUILD)/books/$(patsubst books/%.live,%,$@)/.doctrees \
- $(BOOKS_FOLDER)/$(patsubst books/%.live,%,$@) \
- $(BOOKS_DIST)/$(patsubst books/%.live,%,$@)
-
-$(BOOKS_PDF): %.pdf : %.latex
- $(Q)cd $(DOCS_BUILD)/latex/$(patsubst books/%.pdf,%,$@); make all-pdf
- $(Q)mkdir -p $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@)/pdf
- $(Q)cp -v $(DOCS_BUILD)/latex/$(patsubst books/%.pdf,%,$@)/*.pdf $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@)/pdf
- @echo "SPHINX $@ --> file://$(abspath $(BOOKS_DIST)/$(patsubst books/%.pdf,%,$@))/pdf"
-
-PHONY += $(BOOKS_LATEX)
-$(BOOKS_LATEX): pyenvinstall | $(BOOKS_DIST)
- SPHINX_CONF=$(patsubst books/%.latex,%,$@)/conf.py \
- $(SPHINXBUILD) $(SPHINX_VERBOSE) $(SPHINXOPTS)\
- -b latex \
- -c $(DOCS_FOLDER) \
- -d $(DOCS_BUILD)/books/$(patsubst books/%.latex,%,$@)/.doctrees \
- $(BOOKS_FOLDER)/$(patsubst books/%.latex,%,$@) \
- $(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@)
- @echo "SPHINX $@ --> file://$(abspath $(DOCS_BUILD)/latex/$(patsubst books/%.latex,%,$@))"
-
-$(BOOKS_CLEAN):
- $(Q)rm -rf $(BOOKS_DIST)/$(patsubst books/%.clean,%,$@) \
- $(DOCS_BUILD)/books/$(patsubst books/%.clean,%,$@) \
- $(DOCS_BUILD)/latex/$(patsubst books/%.clean,%,$@)
-
-# github pages
-PHONY += prepare-gh-pages
-prepare-gh-pages:
- cp -r $(DOCS_DIST)/* $(GH_PAGES)/
- touch $(GH_PAGES)/.nojekyll
- echo "<html><head><META http-equiv='refresh' content='0;URL=index.html'></head></html>" > $(GH_PAGES)/404.html
-
-PHONY += gh-pages
-gh-pages: docs-clean docs
- - git worktree remove -f $(GH_PAGES) || exit 0
- - git branch -D gh-pages || exit 0
- git worktree add --no-checkout $(GH_PAGES) master
- cd $(GH_PAGES); git checkout --orphan gh-pages && git rm -rfq .
- $(MAKE) prepare-gh-pages
- cd $(GH_PAGES);\
- git add --all . ;\
- git commit -q -m "make gh-pages: from $(shell git config --get remote.origin.url)@$(shell git rev-parse HEAD)" ;\
- git push -f origin gh-pages
-
-PHONY += ci-gh-pages
-ci-gh-pages: docs-clean docs
- rm -Rf $(GH_PAGES)
- mkdir -p $(GH_PAGES)
- $(MAKE) prepare-gh-pages
-
-PHONY += docs-clean
-docs-clean: $(BOOKS_CLEAN)
- $(call cmd,sphinx_clean)
-
-.PHONY: $(PHONY)