1# Makefile for Sphinx LaTeX output
2
3ALLDOCS = $(basename $(wildcard *.tex))
4ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
5{% if latex_engine == 'xelatex' -%}
6ALLDVI =
7ALLXDV = $(addsuffix .xdv,$(ALLDOCS))
8{% else -%}
9ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
10ALLXDV =
11{% endif -%}
12ALLPS  = $(addsuffix .ps,$(ALLDOCS))
13
14# Prefix for archive names
15ARCHIVEPREFIX =
16# Additional LaTeX options (passed via variables in latexmkrc/latexmkjarc file)
17export LATEXOPTS ?=
18# Additional latexmk options
19{% if latex_engine == 'xelatex' -%}
20# with latexmk version 4.52b or higher set LATEXMKOPTS to -xelatex either here
21# or on command line for faster builds.
22{% endif -%}
23LATEXMKOPTS ?=
24{% if xindy_use -%}
25export XINDYOPTS = {{ xindy_lang_option }} -M sphinx.xdy
26{% if latex_engine == 'pdflatex' -%}
27XINDYOPTS += -M LICRlatin2utf8.xdy
28{% if xindy_cyrillic -%}
29XINDYOPTS += -M LICRcyr2utf8.xdy
30{% endif -%}
31{% endif -%}
32{% if xindy_cyrillic -%}
33XINDYOPTS += -M LatinRules.xdy
34{% endif -%}
35{% endif -%}
36# format: pdf or dvi (used only by archive targets)
37FMT = pdf
38
39{% if latex_engine in ('platex', 'uplatex') -%}
40# latexmkrc is read then overridden by latexmkjarc
41LATEX = latexmk -r latexmkjarc -dvi
42PDFLATEX = latexmk -r latexmkjarc -pdfdvi -dvi- -ps-
43{% else -%}
44LATEX = latexmk -dvi
45PDFLATEX = latexmk -pdf -dvi- -ps-
46{% endif %}
47
48{% if latex_engine != 'xelatex' -%}
49%.dvi: %.tex FORCE_MAKE
50	$(LATEX) $(LATEXMKOPTS) '$<'
51
52{% endif -%}
53%.ps: %.dvi
54	dvips '$<'
55
56%.pdf: %.tex FORCE_MAKE
57	$(PDFLATEX) $(LATEXMKOPTS) '$<'
58
59all: $(ALLPDF)
60
61all-dvi: $(ALLDVI)
62
63all-ps: $(ALLPS)
64
65all-pdf: $(ALLPDF)
66
67zip: all-$(FMT)
68	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
69	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
70	zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
71	rm -r $(ARCHIVEPREFIX)docs-$(FMT)
72
73tar: all-$(FMT)
74	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
75	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
76	tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
77	rm -r $(ARCHIVEPREFIX)docs-$(FMT)
78
79gz: tar
80	gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz
81
82bz2: tar
83	bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
84
85xz: tar
86	xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
87
88clean:
89	rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) $(ALLXDV) *.fls *.fdb_latexmk
90
91.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
92.PHONY: FORCE_MAKE
93