GHC_FLAGS=-cpp -DEXTERNAL_PACKAGE -i.. -O2 -fglasgow-exts -fbang-patterns #GHC_FLAGS="-hide-package arrows-0.2" GHC=ghc # run everything! all :: internal list stream strictness list-compiled stream-compiled internal-compiled strictness-compiled # --------------------------------------------------------------- # testing list :: runghc $(GHC_FLAGS) Properties/ListVsSpec.hs runghc $(GHC_FLAGS) Properties/ListVsBase.hs stream :: runghc $(GHC_FLAGS) Properties/StreamListVsSpec.hs runghc $(GHC_FLAGS) Properties/StreamListVsBase.hs runghc $(GHC_FLAGS) Properties/StreamVsSpecStream.hs internal :: runghc $(GHC_FLAGS) Properties/Internal.hs strictness :: runghc $(GHC_FLAGS) Strictness/ListVsSpec.hs runghc $(GHC_FLAGS) Strictness/ListVsBase.hs runghc $(GHC_FLAGS) Strictness/BaseVsSpec.hs runghc $(GHC_FLAGS) Strictness/StreamListVsList.hs list-compiled :: ghc $(GHC_FLAGS) --make -frules-off -o lp Properties/ListVsSpec.hs ghc $(GHC_FLAGS) --make -frules-off -o lp2 Properties/ListVsBase.hs time ./lp time ./lp2 stream-compiled :: ghc $(GHC_FLAGS) --make -frules-off -o sp Properties/StreamListVsSpec.hs ghc $(GHC_FLAGS) --make -frules-off -o sp2 Properties/StreamListVsBase.hs ghc $(GHC_FLAGS) --make -frules-off -o sp3 Properties/StreamVsSpecStream.hs time ./sp time ./sp2 time ./sp3 internal-compiled :: ghc $(GHC_FLAGS) --make -frules-off -o ip Properties/Internal.hs time ./ip strictness-compiled :: ghc $(GHC_FLAGS) --make -frules-off -o strp Strictness/ListVsSpec.hs ghc $(GHC_FLAGS) --make -frules-off -o strp2 Strictness/ListVsBase.hs ghc $(GHC_FLAGS) --make -frules-off -o strp3 Strictness/BaseVsSpec.hs ghc $(GHC_FLAGS) --make -frules-off -o strp4 Strictness/StreamListVsList.hs time ./strp time ./strp2 time ./strp3 time ./strp4 # --------------------------------------------------------------- # benchmarking bench :: $(GHC) $(GHC_FLAGS) --make Bench/ListVsBase.hs -o bench $(GHC) $(GHC_FLAGS) --make Bench/StreamVsList.hs -o bench2 ./bench ./bench2 fusetest :: compiled $(GHC) $(GHC_FLAGS) -c -no-recomp -ddump-simpl-stats \ FuseTest.hs compiled :: ../Data/Stream.hs ../Data/List/Stream.hs \ Bench/Utils.hs Properties/Utils.hs Strictness/Utils.hs \ Spec/List.hs Spec/ListExts.hs Spec/PreludeList.hs \ Properties/Monomorphic/Base.hs \ Properties/Monomorphic/List.hs \ Properties/Monomorphic/Spec.hs \ Properties/Monomorphic/SpecStream.hs \ Properties/Monomorphic/Stream.hs \ Properties/Monomorphic/StreamList.hs \ Strictness/Monomorphic/Base.hs \ Strictness/Monomorphic/List.hs \ Strictness/Monomorphic/Spec.hs \ Strictness/Monomorphic/StreamList.hs $(GHC) $(GHC_FLAGS) --make $^ Bench/bigdata : cat Bench/data Bench/data Bench/data Bench/data Bench/data > Bench/bigdata # --------------------------------------------------------------- # cleaning clean : rm -f *.hi *.o ../Data/*.o ../Data/*.hi ../Data/List/*.o ../Data/List/*.hi rm -f Spec/*.o Spec/*.hi Bench/*.o Bench/*.hi rm -f Properties/*.o Properties/*.hi Strictness/*.o Strictness/*.hi rm -f bench bench2 lp lp2 sp sp2 sp3 ip strp strp2 strp3