# Makefile for Sphinx LaTeX output

ALLDOCS = $(basename $(wildcard *.tex))
ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
{% if latex_engine == 'xelatex' -%}
ALLDVI =
ALLXDV = $(addsuffix .xdv,$(ALLDOCS))
{% else -%}
ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
ALLXDV =
{% endif -%}
ALLPS  = $(addsuffix .ps,$(ALLDOCS))
ALLIMGS = $(wildcard *.png *.gif *.jpg *.jpeg)

# Prefix for archive names
ARCHIVEPREFIX =
# Additional LaTeX options (passed via variables in latexmkrc/latexmkjarc file)
export LATEXOPTS =
# Additional latexmk options
{% if latex_engine == 'xelatex' -%}
# with latexmk version 4.52b or higher set LATEXMKOPTS to -xelatex either here
# or on command line for faster builds.
{% endif -%}
LATEXMKOPTS =
# format: pdf or dvi (used only by archive targets)
FMT = pdf

{% if latex_engine == 'platex' -%}
# latexmkrc is read then overridden by latexmkjarc
LATEX = latexmk -r latexmkjarc -dvi
PDFLATEX = latexmk -r latexmkjarc -pdfdvi -dvi- -ps-
{% else -%}
LATEX = latexmk -dvi
PDFLATEX = latexmk -pdf -dvi- -ps-
{% endif %}

%.png %.gif %.jpg %.jpeg: FORCE_MAKE
	extractbb '$@'

{% if latex_engine == 'platex' -%}
%.dvi: %.tex $(ALLIMGS) FORCE_MAKE
	for f in *.pdf; do extractbb "$$f"; done
	$(LATEX) $(LATEXMKOPTS) '$<'

{% elif latex_engine != 'xelatex' -%}
%.dvi: %.tex FORCE_MAKE
	$(LATEX) $(LATEXMKOPTS) '$<'

{% endif -%}
%.ps: %.dvi
	dvips '$<'

{% if latex_engine == 'platex' -%}
%.pdf: %.tex $(ALLIMGS) FORCE_MAKE
	for f in *.pdf; do extractbb "$$f"; done
{%- else -%}
%.pdf: %.tex FORCE_MAKE
{%- endif %}
	$(PDFLATEX) $(LATEXMKOPTS) '$<'

all: $(ALLPDF)

all-dvi: $(ALLDVI)

all-ps: $(ALLPS)

all-pdf: $(ALLPDF)

zip: all-$(FMT)
	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
	zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
	rm -r $(ARCHIVEPREFIX)docs-$(FMT)

tar: all-$(FMT)
	mkdir $(ARCHIVEPREFIX)docs-$(FMT)
	cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
	tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
	rm -r $(ARCHIVEPREFIX)docs-$(FMT)

gz: tar
	gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz

bz2: tar
	bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar

xz: tar
	xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar

clean:
	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

.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
.PHONY: FORCE_MAKE
