# Makefile for leancheck-instances # # Copyright: (c) 2015-2018 Rudy Matela # License: 3-Clause BSD (see the file LICENSE) # Maintainer: Rudy Matela TESTS = test/main \ test/text EGS = \ eg/test-text BENCHS = \ bench/tiers GHCIMPORTDIRS = src:test # -dynamic is needed only for src/Test/LeanCheck/Derive.hs and test/derive.hs GHCFLAGS = -O2 $(shell grep -q "Arch Linux" /etc/lsb-release && echo -dynamic) HADDOCKFLAGS = --no-print-missing-docs \ $(shell grep -q "Arch Linux" /etc/lsb-release && echo --optghc=-dynamic) all: mk/toplibs all-all: mk/All.o test: $(patsubst %,%.run,$(TESTS)) diff-test test-sdist diff-test: diff-test-tiers $(patsubst %,%.diff-test,$(EGS)) update-diff-test: update-diff-test-tiers $(patsubst %,%.update-diff-test,$(EGS)) %.run: % ./$< eg/%.diff-test: eg/% ./$< | diff -rud test/diff/$<.out - eg/%.update-diff-test: eg/% ./$< > test/diff/$<.out clean: clean-hi-o clean-haddock rm -f $(TESTS) $(BENCHS) $(EGS) mk/toplibs full-clean: clean rm -rf .stack-work rm -f tags TAGS ghci: mk/All.ghci install: @echo "use \`cabal install' instead" test-sdist: ./test/sdist test-via-cabal: cabal test test-via-stack: stack test legacy-test: # needs ghc-8.2 .. ghc-7.8 installed as such make clean && make test GHC=ghc-8.2 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-8.0 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-7.10 GHCFLAGS="-Werror -dynamic" make clean && make test GHC=ghc-7.8 GHCFLAGS="-Werror -dynamic" make clean && make test legacy-test-via-cabal: # needs similarly named cabal wrappers cabal clean && cabal-ghc-8.2 configure && cabal-ghc-8.2 test cabal clean && cabal-ghc-8.0 configure && cabal-ghc-8.0 test cabal clean && cabal-ghc-7.10 configure && cabal-ghc-7.10 test cabal clean && cabal-ghc-7.8 configure && cabal-ghc-7.8 test cabal clean && cabal test hlint: hlint \ --ignore "Use import/export shortcut" \ --ignore "Redundant bracket" \ . markdown: pandoc README.md -o README.html # NOTE: (very hacky!) the following target allows parallel compilation (-jN) of # eg and tests programs so long as they don't share dependencies _not_ stored # in src/ and tests/. Runnable binaries should depend on mk/toplibs instead of # actual Haskell source files mk/toplibs: mk/Toplibs.o touch mk/toplibs include mk/haskell.mk diff-test-tiers: bench/tiers ./bench/tiers "Natural" | diff -rud test/diff/tiers-Natural.out - ./bench/tiers "Text" | diff -rud test/diff/tiers-Text.out - ./bench/tiers "ByteString" 6 | diff -rud test/diff/tiers-ByteString.out - ./bench/tiers "Set Int" | diff -rud test/diff/tiers-SetInt.out - ./bench/tiers "Set Bool" | diff -rud test/diff/tiers-SetBool.out - ./bench/tiers "Map Int Int" | diff -rud test/diff/tiers-MapIntInt.out - ./bench/tiers "Map Bool Bool" | diff -rud test/diff/tiers-MapBoolBool.out - ./bench/tiers "Seq Int" | diff -rud test/diff/tiers-SeqInt.out - ./bench/tiers "Seq Bool" | diff -rud test/diff/tiers-SeqBool.out - ./bench/tiers "IntMap Int" | diff -rud test/diff/tiers-IntMapInt.out - ./bench/tiers "IntSet" | diff -rud test/diff/tiers-IntSet.out - ./bench/tiers "UTCTime" 6 | diff -rud test/diff/tiers-UTCTime.out - ./bench/tiers "Day" 9 | diff -rud test/diff/tiers-Day.out - ./bench/tiers "DiffTime" | diff -rud test/diff/tiers-DiffTime.out - ./bench/tiers "Array Int Int" | diff -rud test/diff/tiers-ArrayIntInt.out - update-diff-test-tiers: bench/tiers ./bench/tiers "Natural" > test/diff/tiers-Natural.out ./bench/tiers "Text" > test/diff/tiers-Text.out ./bench/tiers "ByteString" 6 > test/diff/tiers-ByteString.out ./bench/tiers "Set Int" > test/diff/tiers-SetInt.out ./bench/tiers "Set Bool" > test/diff/tiers-SetBool.out ./bench/tiers "Map Int Int" > test/diff/tiers-MapIntInt.out ./bench/tiers "Map Bool Bool" > test/diff/tiers-MapBoolBool.out ./bench/tiers "Seq Int" > test/diff/tiers-SeqInt.out ./bench/tiers "Seq Bool" > test/diff/tiers-SeqBool.out ./bench/tiers "IntMap Int" > test/diff/tiers-IntMapInt.out ./bench/tiers "IntSet" > test/diff/tiers-IntSet.out ./bench/tiers "UTCTime" 6 > test/diff/tiers-UTCTime.out ./bench/tiers "Day" 9 > test/diff/tiers-Day.out ./bench/tiers "DiffTime" > test/diff/tiers-DiffTime.out ./bench/tiers "Array Int Int" > test/diff/tiers-ArrayIntInt.out