.PRECIOUS: %.pdf SCHEME48 = scheme48 LIBS = syntax.scm match.scm prelude.scm list.scm listcomp.scm monad.scm io.scm SOURCES = $(LIBS) $(filter-out $(LIBS), $(patsubst _darcs/current/%,%, $(wildcard _darcs/current/*.scm))) APPS = hw1 test IMAGES = $(APPS:%=%.image) A2PS = a2ps A2PSOPTS = \ -b --left-footer= --right-footer="%Q" \ -1 -M letter -1 -l 100 \ -Emyscheme.ssh -g all: $(APPS) test: run-test run-hw1 clean: rm -f $(IMAGES) *.pdf *.ps $(IMAGES): %.image: %.scm $(LIBS) (echo ,load $(LIBS); echo ,load $^; echo ,build main $@;echo ,exit) | $(SCHEME48) || rm -f $@ run-%: %.image scheme48 -i $< %.ps: %.scm $(LIBS) $(A2PS) $(A2PSOPTS) -o $@ $^ libs.ps: $(LIBS) $(A2PS) $(A2PSOPTS) -o $@ $^ sources.ps: $(SOURCES) $(A2PS) $(A2PSOPTS) -o $@ $^ %.pdf: %.ps ps2pdf $< pdf: sources.pdf @if [ "`uname -s`" = "Darwin" ]; then open $^; else xpdf $^; fi push: sources.pdf darcs push charger.brianweb.net:/home/darcs/scheme scp sources.pdf charger.brianweb.net:/home/darcs/scheme fixme: @grep FIXME *.scm copyrightcheck: @for f in $(SOURCES); do grep Copyright $$f /dev/null|| echo "---> Not in $$f"; done substitute-reduce.scm: hw2-sudoku.scm sed -n '1,/END PUBLIC/p;' < $< | fgrep -v 'END PUBLIC' > $@