# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. ifneq (,$(filter grouped-target,$(.FEATURES))) GROUPED_TARGET := 1 else $(warning WARNING: This version of make does not support grouped-target, disabling parallel jobs.) .NOTPARALLEL: endif LOCALES := en LOCALEFILES := $(LOCALES:%=locales/%/LC_MESSAGES/package.po) PONAMES := package sphinx POTS := $(PONAMES:%=locales/%.pot) export LANGUAGES := fr $(LOCALES) export LATEXMKOPTS := -quiet SPHINXLANG := -D language=$(LOCALE) SPHINXOPTS += -a $(if $(CI),,-q) SPHINXBUILD ?= sphinx-build SPHINXBUILDERS := html dirhtml singlehtml epub latex text man texinfo SPHINXLBUILDERS := $(foreach b,$(SPHINXBUILDERS),$(LANGUAGES:%=$b/%)) SPHINXHBUILDERS := $(SPHINXBUILDERS:%=_%) SPHINXCMDS := pickle json htmlhelp changes xml pseudoxml linkcheck doctest coverage SOURCEDIR := . BUILDDIR := _build MDFILES := index.md $(shell find . -type f -name '*.md') MDFILES := $(shell find . -type f -name '*.md' -not -name 'README.*') TEMPLATES := $(shell find _templates -type f -name '*.html') PUBHOST ?= club1.fr PUBDIR ?= /var/www/docs # Put it first so that "make" without argument is like "make help". help: $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $O .PHONY: help clean update-po gettext latexpdf info publish $(SPHINXBUILDERS) $(SPHINXLBUILDERS) $(SPHINXHBUILDERS) $(SPHINXCMDS) update-po: $(LOCALEFILES) gettext: $(POTS) $(LOCALEFILES): locales/%/LC_MESSAGES/package.po: $(POTS) sphinx-intl update -p $(<D) -l $* @touch $@ ifdef GROUPED_TARGET $(POTS)&: $(MDFILES) $(TEMPLATES) else $(POTS): $(MDFILES) $(TEMPLATES) endif $(SPHINXBUILD) -b gettext "$(SOURCEDIR)" locales $(SPHINXOPTS) $O @touch $(POTS) latexpdf info: %: $(LANGUAGES:%=\%/%) $(LANGUAGES:%=latexpdf/%): latexpdf/%: latex/% $(MAKE) -C $(BUILDDIR)/$< $(LANGUAGES:%=info/%): info/%: texinfo/% $(MAKE) -C $(BUILDDIR)/$< publish: rsync -av --del --exclude='.*' _build/html/ $(USER)@$(PUBHOST):$(PUBDIR) # Shinx builders that builds localized versions. $(SPHINXBUILDERS): %: $(LANGUAGES:%=\%/%) # Localized Sphinx builders $(SPHINXLBUILDERS): $(MAKE) _$(@D) LOCALE=$(@F) # Hidden Sphinx builders that need the LOCALE variable $(SPHINXHBUILDERS): _%: $(if $(filter fr,$(LOCALE)),,$(PONAMES:%=locales/$(LOCALE)/LC_MESSAGES/%.po)) $(SPHINXBUILD) -b $* "$(SOURCEDIR)" "$(BUILDDIR)/$*/$(LOCALE)" -D language=$(LOCALE) $(SPHINXOPTS) $O # Other Sphinx commands for autocompletion $(SPHINXCMDS): $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $O clean: rm -f locales/*/LC_MESSAGES/*.mo rm -rf locales/.doctrees rm -rf $(BUILDDIR)/*