BASENAME=programmingstyle PYFILES=$(wildcard *.py) PYPDFFILES=$(PYFILES:.py=.pdf) all : pdf # script: pdf : $(BASENAME)-chapter.pdf $(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES) ../../header.tex CHAPTER=$$(( $$(sed -n -e '/contentsline {chapter}/{s/.*numberline {\([0123456789]*\)}.*/\1/; p}' $(BASENAME).aux) - 1 )); \ PAGE=$$(sed -n -e '/contentsline {chapter}/{s/.*numberline {.*}.*}{\(.*\)}{chapter.*/\1/; p}' $(BASENAME).aux); \ sed -i -e "s/setcounter{page}{.*}/setcounter{page}{$$PAGE}/; s/setcounter{chapter}{.*}/setcounter{chapter}{$$CHAPTER}/" $(BASENAME)-chapter.tex pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true $(PYPDFFILES) : %.pdf : %.py python $< clean : rm -f *~ rm -f $(BASENAME).aux $(BASENAME).log rm -f $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out rm -f $(PYPDFFILES) $(GPTTEXFILES) cleanall : clean rm -f $(BASENAME)-chapter.pdf watchpdf : while true; do ! make -q pdf && make pdf; sleep 0.5; done