-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
119 lines (96 loc) · 2.73 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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Copyright (c) 2018 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# We want to use bash
SHELL:=/bin/bash
WORKER_COUNT ?= 1
# Set a default forwarding plane
FORWARDING_PLANE ?= vpp
# Set a default network service for Example clients
NETWORK_SERVICE ?= icmp-responder
# Default target, no other targets should be before default
.PHONY: default
default: all
# Code formatting
include .mk/formatting.mk
# Static code analysis
include .mk/code_analysis.mk
# Pull in k8s targets
include .mk/k8s.mk
include .mk/skydive.mk
include .mk/jaeger.mk
include .mk/monitor.mk
include .mk/integration.mk
include .mk/helm.mk
include .mk/spire.mk
include .mk/build.mk
GOPATH?=$(shell go env GOPATH 2>/dev/null)
GOCMD=go
GOGET=${GOCMD} get
GOGENERATE=${GOCMD} generate
GOINSTALL=${GOCMD} install
GOTEST=${GOCMD} test
GOVET=${GOCMD} vet --all
# Export some of the above variables so they persist for the shell scripts
# which are run from the Makefiles
export GOPATH \
GOCMD \
GOGET \
GOGENERATE \
GOINSTALL \
GOTEST \
GOVET
# Setup proxies for docker build
ifeq ($(HTTP_PROXY),)
HTTPBUILD=
else
HTTPBUILD=--build-arg HTTP_PROXY=$(HTTP_PROXY)
endif
ifeq ($(HTTPS_PROXY),)
HTTPSBUILD=
else
HTTPSBUILD=--build-arg HTTPS_PROXY=$(HTTPS_PROXY)
endif
DOCKERBUILD=docker build ${HTTPBUILD} ${HTTPSBUILD}
.PHONY: all check verify # docker-build docker-push
all: check verify docker-build
check:
@shellcheck `find . -name "*.sh" -not -path "*vendor/*"`
.PHONY: format deps generate install test test-race vet
#
# The following targets are meant to be run when working with the code locally.
#
deps:
@${GOGET} -u github.com/golang/protobuf/protoc-gen-go
generate:
@./scripts/for-each-module.sh ${GOGENERATE} ./...
install:
@${GOINSTALL} ./...
test:
@${GOTEST} ./... -cover
test-race:
@${GOTEST} -race ./... -cover
vet:
@./scripts/for-each-module.sh ${GOVET} ./...
# Get dependency manager tool
get-dep:
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep version
# Check state of dependencies
dep-check: get-dep
@echo "=> checking dependencies"
dep check
# Test target to debug proxy issues
checkproxy:
echo "HTTPBUILD=${HTTPBUILD} HTTPSBUILD=${HTTPSBUILD}"
echo "DOCKERBUILD=${DOCKERBUILD}"