
TEXINPUTS=.:../tex:../graphics:
BIBINPUTS=.:../tex:
export TEXINPUTS BIBINPUTS

MAIN=main

GENERATED_EPSS=

all : $(MAIN).pdf errata.pdf

ifneq ($(filter vl%, $(notdir $(PWD))),)
all : blank.pdf
ARCHIVE_PREFIX="lecture"
else
ifneq ($(filter tu%, $(notdir $(PWD))),)
all : blank.pdf
ARCHIVE_PREFIX="tutorial"
else
ARCHIVE_PREFIX="exercise"
endif
endif

2up : $(MAIN)-2up.pdf

%-2up.pdf : %.pdf
	pdfnup2.sh $(<)

blank.pdf :
	latex blank.tex
	dvips blank.dvi
	ps2pdf blank.ps
	rm -f blank.{aux,log,dvi,out,ps}

errata.pdf :
	if [ -f errata.tex ]; then \
	  latex errata.tex && dvips errata.dvi && ps2pdf errata.ps; \
	  rm -f errata.{aux,log,dvi,out,ps}; \
	fi

ifeq ($(wildcard errata.tex),errata.tex)
errata.pdf : errata.tex
endif

# option -dAutoRotatePages=/All avoids spurious portrait on \part{} slides
# with little text (then the rotated data/file index is dominating)
#
pdf $(MAIN).pdf : $(MAIN).ps
	ps2pdf -dAutoRotatePages=/All $(<) $(MAIN).pdf

ps $(MAIN).ps : $(GENERATED_EPSS) $(MAIN).tex $(wildcard *.tex *.sty *.eps)
	latex $(MAIN)
	if egrep -q 'bibliography{|input{Sbib}' $(MAIN).tex; then bibtex $(MAIN);latex $(MAIN); fi
	latex $(MAIN)
	dvips $(MAIN)

%.eps : %.tex
	latex $(*)
	dvips -E -o $(@) $(*)
	rm -f $(*).aux $(*).dvi $(*).log

.PHONY : all pdf ps

DFLT_CLEAN=.aux .bbl .blg .dvi .log .out .ps .pdf -2up.pdf

clean :
	rm -f *.aux
	rm -f $(addprefix $(MAIN),$(DFLT_CLEAN))
	rm -f $(GENERATED_EPSS)
	rm -f $(addprefix blank,$(DFLT_CLEAN))

.PHONY : clean

snapshot : $(MAIN).pdf
	@TODAY="`date +%Y%m%d`"; \
  N="1"; \
  while [ -f $(ARCHIVE_PREFIX)-$$TODAY-$$N.pdf ]; do N="`expr $$N + 1`"; done; \
  cp $(basename $(<)).pdf $(ARCHIVE_PREFIX)-$$TODAY-$$N.pdf; \
  echo $(basename $(<)).pdf "->" $(ARCHIVE_PREFIX)-$$TODAY-$$N.pdf

.PHONY : snapshot

TODAY:=$(shell date +%Y%m%d)
SVN=svn

ANNOT_FILE=$(ARCHIVE_PREFIX)-$(TODAY)-annot.pdf

archive : main.pdf
	test -f blackboard-$(TODAY).pdf -o -f $(ANNOT_FILE)
	if [ -f blackboard-$(TODAY).pdf ]; then $(SVN) add blackboard-$(TODAY).pdf; fi
	for suffix in annot-fix annot; do \
	  if [ -f $(ARCHIVE_PREFIX)-$(TODAY)-$$suffix.pdf ]; then \
		  pdfnup2.sh $(ARCHIVE_PREFIX)-$(TODAY)-$$suffix.pdf; \
			break; \
		fi; \
	done
	$(SVN) add $(ARCHIVE_PREFIX)-$(TODAY)-*.pdf
	$(SVN) ci -m "archive"

.PHONY : archive

