forked from mayflower/docker-ls
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
77 lines (59 loc) · 1.81 KB
/
Copy pathMakefile
File metadata and controls
77 lines (59 loc) · 1.81 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
74
75
76
77
GO ?= go
GO_BUILDFLAGS = -v
GO_TESTFLAGS = -cover -v
GO_BUILDDIR = ./build
GO_SRCDIRS = cli lib
GO_PACKAGE_PREFIX = github.com/mayflower/docker-ls
GO_PACKAGES = \
cli/docker-ls \
cli/docker-ls/response \
cli/docker-rm \
cli/util \
lib \
lib/auth \
lib/connector
GO_DEPENDENCIES = gopkg.in/yaml.v2 golang.org/x/crypto/ssh/terminal
GO_DEBUG_MAIN = github.com/mayflower/docker-ls/cli/docker-ls
GO_DEBUG_BINARY = ./docker-ls.debug
GIT = git
GIT_COMMITFLAGS = -a
GARBAGE = $(GO_BUILDDIR) $(GO_DEBUG_BINARY)
packages = $(GO_PACKAGES:%=$(GO_PACKAGE_PREFIX)/$(GO_SRCDIR)/%)
execute_go = GOPATH=`pwd`/$(GO_BUILDDIR) $(GO) $(1) $(2) $(packages)
all: install
install: $(GO_BUILDDIR)
$(call execute_go,generate)
$(call execute_go,install,$(GO_BUILDFLAGS))
fmt: $(GO_BUILDDIR)
$(call execute_go,fmt)
goclean: $(GO_BUILDDIR)
$(call execute_go,clean)
test: $(GO_BUILDDIR)
$(call execute_go,test,$(GO_TESTFLAGS))
vet: $(GO_BUILDDIR)
$(call execute_go,vet)
commit: fmt
$(GIT) commit $(GIT_COMMITFLAGS)
godebug:
GOPATH="`pwd`/$(GO_BUILDDIR):$$GOPATH" \
godebug build \
-instrument `for i in $(packages); do echo -n $$i,; done` \
-o $(GO_DEBUG_BINARY) $(GO_DEBUG_MAIN)
godebug_run: godebug
$(GO_DEBUG_BINARY)
godebug_test:
@if test -z "$(PKG)"; then echo you need to set PKG to the package to test; exit 1; fi
GOPATH="`pwd`/$(GO_BUILDDIR):$$GOPATH" \
godebug test \
-instrument `for i in $(packages); do echo -n $$i,; done` \
$(GO_PACKAGE_PREFIX)/$(PKG)
$(GO_BUILDDIR):
mkdir -p ./$(GO_BUILDDIR)/src/$(GO_PACKAGE_PREFIX)
for srcdir in $(GO_SRCDIRS); \
do \
ln -s `pwd`/$$srcdir ./$(GO_BUILDDIR)/src/$(GO_PACKAGE_PREFIX)/$$srcdir; \
done
if test -n "$(GO_DEPENDENCIES)"; then GOPATH=`pwd`/$(GO_BUILDDIR) $(GO) get $(GO_DEPENDENCIES); fi
clean:
-rm -fr $(GARBAGE)
.PHONY: clean all install fmt goclean test