1*4882a593Smuzhiyun# Minimal makefile for Sphinx documentation 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun# You can set these variables from the command line, and also 5*4882a593Smuzhiyun# from the environment for the first two. 6*4882a593SmuzhiyunSPHINXOPTS ?= -W --keep-going -j auto 7*4882a593SmuzhiyunSPHINXBUILD ?= sphinx-build 8*4882a593SmuzhiyunSOURCEDIR = . 9*4882a593SmuzhiyunIMAGEDIRS = */svg 10*4882a593SmuzhiyunBUILDDIR = _build 11*4882a593SmuzhiyunDESTDIR = final 12*4882a593SmuzhiyunSVG2PNG = inkscape 13*4882a593SmuzhiyunSVG2PDF = inkscape 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0) 16*4882a593Smuzhiyun$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed") 17*4882a593Smuzhiyunendif 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun# Put it first so that "make" without argument is like "make help". 20*4882a593Smuzhiyunhelp: 21*4882a593Smuzhiyun @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun.PHONY: all help Makefile clean publish epub latexpdf 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunpublish: Makefile html singlehtml 26*4882a593Smuzhiyun rm -rf $(BUILDDIR)/$(DESTDIR)/ 27*4882a593Smuzhiyun mkdir -p $(BUILDDIR)/$(DESTDIR)/ 28*4882a593Smuzhiyun cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/ 29*4882a593Smuzhiyun cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html 30*4882a593Smuzhiyun sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# Build a list of SVG files to convert to PDFs 33*4882a593SmuzhiyunPDFs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.pdf,$(wildcard $(SOURCEDIR)/$(dir)/*.svg))) 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# Build a list of SVG files to convert to PNGs 36*4882a593SmuzhiyunPNGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.png,$(wildcard $(SOURCEDIR)/$(dir)/*.svg))) 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun# Pattern rule for converting SVG to PDF 39*4882a593Smuzhiyun%.pdf : %.svg 40*4882a593Smuzhiyun $(SVG2PDF) --export-filename=$@ $< 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun# Pattern rule for converting SVG to PNG 43*4882a593Smuzhiyun%.png : %.svg 44*4882a593Smuzhiyun $(SVG2PNG) --export-filename=$@ $< 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunclean: 47*4882a593Smuzhiyun @rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunepub: $(PNGs) 50*4882a593Smuzhiyun @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunlatexpdf: $(PDFs) 53*4882a593Smuzhiyun @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunall: html epub latexpdf 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun# Catch-all target: route all unknown targets to Sphinx using the new 58*4882a593Smuzhiyun# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 59*4882a593Smuzhiyun%: 60*4882a593Smuzhiyun $(SOURCEDIR)/set_versions.py 61*4882a593Smuzhiyun @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 62