text / tests / Makefile

The default branch has multiple heads

Bryan O'Sullivan bb16c7a 

Bryan O'Sullivan f53096d 
John Millikin 4a6654c 

Bryan O'Sullivan d27551b 
Bryan O'Sullivan b5b51f2 
Bryan O'Sullivan 046b1a9 
Bryan O'Sullivan 8dcf644 
Bryan O'Sullivan d468c48 
Bryan O'Sullivan a19de8a 
Bryan O'Sullivan df9bcce 
Bryan O'Sullivan 88ccd83 


Bryan O'Sullivan bb16c7a 


Bryan O'Sullivan dbdb512 
Bryan O'Sullivan ac53fa5 

Bryan O'Sullivan a19de8a 
Bryan O'Sullivan 73321bf 
Bryan O'Sullivan bb16c7a 
Bryan O'Sullivan 73321bf 
Bryan O'Sullivan bb16c7a 
Bryan O'Sullivan ac53fa5 
Bryan O'Sullivan bb16c7a 

Bryan O'Sullivan ac53fa5 



Bryan O'Sullivan bb16c7a 
John Millikin 4a6654c 
Bryan O'Sullivan c37ef61 
Bryan O'Sullivan f5a6053 


Bryan O'Sullivan c37ef61 
Bryan O'Sullivan df9bcce 
Bryan O'Sullivan 88ccd83 
Bryan O'Sullivan b4814c5 
Bryan O'Sullivan f53096d 

Bryan O'Sullivan 2970a65 
Bryan O'Sullivan 88ccd83 
Bryan O'Sullivan 359abdc 
John Millikin 4a6654c 
Bryan O'Sullivan f53096d 
Bryan O'Sullivan bb16c7a 
Bryan O'Sullivan 39e66be 







Bryan O'Sullivan 408d8df 
Bryan O'Sullivan 39e66be 










Bryan O'Sullivan ea425bf 


Bryan O'Sullivan a19de8a 

Bryan O'Sullivan e18e8b7 
John Millikin 4a6654c 
Bryan O'Sullivan e18e8b7 


Bryan O'Sullivan b4814c5 
Bryan O'Sullivan f53096d 
Bryan O'Sullivan bb16c7a 
Bryan O'Sullivan f53096d 
Bryan O'Sullivan 88ccd83 

Bryan O'Sullivan f53096d 
Bryan O'Sullivan 73321bf 







Bryan O'Sullivan 39e66be 
version := $(shell awk '/^version:/{print $$2}' ../text.cabal)
ghc := ghc
ghc-opt-flags = -O0
ghc-base-flags := -funbox-strict-fields -hide-all-packages \
	-package base -package mtl -package random -package directory \
	-package criterion -package deepseq -DASSERTS -DHAVE_DEEPSEQ \
	-package bytestring -ignore-package text \
	-fno-ignore-asserts
ghc-test-flags := -package QuickCheck -package test-framework -package deepseq \
	-package test-framework-quickcheck2 -package test-framework-hunit \
	-package HUnit
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 regressions

lib: $(lib)

$(lib): $(lib-srcs:%=../%)
ifeq ($(cabal),)
	cd .. && runghc Setup configure --user --prefix=$(HOME)
	cd .. && runghc Setup build
else
	cd .. && cabal configure
	cd .. && cabal build
endif

Properties.o Regressions.o qc qc-hpc: ghc-flags += $(ghc-test-flags)
Properties.o: QuickCheckUtils.o SlowFunctions.o TestUtils.o

QuickCheckUtils.o: $(lib)

qc: Properties.o QuickCheckUtils.o SlowFunctions.o TestUtils.o
	$(ghc) $(ghc-flags) -threaded -o $@ $^ $(lib)

sb: SearchBench.o SlowFunctions.o
	$(ghc) $(ghc-flags) -threaded -o $@ $^ $(lib)

qc-hpc: Properties.hs QuickCheckUtils.hs SlowFunctions.hs TestUtils.hs $(lib-srcs:%=../%)
	-mkdir -p hpcdir
	@rm -f $@.tix
	$(ghc) $(ghc-hpc-flags) $(ghc-test-flags) $(ghc-opt-flags) -ihpcdir \
	  --make -threaded -o $@ $<

stdio-hpc: StdioCoverage.hs $(lib-srcs:%=../%)
	-mkdir -p hpcdir
	@rm -f $@.tix
	$(ghc) $(ghc-hpc-flags) $(ghc-test-flags) $(ghc-opt-flags) -ihpcdir \
	  --make -threaded -o $@ $<

coverage: coverage-html/hpc_index.html

coverage-html/hpc_index.html: qc-hpc stdio-hpc
	@rm -f qc-hpc.tix stdio-hpc.tix coverage.tix
	./qc-hpc -a 100 +RTS -N
	bash ./cover-stdio.sh
	hpc combine --output=coverage.tix --exclude=Main \
	  qc-hpc.tix stdio-hpc.tix
	hpc markup coverage --exclude=Main --exclude=Properties --exclude=Main \
	  --exclude=Data.Text.Fusion.CaseMapping --exclude StdioCoverage \
	  --exclude=SlowFunctions --exclude=TestUtils \
	  --exclude=QuickCheckUtils --srcdir=.. --srcdir=. --destdir=$(dir $@)
	@echo xdg-open $@

Regressions.o: TestUtils.o

regressions: Regressions.o TestUtils.o
	$(ghc) $(ghc-test-flags) -o $@ $^ $(lib)

Benchmarks.o: ghc-opt-flags = -O
bm Benchmarks.o: ghc-flags += -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

text-testdata.tar.bz2:
	curl -O http://projects.haskell.org/text/text-testdata.tar.bz2

clean:
	-rm -rf *.o *.hi *.tix bm qc qc-hpc stdio-hpc hpcdir .hpc coverage-html
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.