1# Makefile for Sphinx LaTeX output
2
3ALLDOCS = $(basename $(wildcard *.tex))
4ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
5ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
6ALLPS  = $(addsuffix .ps,$(ALLDOCS))
7
8# Prefix for archive names
9ARCHIVEPREFIX =
10# Additional LaTeX options
11LATEXOPTS =
12# format: pdf or dvi
13FMT = pdf
14
15LATEX = latex
16PDFLATEX = {{ latex_engine }}
17MAKEINDEX = makeindex
18
19{% if latex_engine == 'platex' %}
20all: all-pdf-ja
21all-pdf: all-pdf-ja
22{% else %}
23all: $(ALLPDF)
24all-pdf: $(ALLPDF)
25{% endif -%}
26all-dvi: $(ALLDVI)
27all-ps: $(ALLPS)
28
29all-pdf-ja:
30	for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
31	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
32	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
33	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
34	-for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
35	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
36	for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
37	for f in *.dvi; do dvipdfmx $$f; done
38
39zip: all-$(FMT)
40	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
41	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
42	zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
43	rm -r $(ARCHIVEPREFIX)docs-$(FMT)
44
45tar: all-$(FMT)
46	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
47	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
48	tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
49	rm -r $(ARCHIVEPREFIX)docs-$(FMT)
50
51gz: tar
52	gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz
53
54bz2: tar
55	bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
56
57xz: tar
58	xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
59
60# The number of LaTeX runs is quite conservative, but I don't expect it
61# to get run often, so the little extra time won't hurt.
62%.dvi: %.tex
63	$(LATEX) $(LATEXOPTS) '$<'
64	$(LATEX) $(LATEXOPTS) '$<'
65	$(LATEX) $(LATEXOPTS) '$<'
66	-$(MAKEINDEX) -s python.ist '$(basename $<).idx'
67	$(LATEX) $(LATEXOPTS) '$<'
68	$(LATEX) $(LATEXOPTS) '$<'
69
70%.pdf: %.tex
71	$(PDFLATEX) $(LATEXOPTS) '$<'
72	$(PDFLATEX) $(LATEXOPTS) '$<'
73	$(PDFLATEX) $(LATEXOPTS) '$<'
74	-$(MAKEINDEX) -s python.ist '$(basename $<).idx'
75	$(PDFLATEX) $(LATEXOPTS) '$<'
76	$(PDFLATEX) $(LATEXOPTS) '$<'
77
78%.ps: %.dvi
79	dvips '$<'
80
81clean:
82	rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI)
83
84.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
85.PHONY: all-pdf-ja
86
87