Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (60 sloc) 2.27 KB
version := $(shell awk '/^version:/{print $$2}' ../text.cabal)
ghc := ghc
ghc-opt-flags = -O0
ghc-base-flags := -funbox-strict-fields -package criterion \
-package bytestring -ignore-package text \
ghc-test-flags := -package QuickCheck -package test-framework \
-package test-framework-quickcheck
ghc-base-flags += -Wall -fno-warn-orphans -fno-warn-missing-signatures
ghc-flags := $(ghc-base-flags) -i../dist/build -package-name text-$(version)
ghc-hpc-flags := $(ghc-base-flags) -fhpc -fno-ignore-asserts -odir hpcdir \
-hidir hpcdir -i..
lib := ../dist/build/libHStext-$(version).a
lib-srcs := $(shell grep '^ *Data' ../text.cabal | \
sed -e 's,\.,/,g' -e 's,$$,.hs,')
cabal := $(shell which cabal 2>/dev/null)
all: bm qc coverage
lib: $(lib)
$(lib): $(lib-srcs:%=../%)
ifeq ($(cabal),)
cd .. && runghc Setup configure --user --prefix=$(HOME)
cd .. && runghc Setup build
cd .. && cabal configure
cd .. && cabal build
Properties.o qc qc-hpc: ghc-flags += $(ghc-test-flags)
Properties.o: QuickCheckUtils.o SlowFunctions.o
QuickCheckUtils.o: $(lib)
qc: Properties.o QuickCheckUtils.o SlowFunctions.o
$(ghc) $(ghc-flags) -threaded -o $@ $^ $(lib)
sb: SearchBench.o SlowFunctions.o
$(ghc) $(ghc-flags) -threaded -o $@ $^ $(lib)
qc-hpc: Properties.hs QuickCheckUtils.hs $(lib-srcs:%=../%)
-mkdir -p hpcdir
@rm -f $@.tix
$(ghc) $(ghc-hpc-flags) $(ghc-opt-flags) -ihpcdir \
--make -threaded -o $@ $<
coverage: qc-hpc-html/hpc_index.html
qc-hpc-html/hpc_index.html: qc-hpc
./qc-hpc -a 100 +RTS -N2
hpc markup qc-hpc --exclude=Main --exclude=Properties \
--exclude=Data.Text.Fusion.CaseMapping \
--exclude=QuickCheckUtils --srcdir=.. --srcdir=. --destdir=$(dir $@)
Benchmarks.o: ghc-opt-flags = -O
bm Benchmarks.o: ghc-flags += -hide-package transformers -package utf8-string
bm: Benchmarks.o
$(ghc) $(ghc-flags) -o $@ $^ $(lib)
SlowFunctions.o: ghc-opt-flags = -O2
SearchBench.o: ghc-opt-flags = -O
%.o: %.hs
$(ghc) $(ghc-flags) $(ghc-opt-flags) -c -o $@ $<
hpcdir/%.o: %.hs
$(ghc) $(ghc-hpc-flags) $(ghc-opt-flags) --make -c -o $@ $<
.PHONY: testdata
testdata: text-testdata.tar.bz2
curl -O
-rm -rf *.o *.hi *.tix bm qc qc-hpc hpcdir .hpc qc-hpc-html
Jump to Line
Something went wrong with that request. Please try again.