.PHONY: build install clean docs dist test examples tests RTSOPTS=+RTS -N RESOPTS=-r 50 #uncomment for profiling support. #PROFILING= --enable-library-profiling --enable-executable-profiling # stl2ps, from stltools, available from https://github.com/rsmith-nl/stltools/tree/develop stl2ps=/disk4/faikvm.com/stltools/stltools/stl2ps.py # convert, from imagemagick convert=convert EXTOPENSCAD=dist/build/extopenscad/extopenscad TESTSUITE=dist/build/test-implicit/test-implicit TARGETS=$(EXTOPENSCAD) $(TESTSUITE) # FIXME: this used to be ./Setup install. what's going on? install: $(TARGETS) cabal install clean: Setup ./Setup clean rm -f Examples/*.stl rm -f Examples/*.svg rm -f Examples/*.ps rm -f Examples/*.png rm -f Examples/example[0-9][0-9] rm -f Examples/*.hi rm -f Examples/*.o rm -f tests/*.stl rm -f Setup Setup.hi Setup.o rm -rf dist/* distclean: clean rm -f `find ./ -name *~` rm -f `find ./ -name \#*\#` nukeclean: distclean rm -rf ~/.cabal/ ~/.ghc/ docs: $(TARGETS) ./Setup haddock dist: $(TARGETS) ./Setup sdist #test: $(TARGETS) # ./Setup test examples: $(TARGETS) cd Examples && for each in `find ./ -name '*scad' -type f | sort`; do { valgrind --tool=cachegrind --cachegrind-out-file=$$each.cachegrind.`date +%s` ../$(EXTOPENSCAD) $$each ${RTSOPTS}; } done cd Examples && for each in `find ./ -name '*.hs' -type f | sort`; do { filename=$(basename "$$each"); filename="$${filename%.*}"; ghc $$filename.hs -o $$filename; $$filename; } done images: cd Examples && for each in `find ./ -name '*.stl' -type f | sort`; do { filename=$(basename "$$each"); filename="$${filename%.*}"; if [ -e $$filename.transform ] ; then echo ${stl2ps} $$each $$filename.ps `cat $$filename.transform`; else ${stl2ps} $$each $$filename.ps; fi; ${convert} $$filename.ps $$filename.png; } done tests: $(TARGETS) # cd tests && for each in `find ./ -name '*scad' -type f | sort`; do { ../$(EXTOPENSCAD) $$each ${RESOPTS} ${RTSOPTS}; } done ./dist/build/test-implicit/test-implicit dist/build/extopenscad/extopenscad: Setup dist/setup-config cabal build dist/build/test-implicit/test-implicit: Setup dist/setup-config cabal build dist/setup-config: Setup implicit.cabal cabal update cabal install --only-dependencies --upgrade-dependencies cabal configure --enable-tests $(PROFILING) Setup: Setup.*hs ghc -O2 -Wall --make Setup