forked from m3db/m3db-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (53 loc) · 1.79 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
PROJECT_NAME := m3db-operator
REPO_PATH := github.com/m3db/m3db-operator
BUILD_PATH := $(REPO_PATH)/cmd/$(PROJECT_NAME)
OUTPUT_DIR := _output
BUILD_SETTINGS := GOOS=linux GOARCH=amd64 CGO_ENABLED=0
ifeq ($(shell uname), Darwin)
BUILD_SETTINGS := GOOS=darwin GOARCH=amd64 CGO_ENABLED=0
endif
ifeq ($(LINUX_BUILD), 1)
BUILD_SETTINGS := GOOS=linux GOARCH=amd64 CGO_ENABLED=0
endif
.PHONY: all
all: clean build-docker
.PHONY: help
help:
@echo
@echo "\033[92m Usage:"
@printf " \033[36m%-15s\033[93m %s" "make" "<target>"
@echo
@echo
@echo "\033[92m Targets: "
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[93m %s\n", $$1, $$2}'
@printf "\033[0m"
.PHONY: clean
clean:
go clean
rm -f build/output/bin/m3db-operator
_output:
mkdir -p $$(pwd)/$(OUTPUT_DIR)
.PHONY: test
test: $(wildcard **/*.go) _output
go test -coverprofile=.tmp/c.out ./...
go tool cover -func=.tmp/c.out
.PHONY: dep-install
dep-install: ## Ensure dep is installed
@which dep > /dev/null || (go get -u https://github.com/golang/dep && \
cd $(GOPATH)/src/github.com/golang/dep && \
git checkout v0.5.0 && \
go install && git checkout master)
.PHONY: dep-ensure
dep-ensure: dep-install ## Run dep ensure to generate vendor directory
dep ensure
.PHONY: code-gen
code-gen: dep-ensure ## Generate boilerplate code for kubernetes packages
@./hack/update-generated.sh
.PHONY: build-bin
build-bin: _output ## Build m3db-operator binary
which go > /dev/null || (echo "error: golang needs to be installed" && exit 1)
echo "building $(PROJECT_NAME)..."
$(BUILD_SETTINGS) go build -o $(OUTPUT_DIR)/$(PROJECT_NAME) $(BUILD_PATH)
.PHONY: build-docker
build-docker: build-bin## Build m3db-operator docker image with go binary
@./build/build_docker.sh