git.iko.soy/typeable/rollbar-hs
on pull-19-restyled help sign in
61 lines 1.2 kB history raw
1CABAL ?= cabal
2CABAL_FLAGS ?=
3CABAL_BUILD_FLAGS ?=
4DIST ?= dist
5GHCID ?= ghcid
6GHCID_FLAGS ?= --ghc-options=-fno-code
7HPACK ?= hpack
8NIX_SHELL ?= nix-shell
9NIX_SHELL_FLAGS ?=
10PROJECT_NAME := rollbar-hs
12CABAL_FILE := $(PROJECT_NAME).cabal
13CONFIGURE := $(DIST)/setup-config
14DOC_TEST := $(DIST)/build/doc-test/doc-test
16.DEFAULT_GOAL := build
18$(CABAL_FILE): package.yaml
19 $(HPACK)
21$(CONFIGURE): $(CABAL_FILE)
22 $(CABAL) $(CABAL_FLAGS) configure --enable-tests
24.PHONY: build
25build $(DOC_TEST): $(CONFIGURE) default.nix
26 $(CABAL) $(CABAL_FLAGS) build $(CABAL_BUILD_FLAGS)
28.PHONY: check
29check: $(CABAL_FILE)
30 $(CABAL) $(CABAL_FLAGS) check
32.PHONY: clean
33clean:
34 rm -f $(CABAL_FILE)
35 rm -fr $(DIST)
37default.nix: $(CABAL_FILE)
38 cabal2nix . > $@
40.PHONY: sdist
41sdist: check
42 $(CABAL) $(CABAL_FLAGS) sdist
44.PHONY: shell
45shell:
46 $(NIX_SHELL) --pure $(NIX_SHELL_FLAGS)
48.PHONY: test
49test: test-doc-test
51.PHONY: test-doc-test
52test-doc-test: $(DOC_TEST)
53 $<
55.PHONY: upload-hackage
56upload-hackage: sdist
57 @ $(CABAL) $(CABAL_FLAGS) upload $(DIST)/$(PROJECT_NAME)-*.tar.gz
59.PHONY: watch
60watch: $(CONFIGURE)
61 $(GHCID) --command "cabal repl lib:$(PROJECT_NAME) $(GHCID_FLAGS)"