#! gnumake # SRC = AnnualReport2007.tex DVI = $(SRC:.tex=.dvi) POSTSCRIPT = $(SRC:.tex=.ps) PDF = $(SRC:.tex=.pdf) CONTENT_SRC = macros/macros.tex Makefile CONTENT_SRC += $(wildcard content/*.tex) BUILD_FILES = $(SRC:.tex=.toc) $(SRC:.tex=.bbl) #LATEX_ARGS = -halt-on-error all: eps2pdf $(PDF) reload links pdf: $(PDF) %.ps: %.dvi # dvips -t letter -O0cm,1cm -Ppdf -G0 $< -o $@ dvips -t letter -O-0.2cm,-0.25cm -Ppdf -G0 $< -o $@ # dvips -Ppdf -G0 $< -o $@ # dvips -Ppdf $< -o $@ %.pdf: %.tex ${CONTENT_SRC} pdflatex $< $@ @latex_count=1 ; \ while ( egrep -s 'Rerun (LaTeX|to get cross-references right)' \ $(subst .tex,.log,$<) \ && [ $$latex_count -lt 5 ] ) ; do \ echo "Re-running LaTeX ($$latex_count)..." ; \ pdflatex $< $@ ; \ if [ "$$latex_count" -eq "1" ]; then \ echo "Running bibtex..." ; \ bibtex $(subst .tex,,$<); \ echo "Rerun LaTeX" >> $(subst .tex,.log,$<); \ fi; \ latex_count=`expr $$latex_count + 1` ; \ done %.dvi: %.tex ${CONTENT_SRC} @echo "Running latex on $< ..." # Need to run 3 times, for the TOC to be COMPLETELY correct latex ${LATEX_ARGS} $< # latex ${LATEX_ARGS} $< # latex ${LATEX_ARGS} $< # Bibliography (if needed) @if (egrep -s 'Linenumber refererence failed' $(subst .tex,.log,$<)); then \ echo "Rerun LaTeX" >> $(subst .tex,.log,$<); \ fi @if (egrep -s 'undefined references' $(subst .tex,.log,$<)); then \ echo "Running bibtex..." ; \ bibtex $(subst .tex,,$<); \ echo "Rerun LaTeX" >> $(subst .tex,.log,$<); \ fi # Index (if needed) @if (egrep -s 'Writing index file' $(subst .tex,.log,$<)); then \ echo "Running makeindex..." ; \ makeindex $(subst .tex,.idx,$<); \ fi # Cross-references (up to 5 times) @latex_count=1 ; \ while ( egrep -s 'Rerun (LaTeX|to get cross-references right)' \ $(subst .tex,.log,$<) \ && [ $$latex_count -lt 5 ] ) ; do \ echo "Re-running LaTeX ($$latex_count)..." ; \ latex ${LATEX_ARGS} $< > /dev/null; \ if [ "$$latex_count" -eq "1" ]; then \ echo "Running bibtex..." ; \ bibtex $(subst .tex,,$<); \ echo "Rerun LaTeX" >> $(subst .tex,.log,$<); \ fi; \ latex_count=`expr $$latex_count + 1` ; \ done links: $(PDF) # ln -sf $(POSTSCRIPT) LATEST_VERSION.ps ln -sf $(PDF) LATEST_VERSION.pdf # ln -sf Commented/$(PDF) LATEST_COMMENTED_VERSION.pdf reload: $(PDF) xpdf -remote REMOTE -reload clean: @rm -vf *.dvi ${POSTSCRIPT} ${PDF} *~ \ *.{aux,log,bbl,blg,brf,lof,lot} \ *.{toc,out} \ content/*~ @cleanlinks >& /dev/null # @rm -vf Commented/* eps2pdf: cd figures;./eps2pdf;cd -