FORMATTED_FILES = Setup.hs src testsuite/src FORMATTER_UTILITY = cabal run -- FORMATTER_ARGUMENTS = --force --input {} --output {} .PHONY : all build test document format sandbox clean all : build test document format build : cabal install --only-dependencies --enable-tests -j cabal configure --enable-tests cabal build -j test : build cabal test -j cabal check document : build README.xhtml cabal haddock --internal %.xhtml : %.rst rst2html --strict $< $@ format : build # Use "xargs" instead of "-exec", since # 1. the call should fail if any "-exec" fails and # 2. the behavior of multiple "{}" is undefined for a standard "find". find $(FORMATTED_FILES) -type f -name '*.hs' -print0 | \ xargs -n 1 -0 -I {} $(FORMATTER_UTILITY) $(FORMATTER_ARGUMENTS) sandbox : cabal sandbox init $(MAKE) build clean : cabal clean cabal sandbox delete