1.DEFAULT_GOAL = all
2
3numcpus := $(shell cat /proc/cpuinfo | grep '^processor\s*:' | wc -l)
4version := $(shell git rev-list --count HEAD).$(shell git rev-parse --short HEAD)
5
6name := fake
7package := github.com/icrowley/$(name)
8
9.PHONY: all
10all:: dependencies
11
12.PHONY: tools
13tools::
14 @if [ ! -e "$(GOPATH)"/bin/glide ]; then go get github.com/Masterminds/glide; fi
15 @if [ ! -e "$(GOPATH)"/bin/godef ]; then go get github.com/rogpeppe/godef; fi
16 @if [ ! -e "$(GOPATH)"/bin/gocode ]; then go get github.com/nsf/gocode; fi
17 @if [ ! -e "$(GOPATH)"/bin/gometalinter ]; then go get github.com/alecthomas/gometalinter && gometalinter --install; fi
18 @if [ ! -e "$(GOPATH)"/src/github.com/stretchr/testify/assert ]; then go get github.com/stretchr/testify/assert; fi
19
20.PHONY: dependencies
21dependencies:: tools
22 glide install
23
24.PHONY: clean
25clean:: tools
26 glide cache-clear
27
28.PHONY: test
29test:: dependencies
30 go test -v \
31 $(shell glide novendor)
32
33.PHONY: bench
34bench:: dependencies
35 go test \
36 -bench=. -v \
37 $(shell glide novendor)
38
39.PHONY: lint
40lint:: dependencies
41 go vet $(shell glide novendor)
42 gometalinter \
43 --deadline=5m \
44 --concurrency=$(numcpus) \
45 $(shell glide novendor)
46
47.PHONY: check
48check:: lint test