|
|
@@ -3,26 +3,28 @@ IMAGE_NAME := mtg
|
|
3
|
3
|
APP_NAME := $(IMAGE_NAME)
|
|
4
|
4
|
|
|
5
|
5
|
CC_BINARIES := $(shell bash -c "echo -n $(APP_NAME)-{linux,freebsd,openbsd}-{386,amd64} $(APP_NAME)-linux-{arm,arm64}")
|
|
6
|
|
-APP_DEPS := version.go
|
|
7
|
6
|
|
|
8
|
|
-GOLANGCI_LINT_VERSION := v1.10.2
|
|
|
7
|
+GOLANGCI_LINT_VERSION := v1.11.2
|
|
9
|
8
|
|
|
10
|
|
-COMMON_BUILD_FLAGS := -ldflags="-s -w"
|
|
|
9
|
+VERSION_GO := $(shell go version)
|
|
|
10
|
+VERSION_DATE := $(shell date -Ru)
|
|
|
11
|
+VERSION_TAG := $(shell git describe --tags --always)
|
|
|
12
|
+COMMON_BUILD_FLAGS := -ldflags="-s -w -X 'main.version=$(VERSION_TAG) ($(VERSION_GO)) [$(VERSION_DATE)]'"
|
|
11
|
13
|
|
|
12
|
14
|
MOD_ON := env GO111MODULE=on
|
|
13
|
15
|
MOD_OFF := env GO111MODULE=auto
|
|
14
|
16
|
|
|
15
|
17
|
# -----------------------------------------------------------------------------
|
|
16
|
18
|
|
|
17
|
|
-$(APP_NAME): $(APP_DEPS)
|
|
|
19
|
+$(APP_NAME):
|
|
18
|
20
|
@$(MOD_ON) go build $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
|
|
19
|
21
|
|
|
20
|
|
-static-$(APP_NAME): $(APP_DEPS)
|
|
|
22
|
+static-$(APP_NAME):
|
|
21
|
23
|
@$(MOD_ON) env CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)"
|
|
22
|
24
|
|
|
23
|
25
|
$(APP_NAME)-%: GOOS=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f1 -d-)
|
|
24
|
26
|
$(APP_NAME)-%: GOARCH=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f2 -d-)
|
|
25
|
|
-$(APP_NAME)-%: $(APP_DEPS) ccbuilds
|
|
|
27
|
+$(APP_NAME)-%: ccbuilds
|
|
26
|
28
|
@$(MOD_ON) env "GOOS=$(GOOS)" "GOARCH=$(GOARCH)" \
|
|
27
|
29
|
go build \
|
|
28
|
30
|
$(COMMON_BUILD_FLAGS) \
|
|
|
@@ -31,9 +33,6 @@ $(APP_NAME)-%: $(APP_DEPS) ccbuilds
|
|
31
|
33
|
ccbuilds:
|
|
32
|
34
|
@rm -rf ./ccbuilds && mkdir -p ./ccbuilds
|
|
33
|
35
|
|
|
34
|
|
-version.go:
|
|
35
|
|
- @$(MOD_ON) go generate main.go
|
|
36
|
|
-
|
|
37
|
36
|
vendor: go.mod go.sum
|
|
38
|
37
|
@$(MOD_ON) go mod vendor
|
|
39
|
38
|
|
|
|
@@ -53,15 +52,15 @@ crosscompile-dir:
|
|
53
|
52
|
@rm -rf "$(CC_DIR)" && mkdir -p "$(CC_DIR)"
|
|
54
|
53
|
|
|
55
|
54
|
.PHONY: test
|
|
56
|
|
-test: vendor $(APP_DEPS)
|
|
|
55
|
+test: vendor
|
|
57
|
56
|
@$(MOD_ON) go test -v ./...
|
|
58
|
57
|
|
|
59
|
58
|
.PHONY: lint
|
|
60
|
|
-lint: vendor $(APP_DEPS)
|
|
|
59
|
+lint: vendor
|
|
61
|
60
|
@$(MOD_OFF) golangci-lint run
|
|
62
|
61
|
|
|
63
|
62
|
.PHONY: critic
|
|
64
|
|
-critic: vendor $(APP_DEPS)
|
|
|
63
|
+critic: vendor
|
|
65
|
64
|
@$(MOD_OFF) gocritic check-project "$(ROOT_DIR)"
|
|
66
|
65
|
|
|
67
|
66
|
.PHONY: clean
|