# Makefile for latex documents. # Author: Mark George # 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