# Makefile # Jeff Moe with Parrot and Phind-CodeLlama-34B-v2_q8.gguf SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = docs/_source BUILDDIR = docs/_build AUTOBUILDOPTS = --host 127.0.0.1 --port 8000 --ignore "*.swp" --ignore "*.swx" GETTEXT_BUILD = gettext_build UPDATE_LOCALE = sphinx-intl update -p $(BUILDDIR)/locale/gettext -d $(SOURCEDIR)/locale -l PO_FILES = $(wildcard docs/_source/locale/*/LC_MESSAGES/*.po) MSGATTRIB = msgattrib #LANGUAGES = am ar bg bn ca cak cs cy da de el en eo es et eu fa fi fil fr he hi hr hu id it ja ko lkt lt lv mk mr ms ne nl no pl pt ro ru si sk sl sq sr sv ta te th tr uk ur vi zh LANGUAGES = en .PHONY: check help html livehtml clean_sphinx clean gettext_build update_locale build_html all copy clean_po latex latexpdf help: @echo "Please use \`make ' where is one of" @echo " clean Remove all build files and directories (including translations)" @echo " all Clean and make all targets" @echo " gettext_build Build localisation strings for translation" @echo " update_locale Update localisation" @echo " update_locale_ Update localisation for " @echo " html Build the HTML documentation for all languages" @echo " html_ Build HTML documentation for " @echo " latex Build the documentation using LaTeX for all languages" @echo " latex_ Build the documentation using LaTeX for " @echo " latexpdf Build the PDFS documentation using LaTeX for all languages" @echo " latexpdf_ Build the PDFS documentation using LaTeX for " @echo " spreadsheet Convert ODS spreadsheet BoM to XLS for Sphinx processing" @echo " index Copy static docs/index.html to docs/_build/html/index.html" all: clean spreadsheet gettext_build update_locale html index check: @for po in $(PO_FILES); do \ echo "Checking $$po..."; \ msgfmt --check --output-file=- "$$po" || exit 1; \ done index: cp -p docs/index.html docs/_build/html/index.html clean: for file in $(PO_FILES); do \ $(MSGATTRIB) --no-obsolete -o $$file $$file; \ done cd docs && make clean find $(SOURCEDIR) -type f -name "*.mo" -delete rm -rf $(BUILDDIR)/* gettext_build: $(SPHINXBUILD) -b gettext -c $(SOURCEDIR) -d $(BUILDDIR)/doctrees/$(GETTEXT_BUILD) $(SOURCEDIR) $(BUILDDIR)/locale/gettext update_locale: @pids="" ; \ for lang in $(LANGUAGES); do \ ( echo "Updating locale for $$lang..." ; $(UPDATE_LOCALE) $$lang ) & pids="$$pids $$!" ; \ done ; \ for pid in $$pids; do \ wait $$pid ; \ done update_locale_%: $(UPDATE_LOCALE) $* html: @for lang in $(LANGUAGES); do \ echo "Building HTML documentation for $$lang..."; \ $(SPHINXBUILD) -b html -d $(BUILDDIR)/doctrees -D language=$$lang $(SOURCEDIR) $(BUILDDIR)/html/$$lang; \ done html_%: gettext_build $(SPHINXBUILD) -b html -d $(BUILDDIR)/doctrees -D language=$* -c $(SOURCEDIR) $(SOURCEDIR) $(BUILDDIR)/html/$*/ latex: @for lang in $(LANGUAGES); do \ echo "Building LaTeX documentation for $$lang..."; \ $(SPHINXBUILD) -b latex -d $(BUILDDIR)/doctrees -D language=$$lang -Dlatex_engine=xelatex $(SOURCEDIR) $(BUILDDIR)/latex/$$lang; \ done latex_%: $(SPHINXBUILD) -b latex -d $(BUILDDIR)/doctrees -D language=$* -Dlatex_engine=xelatex $(SOURCEDIR) $(BUILDDIR)/latex/$*/; \ latexpdf: @for lang in $(filter-out ar he ja,$(LANGUAGES)); do \ echo "Building PDF documentation for $$lang..."; \ $(MAKE) -C $(BUILDDIR)/latex/$$lang ; \ done latexpdf_%: $(MAKE) -C $(BUILDDIR)/latex/$* ; \ spreadsheet: soffice --headless --convert-to xlsx docs/tinyrocs-bom.ods --outdir $(BUILDDIR)