forked from vmware-archive/virtual-security-module
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
92 lines (74 loc) · 1.99 KB
/
Makefile
File metadata and controls
92 lines (74 loc) · 1.99 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
ARCH := amd64 386
OS := linux darwin windows
SERVER_TARGET := vsmd
CLI_TARGET := vsm-cli
DOCKER_IMAGE_NAME := vsm
PROJECT_DIR := $(shell pwd)
GOPATH := $(abspath $(PROJECT_DIR)/../../../../)
GO_VERSION := "1.8"
PKG_DIR := $(PROJECT_DIR)/pkg
BIN_DIR := $(PROJECT_DIR)/bin
DIST_DIR := $(PROJECT_DIR)/dist
DOC_DIR := $(PROJECT_DIR)/doc
DOC := $(DOC_DIR)/swagger.json
GO_ENV := GOPATH=$(GOPATH)
GO_LINT := PATH=${PATH}:$(GOPATH)/bin golint
GO := $(GO_ENV) go
ifeq ($(CI),1)
is_ci = true
else
is_ci = false
endif
.PHONY: doc
default: build
install-deps:
$(GO) get -u github.com/satori/go.uuid
$(GO) get -u github.com/naoina/denco
$(GO) get -u gopkg.in/yaml.v2
$(GO) get -u github.com/dgrijalva/jwt-go
$(GO) get -u github.com/spf13/cobra/cobra
$(GO) get -u gopkg.in/mgo.v2
$(GO) get -u github.com/gocql/gocql
$(GO) get -u github.com/boltdb/bolt/...
$(GO) get -u github.com/golang/lint/golint
build: fmt vet
$(GO) build ./...
$(GO) build -o $(DIST_DIR)/$(SERVER_TARGET) ./server/main
$(GO) build -o $(DIST_DIR)/$(CLI_TARGET) ./cli/main
vet:
$(GO) vet ./...
lint:
if [ $$($(GO_LINT) ./... | wc -l) != 0 ]; then \
if $(is_ci); then \
echo "FATAL: you should run 'make lint' on your local system"; \
exit 1; \
fi; \
fi
fmt:
if [ $$($(GO) fmt ./... | wc -l) != 0 ]; then \
if $(is_ci); then \
echo "FATAL: you should run 'make fmt' on your local system"; \
exit 1; \
fi; \
fi
cross: fmt vet
for os in $(OS); do \
for arch in $(ARCH); do \
suffix=""; \
[ "$${os}" = "windows" ] && suffix=.exe; \
GOOS=$${os} GOARCH=$${arch} $(GO) build -o "$(DIST_DIR)/$(SERVER_TARGET)_$${os}_$${arch}$${suffix}" ./server/main; \
done; \
done
clean-docker:
docker rmi $(DOCKER_IMAGE_NAME) || :
build-docker: clean-docker cross
docker build -t $(DOCKER_IMAGE_NAME) .
test:
$(GO) test ./...
doc:
swagger generate spec -o $(DOC) -b ./server/main
doc-serve:
swagger serve --no-open $(DOC)
clean:
$(GO) clean .
rm -rf $(DIST_DIR) $(BIN_DIR) $(PKG_DIR)