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