PKGS := symantic-grammar symantic symantic-lib all: build build: $(PKGS:=/build) %/build: cd $*; stack $(STACK_FLAGS) build $(STACK_BUILD_FLAGS) test: $(PKGS:=/test) %/test: ! grep -q '^Test-Suite\>' $*/$*.cabal || \ { cd $*; stack $(STACK_FLAGS) test $(STACK_BUILD_FLAGS); } clean: $(PKGS:=/clean) %/clean: cd $*; stack $(STACK_FLAGS) clean --full tag: $(PKGS:=/tag) %/tag: cabal=$*/$*.cabal; \ name=$$(sed -ne 's/^name: *\(.*\)/\1/p' "$$cabal"); \ version=$$(sed -ne 's/^version: *\(.*\)/\1/p' "$$cabal"); \ git tag --merged | grep -Fqx "$$name-$$version" || \ git tag -s -m "$$name v$$version" $$name-$$version .PHONY: stats stats: gitstats . $@ stats/view: stats sensible-browser stats/index.html