SHELL=/bin/bash

DOCNUM:=JCTVC-O0043

LATEX:=$(shell which xelatex || which pdflatex || which latex)
BIBTOOL:=$(shell which bibtool || echo echo Warning: bibtool not present '\#')
BIBDIR:=~/work/mpeg/doc/bib/

all: $(DOCNUM).pdf

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

%.aux: %.tex
	$(LATEX) $(LATEXFLAGS) $<

%.bib: %.tex %.aux
	$(BIBTOOL) -q -s -d -r <(echo check.double.delete = ON) -i $(BIBDIR)/jctvc.bib -x $(*F).aux -o $@
	touch $@

%.bbl: %.tex %.aux %.bib
	-bibtex $(*F)

ifneq ($(LATEX),latex)
%.pdf: %.tex %.bbl
	$(LATEX) $(LATEXFLAGS) $<
	$(LATEX) $(LATEXFLAGS) $<
endif

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

%.dvi: %.tex %.bbl
	$(LATEX) $(LATEXFLAGS) $<
	$(LATEX) $(LATEXFLAGS) $<

%.rtf: %.tex %.bbl
	latex2rtf -E0 $<

%.html: %.tex %.bbl
	htlatex $<
	which htmlinlinedata && htmlinlinedata $@ > $@.merged && mv $@.merged $@

.PHONY: CHANGES.txt
CHANGES.txt:
	git rev-list --quiet -0 v1 2>/dev/null \
		&& git log --decorate v1.. > $@ \
		|| git log --decorate > $@

DISTFILES:=\
	$(DOCNUM).pdf \
	$(DOCNUM).rtf \
	patch-hm12.1+rext4.1-force-decode-bitdepth.diff \
	$(if $(findstring v1,$(shell git describe --always --tags --abbrev=0)),,CHANGES.txt) \
	$(NULL)

$(DOCNUM)-diff%.pdf: LATEXFLAGS=--interaction=batchmode
$(DOCNUM)-diff%.tex:
	-latexdiff-vc --exclude-safecmd=textbf --append-context1cmd=subfloat --append-context2cmd=multicolumn --encoding=utf8 --force --subtype=COLOR --git -r $* $(DOCNUM).tex

REVISIONS:=$(filter-out v1,$(shell git tag -l 'v*'))
DISTFILES+=$(foreach version,$(REVISIONS),$(DOCNUM)-diff$(shell git describe --tags --abbrev=0 $(version)^)..$(version).pdf)

$(DOCNUM)_%.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)
	zip -d $@ $$(zipinfo -1 $@ -x 'doc/*' | sed -e 's!^!doc/!') || exit 0
