-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
73 lines (58 loc) · 1.9 KB
/
Makefile
File metadata and controls
73 lines (58 loc) · 1.9 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.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 := filelist
package := github.com/corpix/$(name)
build := ./build
build_id := 0x$(shell echo $(version) | sha1sum | awk '{print $$1}')
ldflags := -X $(package)/cli.version=$(version) \
-B $(build_id)
.PHONY: all
all:: dependencies
.PHONY: tools
tools::
@if [ ! -e "$(GOPATH)"/bin/glide ]; then go get github.com/Masterminds/glide; fi
@if [ ! -e "$(GOPATH)"/bin/glide-cleanup ]; then go get github.com/ngdinhtoan/glide-cleanup; fi
@if [ ! -e "$(GOPATH)"/bin/glide-vc ]; then go get github.com/sgotti/glide-vc; 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
.PHONY: all
all:: $(name)
.PHONY: $(name)
$(name):: dependencies
mkdir -p $(build)
@echo "Build id: $(build_id)"
go build -a -ldflags "$(ldflags)" -v \
-o build/$(name) \
$(package)/$(name)
.PHONY: build
build:: $(name)
.PHONY: clean
clean::
rm -rf $(build)