]> gitweb.michael.orlitzky.com - spline3.git/blobdiff - makefile
Use the cleaner formula for 'det'.
[spline3.git] / makefile
index a15145d35d115435167b67880cb0c611845a00d0..21106112f130c0d2cc2177706d8e5ac3b37a34ab 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,33 +1,54 @@
+BIN := spline3
+TMPDIR := /tmp
+
 GHC_WARNINGS := -Wall
 GHC_WARNINGS += -fwarn-hi-shadowing
 GHC_WARNINGS += -fwarn-missing-signatures
 GHC_WARNINGS += -fwarn-name-shadowing
 GHC_WARNINGS += -fwarn-orphans
 GHC_WARNINGS += -fwarn-type-defaults
+GHC_WARNINGS += -fwarn-tabs
+GHC_WARNINGS += -fwarn-incomplete-record-updates
+GHC_WARNINGS += -fwarn-monomorphism-restriction
+GHC_WARNINGS += -fwarn-unused-do-bind
 
-BIN := spline3
-GHC_OPTS := $(GHC_WARNINGS) -odir /tmp -hidir /tmp --make -o bin/${BIN}
+OPTIMIZATIONS := -O2
+OPTIMIZATIONS += -fexcess-precision
+OPTIMIZATIONS += -fno-spec-constr-count
+
+GHC_OPTS := $(OPTIMIZATIONS) \
+           $(GHC_WARNINGS)  \
+            -odir $(TMPDIR)  \
+            -hidir $(TMPDIR) \
+            --make           \
+            -rtsopts         \
+            -threaded        \
+            -o bin/${BIN}
 
 
 .PHONY : test publish_doc doc src_html hlint
 
 $(BIN): src/*.hs
-       ghc -O2 $(GHC_OPTS) src/*.hs
+       ghc -optc-O3 -optc-march=native $(GHC_OPTS) src/*.hs
+
+llvm: src/*.hs
+       ghc -fllvm $(GHC_OPTS) src/*.hs
 
 all: $(BIN) test_src
 
 test_src: src/Tests/*.hs
-       ghc -O2 $(GHC_OPTS) src/*.hs src/Tests/*.hs
+       ghc $(GHC_OPTS) src/*.hs src/Tests/*.hs
 
 profile: src/*.hs
-       ghc -O2 $(GHC_OPTS) -prof -auto-all src/*.hs
+       ghc  -optc-O3 -optc-march=native $(GHC_OPTS) -prof -auto-all -caf-all src/*.hs
+
+profile-llvm: src/*.hs
+       ghc -fllvm $(GHC_OPTS) -prof -auto-all -caf-all src/*.hs
 
 clean:
        rm -f bin/$(BIN)
-       rm -f src/*.hi
-       rm -f src/*.o
-       rm -f src/Tests/*.hi
-       rm -f src/Tests/*.o
+       rm -f $(TMPDIR)/*.hi
+       rm -f $(TMPDIR)/*.o
        rm -f *.prof
        rm -rf doc/html/*