hjugement \
hjugement-protocol
hjugement-protocol/test: TEST_FLAGS:=
+
HS = $(shell find . -name '*.hs' -not -name 'HLint.hs')
cabal := $(shell find . -name '*.cabal' -print -quit)
QUICKCHECK_TESTS = 1000
QUICKCHECK_MAXSIZE = 100
TEST_FLAGS = --quickcheck-tests $(QUICKCHECK_TESTS) --quickcheck-max-size $(QUICKCHECK_MAXSIZE)
+BENCH_HTML_FLAGS = --output benchmarks/html/$(shell sed -ne 's/^version: *\(.*\)/\1/p' $p/$p.cabal).html
all: build
cd $* && stack $(STACK_FLAGS) build $(STACK_BUILD_FLAGS)
.PHONY: $(PKGS) $(foreach p,$(PKGS),$(eval $p: $p/build))
-.PHONY: $(PKGS:=/test)
test: $(PKGS:=/test)
define test
$p/test:
- ! grep -q '^Test-Suite\>' $p/$p.cabal || \
+ ! grep -iq '^Test-Suite\>' $p/$p.cabal || \
{ cd $p && stack $$(STACK_FLAGS) test --test-arguments "$$(TEST_FLAGS)" $$(STACK_TEST_FLAGS); }
endef
$(foreach p,$(PKGS),$(eval $(call test)))
--test $(GHCID_TEST) \
$(GHCID_FLAGS)
+bench: $(PKGS:=/bench)
+define bench
+$p/bench:
+ mkdir -p $p/benchmarks/html
+ ! grep -iq '^Benchmark\>' $p/$p.cabal || \
+ { cd $p && stack $$(STACK_FLAGS) bench \
+ --benchmark-arguments "$(call BENCH_HTML_FLAGS) $$(BENCH_FLAGS)" \
+ $$(STACK_BENCH_FLAGS); }
+endef
+$(foreach p,$(PKGS),$(eval $(call bench)))
+
clean: $(PKGS:=/clean)
cleaner: $(PKGS:=/cleaner)
%/clean: