X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=makefile;h=21106112f130c0d2cc2177706d8e5ac3b37a34ab;hb=15ccf02b51c72a7bb6eb098c157005a78cd3f84d;hp=84c6d1d0f0f3ff0bd2d304cc710c7313eaf0db93;hpb=f216ea2169204c82fb4fdd5b6ce08ac7bb53a738;p=spline3.git diff --git a/makefile b/makefile index 84c6d1d..2110611 100644 --- a/makefile +++ b/makefile @@ -1,31 +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 +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 doc src_html hlint + +.PHONY : test publish_doc doc src_html hlint $(BIN): src/*.hs - ghc -O2 $(GHC_WARNINGS) --make -o bin/${BIN} 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_WARNINGS) --make -o bin/${BIN} src/*.hs src/Tests/*.hs + ghc $(GHC_OPTS) src/*.hs src/Tests/*.hs profile: src/*.hs - ghc -O2 $(GHC_WARNINGS) -prof -auto-all --make -o bin/$(BIN) 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/* @@ -68,6 +91,11 @@ doc: src_html --source-entity="src/%{MODULE/.//}.html#%{NAME}" \ src/*.hs src/Tests/*.hs +SSH_USER=root@michael.orlitzky.com +PUBLIC_DOCDIR=/var/www/orlitzky.com/michael/public/spline3/ +publish_doc: doc + rsync -avz -e ssh ./doc/html/ $(SSH_USER):$(PUBLIC_DOCDIR) + hlint: hlint --ignore="Use camelCase" \ --ignore="Redundant bracket" \