25
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
26
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
27
28
- APPBIN := $(shell basename $(PWD ) )
28
+ APPBIN := $(basename $(PWD ) )
29
29
GOSOURCES := $(shell find . -type f -name '* .go')
30
30
GOPKGS := $(shell go list ./...)
31
31
GOPKG := $(shell go list)
32
32
COVERAGEOUT := coverage.out
33
33
COVERAGETMP := coverage.tmp
34
+ GODEPPATH := $(PWD ) /Godeps/_workspace
35
+ LOCALGOPATH := $(GODEPPATH ) :$(GOPATH )
34
36
35
37
ifndef GOBIN
36
38
export GOBIN := $(GOPATH ) /bin
37
39
endif
38
40
41
+ ifndef GOPATH
42
+ $(error ERROR!! GOPATH must be declared. Check [http ://golang.org/doc/code.html# GOPATH])
43
+ else
44
+ export GOPATH =$(LOCALGOPATH )
45
+ endif
46
+
47
+ ifeq ($(shell go list ./... | grep -q '^_'; echo $$? ) , 0)
48
+ $(error ERROR!! This directory should be at $(GOPATH)/src/$(REPO)]
49
+ endif
50
+
39
51
# #########################################################################################
40
52
# # Project targets
41
53
# #########################################################################################
@@ -47,33 +59,17 @@ $(APPBIN): gomkbuild
47
59
# #########################################################################################
48
60
49
61
.PHONY : gomkbuild
50
- gomkbuild : goenvcheck $(GOSOURCES ) ; @go build
62
+ gomkbuild : $(GOSOURCES ) ; @go build
51
63
52
64
.PHONY : gomkxbuild
53
65
gomkxbuild : ; $(GOX )
54
66
55
67
.PHONY : gomkclean
56
- gomkclean : goenvcheck
68
+ gomkclean :
57
69
@go clean
58
70
@rm -f $(APPBIN ) _* _386 $(APPBIN ) _* _amd64 $(APPBIN ) _* _arm $(APPBIN ) _* .exe
59
71
@rm -f $(COVERAGEOUT ) $(COVERAGETMP )
60
72
61
- # #########################################################################################
62
- # # Go Environment Checks
63
- # #########################################################################################
64
- .PHONY : gopath goenvcheck
65
-
66
- goenvcheck : gopath
67
- @exit 0
68
-
69
- gopath :
70
- ifndef GOPATH
71
- $(error ERROR!! GOPATH must be declared. Check [http://golang.org/doc/code.html# GOPATH])
72
- endif
73
- ifeq ($(shell go list ./... | grep -q '^_'; echo $$? ) , 0)
74
- $(error ERROR!! This directory should be at $(GOPATH)/src/$(REPO)]
75
- endif
76
-
77
73
# #########################################################################################
78
74
# # Go tools
79
75
# #########################################################################################
@@ -95,23 +91,25 @@ STRINGER := $(GOTOOLDIR)/stringer
95
91
VET := $(GOTOOLDIR ) /vet
96
92
GOX := $(GOBIN ) /gox
97
93
LINT := $(GOBIN ) /lint
98
-
99
- $(BENCHCMP ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/benchcmp
100
- $(CALLGRAPH ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/callgraph
101
- $(COVER ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/cover
102
- $(DIGRAPH ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/digraph
103
- $(EG ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/eg
104
- $(GODEX ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/godex
105
- $(GODOC ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/godoc
106
- $(GOIMPORTS ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/goimports
107
- $(GOMVPKG ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/gomvpkgs
108
- $(GOTYPE ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/gotype
109
- $(ORACLE ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/oracle
110
- $(SSADUMP ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/ssadump
111
- $(STRINGER ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/stringer
112
- $(VET ) : goenvcheck ; @go get -v golang.org/x/tools/cmd/vet
113
- $(LINT ) : goenvcheck ; @go get -v github.com/golang/lint/golint
114
- $(GOX ) : goenvcheck ; @go get -v github.com/mitchellh/gox
94
+ GODEP := $(GOBIN ) /godep
95
+
96
+ $(BENCHCMP ) : ; @go get -v golang.org/x/tools/cmd/benchcmp
97
+ $(CALLGRAPH ) : ; @go get -v golang.org/x/tools/cmd/callgraph
98
+ $(COVER ) : ; @go get -v golang.org/x/tools/cmd/cover
99
+ $(DIGRAPH ) : ; @go get -v golang.org/x/tools/cmd/digraph
100
+ $(EG ) : ; @go get -v golang.org/x/tools/cmd/eg
101
+ $(GODEX ) : ; @go get -v golang.org/x/tools/cmd/godex
102
+ $(GODOC ) : ; @go get -v golang.org/x/tools/cmd/godoc
103
+ $(GOIMPORTS ) : ; @go get -v golang.org/x/tools/cmd/goimports
104
+ $(GOMVPKG ) : ; @go get -v golang.org/x/tools/cmd/gomvpkgs
105
+ $(GOTYPE ) : ; @go get -v golang.org/x/tools/cmd/gotype
106
+ $(ORACLE ) : ; @go get -v golang.org/x/tools/cmd/oracle
107
+ $(SSADUMP ) : ; @go get -v golang.org/x/tools/cmd/ssadump
108
+ $(STRINGER ) : ; @go get -v golang.org/x/tools/cmd/stringer
109
+ $(VET ) : ; @go get -v golang.org/x/tools/cmd/vet
110
+ $(LINT ) : ; @go get -v github.com/golang/lint/golint
111
+ $(GOX ) : ; @go get -v github.com/mitchellh/gox
112
+ $(GODEP ) : ; @go get -v github.com/tools/godep
115
113
116
114
.PHONY : vet
117
115
vet : $(VET ) ; @for src in $(GOSOURCES ) ; do go tool vet $$src; done
@@ -120,19 +118,19 @@ vet: $(VET) ; @for src in $(GOSOURCES); do go tool vet $$src; done
120
118
lint : $(LINT ) ; @for src in $(GOSOURCES ) ; do golint $$src || exit 1; done
121
119
122
120
.PHONY : fmt
123
- fmt : goenvcheck ; @go fmt
121
+ fmt : @go fmt
124
122
125
123
.PHONY : test
126
- test : goenvcheck ; @go test -v ./...
124
+ test : @go test -v ./...
127
125
128
126
.PHONY : race
129
- race : goenvcheck ; @for pkg in $(GOPKGS ) ; do go test -v -race $$pkg || exit 1; done
127
+ race : @for pkg in $(GOPKGS ) ; do go test -v -race $$pkg || exit 1; done
130
128
131
129
.PHONY : deps
132
- deps : goenvcheck ; @go get -u -v -t ./...
130
+ deps : @go get -u -v -t ./...
133
131
134
132
.PHONY : cover
135
- cover : goenvcheck $(COVER )
133
+ cover : $(COVER )
136
134
@echo ' mode: set' > $(COVERAGEOUT )
137
135
@for pkg in $(GOPKGS ) ; do \
138
136
go test -v -coverprofile=$(COVERAGETMP ) $$ pkg || exit 1; \
@@ -141,6 +139,18 @@ cover: goenvcheck $(COVER)
141
139
done
142
140
@go tool cover -html=$(COVERAGEOUT )
143
141
142
+ # #########################################################################################
143
+ # # Godep support
144
+ # #########################################################################################
145
+
146
+ .PHONY : savegodeps
147
+ savegodeps : $(GODEP )
148
+ $(GODEP ) save ./...
149
+
150
+ .PHONY : restoregodeps
151
+ restoregodeps : $(GODEP )
152
+ $(GODEP ) restore
153
+
144
154
# #########################################################################################
145
155
# # Make utilities
146
156
# #########################################################################################
0 commit comments