# Makefile for latex documents.
# Author: Mark George <mgeorge@infoscience.otago.ac.nz>
# driver file (tries to automatically find the driver file)
SOURCE=$(basename $(or $(wildcard lab*.tex), $(wildcard test*.tex), $(wildcard outline.tex), $(wildcard project*.tex),$(wildcard *exercises.tex),$(wildcard *report.tex),$(wildcard phase*.tex),$(wildcard lec*.tex)))
# if the driver file isn't one of the above then just set the value of the SOURCE variable to the name WITHOUT the extension
# preamble file
PREAMBLE=preamble
# files that will be deleted when we clean
RUBBISH=*.aux *.out *.dvi *.log *.ps *~ *.*~ auto *.toc *.fdb_latexmk *.fls
# latex command
LATEX=pdflatex
.PHONY: clean
default: texify clean-rubbish
pdf: default
2up: pdf
# spit out a 2up driver
echo "\documentclass{article}\usepackage{pdfpages}\usepackage[a4paper,landscape, pdftex,vmargin=0in,hmargin=0.0in]{geometry}\begin{document}\includepdf[nup=2x1,frame,pages=-,delta=0mm 0mm]{%" >| 2up.tex
echo ${SOURCE}.pdf% >> 2up.tex
echo "}\end{document}" >> 2up.tex
# texify it
${LATEX} 2up.tex
# clean up
rm 2up.tex
mv 2up.pdf ${SOURCE}_2up.pdf
# get rid of any additional generated rubbish
rm -rf $(RUBBISH)
# texify target
texify: ${SOURCE}.pdf
# compile as many times as needed (at least twice to get PDF bookmarks right) to sort out references and labels
${SOURCE}.pdf: ${SOURCE}.tex ${PREAMBLE}.tex
$(LATEX) ${SOURCE}.tex
$(LATEX) ${SOURCE}.tex
# once more if there are still undefined references
if [ -n "$(shell grep 'There were undefined references' ${SOURCE}.log)" ]; then $(LATEX) ${SOURCE}.tex ; fi
# once more if there are labels that have changed
if [ -n "$(shell grep 'Label(s) may have changed' ${SOURCE}.log)" ]; then $(LATEX) ${SOURCE}.tex ; fi
# delete unwanted generated files
clean-rubbish:
rm -rf $(RUBBISH)
# delete ALL generated files
clean: clean-rubbish
rm -rf ${SOURCE}.pdf ${SOURCE}_2up.pdf