GHC=ghc all: simple full simple: hello hello: $(GHC) -fforce-recomp hello.hs -o hello_regular.exe $(GHC) -fforce-recomp hello.hs -o hello_threaded.exe -threaded $(GHC) -fforce-recomp hello.hs -o hello_prof.exe -prof $(GHC) -fforce-recomp hello.hs -o hello_prof_threaded.exe -prof -threaded ./hello_regular.exe ./hello_threaded.exe ./hello_prof.exe ./hello_prof_threaded.exe NOPROF= --disable-library-profiling --disable-executable-profiling PROF= --enable-library-profiling --enable-executable-profiling CBL= rm -rf dist; echo "\n\n"; cabal install --enable-tests #================================================================================ # The --builddir approach is broken with cabal 1.16. It works fine in # the current cabal HEAD [2013.07.18]. # ================================================================================ # Try all combinations of profiling, optimization, and threading: full: $(CBL) $(NOPROF) -fopt -fthreaded # --builddir=dist_reg_opt_thrd $(CBL) $(PROF) -fopt -fthreaded # --builddir=dist_prof_opt_thrd $(CBL) $(NOPROF) -f-opt -fthreaded # --builddir=dist_reg__thrd $(CBL) $(PROF) -f-opt -fthreaded # --builddir=dist_prof__thrd $(CBL) $(NOPROF) -fopt -f-threaded # --builddir=dist_reg_opt_ $(CBL) $(PROF) -fopt -f-threaded # --builddir=dist_prof_opt_ $(CBL) $(NOPROF) -f-opt -f-threaded # --builddir=dist_reg__ $(CBL) $(PROF) -f-opt -f-threaded # --builddir=dist_prof__ # These shoud be redundant with the above, but we run them anyway: for f in `ls dist_*/build/hello-world-atomic-primops/hello-world-atomic-primops`; do ./$f; done tail dist_*/test/test-atomic-primops-*-test-atomic-primops.log clean: rm -rf ./dist/ ./dist_*/