1# Minimal makefile for Sphinx documentation
2#
3
4# You can set these variables from the command line.
5SPHINXOPTS    =
6SPHINXBUILD   = sphinx-build
7SPHINXPROJ    = simple-bw-scanner
8SOURCEDIR     = source
9BUILDDIR      = build
10# generate SVG
11IMAGEDIRS       = $(SOURCEDIR)/images
12BUILDDIRIMAGES  = $(BUILDDIR)/html/_images
13PYREVERSE     = pyreverse
14PYREVERSE_FLAGS = -o svg -p sbws ../sbws
15UMLSVG := $(PYREVERSE) $(PYREVERSE_FLAGS);mv *.svg $(IMAGEDIRS);mkdir -p $(BUILDDIRIMAGES);cp $(IMAGEDIRS)/*.svg $(BUILDDIRIMAGES)
16PLANTUML := plantuml
17PLANTUML_CMD := $(PLANTUML) -tsvg -o ../$(IMAGEDIRS) $(SOURCEDIR)/*.puml
18
19# Put it first so that "make" without argument is like "make help".
20help:
21	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
22
23.PHONY: help Makefile
24
25umlsvg:
26	@echo "Generating UML SVG"
27	$(UMLSVG)
28
29plantuml:
30	@echo "Generating plantuml .svg files."
31	$(PLANTUML_CMD)
32
33# Catch-all target: route all unknown targets to Sphinx using the new
34# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
35%: Makefile
36	# commented because if system packages invoke make html, it'll automatically
37	# recreate the svg on every build, and it's not deterministic.
38	#$(UMLSVG)
39	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
40