Cleanup Makefile

Makes most variables able to be overridden.
Simpleifies some rules.
Quiets most of the output.
This commit is contained in:
joneshf 2018-07-29 10:10:11 -07:00
parent 73e6221fb6
commit 1abae7fc5f
No known key found for this signature in database
GPG Key ID: C8FFFC4E889B880E

View File

@ -1,40 +1,36 @@
PROJECT_NAME := rollbar-hs
BIN ?= bin
CABAL ?= cabal
DIST ?= dist
EMPTY ?= .make
PROJECT_NAME ?= rollbar-hs
STACK ?= stack
STACK_WORK ?= .stack-work
VERBOSITY ?= warn
BIN := bin
CABAL := cabal
CABAL_FILE := $(PROJECT_NAME).cabal
DIST := dist
EMPTY := .make
GHCID := $(BIN)/ghcid
STACK := stack
STACK_WORK := .stack-work
STACK_FLAGS := --verbosity $(VERBOSITY)
.DEFAULT_GOAL := build
$(BIN):
mkdir -p $@
$(DIST):
mkdir -p $@
$(EMPTY):
$(BIN) $(DIST) $(EMPTY):
mkdir -p $@
$(EMPTY)/stack-setup: | $(EMPTY)
$(STACK) setup
$(STACK) $(STACK_FLAGS) setup
touch $@
$(GHCID): $(EMPTY)/stack-setup | $(BIN)
$(STACK) install ghcid --local-bin-path $(BIN)
$(STACK) $(STACK_FLAGS) install ghcid --local-bin-path $(BIN)
$(CABAL_FILE):
$(CABAL_FILE): package.yaml
# `stack` has no way to run `hpack` directly.
# We can run `hpack` indirectly with little overhead.
$(STACK) build --dry-run
$(STACK) $(STACK_FLAGS) build --dry-run
.PHONY: build
build: $(EMPTY)/stack-setup
$(STACK) build --no-run-tests --test
$(STACK) $(STACK_FLAGS) build --no-run-tests --test
.PHONY: cabal-check
cabal-check: $(CABAL_FILE)
@ -54,7 +50,7 @@ sdist: cabal-check | $(DIST)
.PHONY: test
test: build
$(STACK) test
$(STACK) $(STACK_FLAGS) test
.PHONY: upload-hackage
upload-hackage: sdist