PN = spline3 BIN = dist/build/$(PN)/$(PN) SRCS := $(shell find src/ -type f -name '*.hs') BIN = dist/build/spline3/spline3 DOCTESTS_BIN = dist/build/doctests/doctests TESTSUITE_BIN = dist/build/testsuite/testsuite # 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 : test doc dist hlint $(BIN): $(PN).cabal $(SRCS) runghc Setup.hs configure --user --prefix=/ runghc Setup.hs build --ghc-options="${HCFLAGS}" $(DOCTESTS_BIN): $(SRCS) test/Doctests.hs runghc Setup.hs configure --user --prefix=/ --enable-tests runghc Setup.hs build --ghc-options="${HCFLAGS}" $(TESTSUITE_BIN): $(SRCS) test/TestSuite.hs runghc Setup.hs configure --user --prefix=/ --enable-tests runghc Setup.hs build --ghc-options="${HCFLAGS}" clean: runghc Setup.hs clean rm -rf dist/ rm -f *.prof rm -f .hpc check: $(PN).cabal $(TESTSUITE_BIN) $(DOCTESTS_BIN) $(BIN) runghc Setup.hs test dist: runghc Setup.hs configure --prefix=/ TAR_OPTIONS="--format=ustar" runghc Setup.hs sdist doc: dist/doc dist/doc: $(PN).cabal $(SRCS) runghc Setup.hs configure --user --prefix=/ runghc Setup.hs haddock --all \ --hyperlink-source \ --haddock-options="--ignore-all-exports" hlint: hlint --ignore="Use camelCase" \ --ignore="Redundant bracket" \ --color \ src