-PKGS := symantic-grammar symantic-document symantic symantic-lib
-HS := $(shell find $(PKGS) -name '*.hs')
+PKGS := symantic-grammar symantic-document symantic symantic-lib symantic-cli
+HS := $(shell find $(PKGS) -name '*.hs' -not -name 'HLint.hs')
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)
-%/test:
- ! grep -q '^Test-Suite\>' $*/$*.cabal || \
- { cd $*; stack $(STACK_FLAGS) test $(STACK_TEST_FLAGS); }
+define test
+$p/test:
+ ! grep -q '^Test-Suite\>' $p/$p.cabal || \
+ { cd $p; stack $$(STACK_FLAGS) test $$(STACK_TEST_FLAGS); }
+endef
+$(foreach p,$(PKGS),$(eval $(call test)))
clean: $(PKGS:=/clean)
cleaner: $(PKGS:=/cleaner)
doc: $(PKGS:=/doc)
%/doc:
cd $*; stack $(STACK_FLAGS) haddock $(STACK_HADDOCK_FLAGS)
+%.html: %.md
+ markdown $*.md >$*.html
+%.html/view: %.html
+ sensible-browser $*.html
HLint.hs: $(HS)
sed -i -e '/^-- BEGIN: generated hints/,/^-- END: Generated by hlint/d' HLint.hs
cd $*; if hlint --quiet --report=hlint.html -XNoCPP \
$(shell cabal-cargs --format=ghc --only=default_extensions --sourcefile=$*) $(HLINT_FLAGS) .; \
then rm -f hlint.html; \
- else sensible-browser hlint.html & fi
+ else sensible-browser ./hlint.html & fi
tag: $(PKGS:=/tag)
%/tag:
git tag --merged | grep -Fqx "$$name-$$version" || \
git tag -f -s -m "$$name v$$version" $$name-$$version
+tar: $(PKGS:=/tar)
+%/tar:
+ cd $*; stack $(STACK_FLAGS) sdist $(STACK_SDIST_FLAGS)
upload: $(PKGS:=/upload)
%/upload:
- cd $*; LANG=C stack $(STACK_FLAGS) sdist --sign
- cd $*; LANG=C stack $(STACK_FLAGS) upload .
+ cd $*; LANG=C stack $(STACK_FLAGS) upload $(STACK_UPLOAD_FLAGS) .
.PHONY: stats
stats: