all: main.pdf # Is there a better way? # Hack to make it work when foo.code => foo.code.tex code/%.tex: code/%.* code/%.aux code/%.tex @rm code/*.aux $(MAKE) -C . code/%.tex: code/%.* pygmentize -f latex -O style='border=#000000,colorful,linenos=1' $< > $@ # Search each code file to format and include CODE_FILES:=$(shell ls code/|egrep -v '.tex$ |.aux$ ' ) CODE_FILES_DEP:=$(addprefix code/, $(CODE_FILES)) CODE_FILES_TGT:=$(addsuffix .tex, $(basename $(CODE_FILES_DEP))) main.pdf: $(shell ls *.tex) $(CODE_FILES_TGT) pdflatex main.tex > /dev/null .PHONY: run clean edit edit: gvim -S vim.sess run: evince main.pdf & clean: @# for each .tex file, remove the extension @# and delete its generated files @for PART in $(shell ls *.tex| sed 's:.tex::g'); do \ echo "*.out *.nav *.aux *.toc *.log *.snm *.pdf *.vrb" | \ sed "s:*:$$PART:g" | xargs rm -f; \ done @# Clean up the included code files too rm -f $(CODE_FILES_TGT) code/*.aux