1
1
MODULE = $(shell env GO111MODULE=on $(GO ) list -m)
2
2
DATE ?= $(shell date +% FT% T% z)
3
- VERSION ?= $(shell git describe --tags --always --dirty --match="v * " 2> /dev/null || \
3
+ VERSION ?= $(shell git describe --tags --always --dirty --match="* " 2> /dev/null || \
4
4
cat $(CURDIR ) /.version 2> /dev/null || echo v0)
5
+ COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null)
6
+ BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
5
7
PKGS = $(or $(PKG ) ,$(shell env GO111MODULE=on $(GO ) list ./...) )
6
8
TESTPKGS = $(shell env GO111MODULE=on $(GO ) list -f \
7
9
'{{ if or .TestGoFiles .XTestGoFiles }}{{ .ImportPath }}{{ end }}' \
8
10
$(PKGS ) )
9
11
BIN = $(CURDIR ) /.bin
10
- LDFLAGS_VERSION = -X main.Version=$(VERSION ) -X main.BuildDate=$(DATE ) -X main.GitCommit=$(COMMIT ) -X main.GitBranch=$(BRANCH )
11
12
LINT_CONFIG = $(CURDIR ) /.golangci.yaml
12
13
PLATFORMS = darwin linux
13
14
ARCHITECTURES = amd64 arm64
14
15
TARGETOS ?= $(GOOS )
15
16
TARGETARCH ?= $(GOARCH )
17
+ LDFLAGS_VERSION = -X main.Version=$(VERSION ) -X main.BuildDate=$(DATE ) -X main.GitCommit=$(COMMIT ) -X main.GitBranch=$(BRANCH )
16
18
17
19
DOCKER = docker
18
20
GO = go
@@ -29,7 +31,7 @@ export GOPROXY=https://proxy.golang.org
29
31
all : fmt lint test ; $(info $(M ) building executable…) @ # # Build program binary
30
32
$Q env GOOS=$(TARGETOS ) GOARCH=$(TARGETARCH ) $(GO ) build \
31
33
-tags release \
32
- -ldflags " $( LDFLAGS_VERSION) " \
34
+ -ldflags " $( LDFLAGS_VERSION) -X main.Platform= $( TARGETOS ) / $( TARGETARCH ) " \
33
35
-o $(BIN ) /$(basename $(MODULE ) ) main.go
34
36
35
37
# Release for multiple platforms
@@ -42,7 +44,7 @@ platfrom-build: clean lint test ; $(info $(M) building binaries for multiple os/
42
44
GOPROXY=$(GOPROXY ) CGO_ENABLED=$(CGO_ENABLED ) GOOS=$(GOOS ) GOARCH=$(GOARCH ) \
43
45
$(GO ) build \
44
46
-tags release \
45
- -ldflags " $( LDFLAGS_VERSION) " \
47
+ -ldflags " $( LDFLAGS_VERSION) -X main.Platform= $( GOOS ) / $( GOARCH ) " \
46
48
-o $(BIN ) /$(basename $(MODULE ) ) -$(GOOS ) -$(GOARCH ) main.go || true)))
47
49
48
50
# Tools
0 commit comments