uvector-0.1: examples/quickcheck/Makefile
GHC = ../../../../../../../compiler/stage2/ghc-inplace
NDPDIR = ../../../../..
NDPLIB = $(NDPDIR)/libHSndp.a
HC = $(GHC)
HCFLAGS = -fglasgow-exts -package QuickCheck -package template-haskell \
-i$(NDPDIR) -v0
OPTFLAGS = -O2 -funbox-strict-fields \
-fliberate-case-threshold100 -fno-method-sharing
TESTSUITE = Testsuite/Utils.hs \
Testsuite/Testcase.hs \
Testsuite/Preproc.hs \
Testsuite.hs
TESTSUITE_OBJS = $(TESTSUITE:.hs=.o)
TESTS = $(wildcard tests/*.hs)
TEST_MODS = $(notdir $(TESTS))
OPT = $(TEST_MODS:.hs=-opt)
UNOPT = $(TEST_MODS:.hs=-unopt)
# we want the tests to be run in the right order
ALL = $(TEST_MODS:.hs=-all)
TESTMAIN = 'System.Environment.withArgs (words "$(run)") main'
.PHONY: default unopt opt all testsuite
default: unopt
all: $(ALL)
unopt: $(UNOPT)
opt: $(OPT)
testsuite: $(TESTSUITE_OBJS)
Testsuite.o: $(filter-out Testsuite.o,$(TESTSUITE_OBJS))
%.o : %.hs $(NDPLIB)
$(HC) -c $< $(HCFLAGS)
%-opt.o: %.hs $(NDPLIB) testsuite
$(HC) -o $@ -c $< $(HCFLAGS) $(OPTFLAGS)
%.hi: %.o
@:
$(TEST_OBJS) : testsuite
%-all: %-unopt %-opt
@:
%-unopt:
@echo "======== Testing $(patsubst %-unopt,%,$@) (interpreted) ========"
@$(HC) -e $(TESTMAIN) $(patsubst %-unopt,tests/%.hs,$@) $(HCFLAGS) \
| tee $@.log | { grep -v '\.\.\. pass' || true; }
@echo "======== Finished $(patsubst %-unopt,%,$@) (interpreted) ========"
%-opt: tests/%-opt.o
@$(HC) -o tst $(HCFLAGS) $< $(TESTSUITE_OBJS) $(NDPLIB)
@echo "======== Testing $(patsubst %-opt,%,$@) (optimised) ========"
@./tst | tee $@ | { grep -v '\.\.\. pass' || true; }
@echo "======== Finished $(patsubst %-opt,%,$@) (optimised) ========"
@rm -f tst $<