SHELL=/bin/bash

DOCNUM:=JCTVC-J0092

LATEX:=$(shell which xelatex || which pdflatex || which latex)

all: $(DOCNUM).pdf

dist: $(shell git describe --tags --always).zip

%.bib: %.tex
	$(LATEX) $<
	bibtool -q -s -d -r <(echo check.double.delete = ON) -i ~/mpeg/doc/bib/jctvc.bib -x $(*F).aux -o $@

ifneq ($(LATEX),latex)
%.pdf: %.tex %.bib
	bibtex $*
	$(LATEX) $<
	$(LATEX) $<
endif

%.pdf: %.dvi
	dvipdfm $*.dvi

%.dvi: %.tex %.bib
	bibtex $*
	$(LATEX) $<
	$(LATEX) $<

.PHONY: CHANGES.txt
CHANGES.txt:
	-git log --decorate v1.. > $@

DISTFILES=\
	$(DOCNUM).pdf \
	$(if $(findstring v1,$(shell git describe --always --tags --abbrev=0)),,CHANGES.txt) \
	$(NULL)

define make_diff_pdf
# $1: file
# $2: current version
$(eval PREV_VER=$(shell git describe --tags --abbrev=0 $2^))
$(basename $1)-diff_$(PREV_VER)..$2.pdf:
	-latexdiff-vc --pdf --force --git -r $(PREV_VER)..$2 $1
DISTFILES += $(basename $1)-diff_$(PREV_VER)..$2.pdf
endef
REVISIONS:=$(filter-out v1,$(shell git tag -l 'v*'))
$(foreach version,$(REVISIONS),$(eval $(call make_diff_pdf,$(DOCNUM).tex,$(version))))

%.zip: $(DISTFILES)
	git diff --quiet || ( echo Uncommited changes, please commit && exit 1 )
	git archive --format=zip --prefix=doc/ $(shell git tag --contains HEAD) > $@
	zip -r $@ $(DISTFILES)
