X-Git-Url: http://gitweb.michael.orlitzky.com/?p=hath.git;a=blobdiff_plain;f=makefile;h=81e6f3b8b68b77e88b6e5a735de2a2f3d29ccd31;hp=5d42778f0942b95ef9a0266ed324f43ba470eadb;hb=5531fdace1587f4229a62c5284a4e76230f952ae;hpb=7622c66d1bb0592ae6cd5b9c6092ff2e0490c4a1 diff --git a/makefile b/makefile index 5d42778..81e6f3b 100644 --- a/makefile +++ b/makefile @@ -1,39 +1,58 @@ -BIN = dist/build/hath/hath -TESTSUITE_BIN = dist/build/testsuite/testsuite - -.PHONY : test dist hlint - -$(BIN): src/*.hs - runghc Setup.hs clean +PN = hath +BIN = dist/build/$(PN)/$(PN) +SRCS = $(shell find src/ -type f -name '*.hs') + +# Append these warnings to the HCFLAGS environment variable that gets +# passed as options to GHC. We want to see the warnings while developing +# but don't want them hard-coded in the cabal file for end users. +HCFLAGS += -Weverything \ + -Wno-implicit-prelude \ + -Wno-safe \ + -Wno-unsafe \ + -Wno-all-missed-specialisations \ + -Wno-prepositive-qualified-module \ + -Wno-missing-safe-haskell-mode \ + -Wno-missing-deriving-strategies \ + -rtsopts \ + -threaded + +.PHONY : dist hlint + +$(BIN): $(PN).cabal $(SRCS) runghc Setup.hs configure --user - runghc Setup.hs build + runghc Setup.hs build --ghc-options="${HCFLAGS}" -profile: src/*.hs - runghc Setup.hs clean - runghc Setup.hs configure --user --enable-executable-profiling - runghc Setup.hs build +doc: $(PN).cabal $(SRCS) + runghc Setup.hs haddock --all \ + --hyperlink-source \ + --haddock-options="--ignore-all-exports" -doc: src/*.hs - runghc Setup.hs configure --user - runghc Setup.hs hscolour --executables - runghc Setup.hs haddock --internal \ - --executables \ - --hyperlink-source -clean: - runghc Setup.hs clean +# +# Tests +# +TESTSUITE_BIN = dist/build/testsuite/testsuite +TEST_SRCS := $(shell find test/ -type f -name '*.hs') +$(TESTSUITE_BIN): $(PN).cabal $(SRCS) $(TEST_SRCS) + runghc Setup.hs configure --user --enable-tests --prefix=/ + runghc Setup.hs build --ghc-options="${HCFLAGS}" -$(TESTSUITE_BIN): src/*.hs test/TestSuite.hs - runghc Setup.hs configure --user --enable-tests - runghc Setup.hs build test: $(BIN) $(TESTSUITE_BIN) runghc Setup.hs test + +# +# Misc +# + +clean: + runghc Setup.hs clean + dist: runghc Setup.hs configure - runghc Setup.hs sdist + TAR_OPTIONS="--format=ustar" runghc Setup.hs sdist hlint: hlint --ignore="Use camelCase" \