X-Git-Url: http://gitweb.michael.orlitzky.com/?p=haeredes.git;a=blobdiff_plain;f=makefile;h=049fe55a57d40dde58d121e2deef4b695e11a4bc;hp=08b02ce805f0bd232e8718fddeb2e9ccf455fdd4;hb=070d0876a5663270bd393cee354f4df368b146a4;hpb=2104fcab31ed92c308ce6b05c03d10f9f8b4cf16 diff --git a/makefile b/makefile index 08b02ce..049fe55 100644 --- a/makefile +++ b/makefile @@ -1,33 +1,57 @@ -BIN = dist/build/haeredes/haeredes +PN = haeredes +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 \ + -rtsopts \ + -threaded + +.PHONY : dist hlint + +$(BIN): $(PN).cabal $(SRCS) + runghc Setup.hs configure --user + runghc Setup.hs build --ghc-options="${HCFLAGS}" + +doc: $(PN).cabal $(SRCS) + runghc Setup.hs haddock --all \ + --hyperlink-source \ + --haddock-options="--ignore-all-exports" + + +# +# Tests +# TESTSUITE_BIN = dist/build/testsuite/testsuite DOCTESTS_BIN = dist/build/doctests/doctests +TEST_SRCS := $(shell find test/ -type f -name '*.hs') -.PHONY : dist doc test +$(TESTSUITE_BIN): $(PN).cabal $(SRCS) $(TEST_SRCS) + runghc Setup.hs configure --user --enable-tests --prefix=/ + runghc Setup.hs build --ghc-options="${HCFLAGS}" -$(BIN): src/*.hs - runghc Setup.hs clean - runghc Setup.hs configure --user - runghc Setup.hs build -$(TESTSUITE_BIN): src/*.hs test/TestSuite.hs +$(DOCTESTS_BIN): $(PN).cabal $(SRCS) $(TEST_SRCS) runghc Setup.hs configure --user --enable-tests - runghc Setup.hs build + runghc Setup.hs build --ghc-options="${HCFLAGS}" -$(DOCTESTS_BIN): src/*.hs test/Doctests.hs - runghc Setup.hs configure --user --enable-tests - runghc Setup.hs build +check: $(BIN) $(TESTSUITE_BIN) $(DOCTESTS_BIN) + runghc Setup.hs test -clean: - runghc Setup.hs clean -test: $(BIN) $(TESTSUITE_BIN) $(DOCTESTS_BIN) - runghc Setup.hs test +# +# Misc +# -doc: - runghc Setup.hs hscolour --executables - runghc Setup.hs haddock --internal \ - --executables \ - --hyperlink-source +dist: + runghc Setup.hs configure + TAR_OPTIONS="--format=ustar" runghc Setup.hs sdist hlint: hlint --ignore="Use camelCase" \ @@ -35,6 +59,8 @@ hlint: --color \ src -dist: - runghc Setup.hs configure - runghc Setup.hs sdist +clean: + runghc Setup.hs clean + find ./ -name '*.prof' -delete + find ./ -name '*.o' -delete + find ./ -name '*.hi' -delete