1
1
GO ?= $(shell which go)
2
- GIT_UPDATE_INDEX : = $(shell git update-index --refresh)
2
+ GIT_UPDATE_INDEX ? = $(shell git update-index --refresh)
3
3
GIT_REVISION ?= $(shell git rev-parse HEAD)
4
4
GIT_VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
5
5
@@ -15,17 +15,18 @@ GO_BUILD_TAGS := static
15
15
GO_BUILD_TARGET_DEPS :=
16
16
GO_BUILD_FLAGS := -trimpath
17
17
GO_BUILD_LDFLAGS_OPTIMS :=
18
+ GO_BUILD_DIR ?= dist
18
19
19
20
ifeq ($(GOOS ) /$(GOARCH ) ,$(GOENV_GOOS ) /$(GOENV_GOARCH ) )
20
- GO_BUILD_TARGET ?= dist /yage
21
- GO_BUILD_VERSION_TARGET ?= dist /yage-$(GIT_VERSION )
21
+ GO_BUILD_TARGET ?= $( GO_BUILD_DIR ) /yage
22
+ GO_BUILD_VERSION_TARGET ?= $( GO_BUILD_DIR ) /yage-$(GIT_VERSION )
22
23
else
23
24
ifeq ($(GOARCH ) ,arm)
24
- GO_BUILD_TARGET ?= dist /yage-$(GOOS ) -$(GOARCH ) v$(GOARM )
25
- GO_BUILD_VERSION_TARGET := dist /yage-$(GIT_VERSION ) -$(GOOS ) -$(GOARCH ) v$(GOARM )
25
+ GO_BUILD_TARGET ?= $( GO_BUILD_DIR ) /yage-$(GOOS ) -$(GOARCH ) v$(GOARM )
26
+ GO_BUILD_VERSION_TARGET := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -$(GOOS ) -$(GOARCH ) v$(GOARM )
26
27
else
27
- GO_BUILD_TARGET ?= dist /yage-$(GOOS ) -$(GOARCH )
28
- GO_BUILD_VERSION_TARGET := dist /yage-$(GIT_VERSION ) -$(GOOS ) -$(GOARCH )
28
+ GO_BUILD_TARGET ?= $( GO_BUILD_DIR ) /yage-$(GOOS ) -$(GOARCH )
29
+ GO_BUILD_VERSION_TARGET := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -$(GOOS ) -$(GOARCH )
29
30
endif # ($(GOARCH),arm)
30
31
endif # ($(GOOS)/$(GOARCH),$(GOENV_GOOS)/$(GOENV_GOARCH))
31
32
35
36
GO_BUILD_LDFLAGS_OPTIMS += -s -w
36
37
endif # $(DEBUG)
37
38
38
- GO_BUILD_FLAGS_TARGET : = .go-build-flags
39
+ GO_BUILD_FLAGS_TARGET ? = .go-build-flags
39
40
GO_CROSSBUILD_WINDOWS_PLATFORMS := windows/386 windows/amd64 windows/arm windows/arm64
40
41
GO_CROSSBUILD_PLATFORMS ?= linux/386 linux/amd64 linux/arm linux/arm64 linux/arm/v7 linux/arm/v6 \
41
42
linux/mips linux/mips/softfloat linux/mips64 linux/mips64le linux/mipsle \
@@ -62,19 +63,19 @@ GO_CROSSBUILD_RISCV64_PLATFORMS := $(filter %/riscv64,$(GO_CROSSBUILD_PLAT
62
63
GO_CROSSBUILD_S390X_PLATFORMS := $(filter % /s390x,$(GO_CROSSBUILD_PLATFORMS ) )
63
64
GO_CROSSBUILD_WINDOWS_PLATFORMS := $(filter windows/% ,$(GO_CROSSBUILD_WINDOWS_PLATFORMS ) )
64
65
65
- GO_CROSSBUILD_386_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-386
66
- GO_CROSSBUILD_AMD64_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-amd64
67
- GO_CROSSBUILD_ARM_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-arm
68
- GO_CROSSBUILD_ARM64_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-arm64
69
- GO_CROSSBUILD_ARMV6_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-armv6
70
- GO_CROSSBUILD_ARMV7_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-armv7
71
- GO_CROSSBUILD_MIPS_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-mips
72
- GO_CROSSBUILD_MIPSLE_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-mipsle
73
- GO_CROSSBUILD_MIPS64_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-mips64
74
- GO_CROSSBUILD_MIPS64LE_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-mips64le
75
- GO_CROSSBUILD_RISCV64_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-riscv64
76
- GO_CROSSBUILD_S390X_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -%-s390x
77
- GO_CROSSBUILD_WINDOWS_TARGET_PATTERN := dist /yage-$(GIT_VERSION ) -windows-%.exe
66
+ GO_CROSSBUILD_386_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-386
67
+ GO_CROSSBUILD_AMD64_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-amd64
68
+ GO_CROSSBUILD_ARM_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-arm
69
+ GO_CROSSBUILD_ARM64_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-arm64
70
+ GO_CROSSBUILD_ARMV6_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-armv6
71
+ GO_CROSSBUILD_ARMV7_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-armv7
72
+ GO_CROSSBUILD_MIPS_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-mips
73
+ GO_CROSSBUILD_MIPSLE_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-mipsle
74
+ GO_CROSSBUILD_MIPS64_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-mips64
75
+ GO_CROSSBUILD_MIPS64LE_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-mips64le
76
+ GO_CROSSBUILD_RISCV64_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-riscv64
77
+ GO_CROSSBUILD_S390X_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -%-s390x
78
+ GO_CROSSBUILD_WINDOWS_TARGET_PATTERN := $( GO_BUILD_DIR ) /yage-$(GIT_VERSION ) -windows-%.exe
78
79
79
80
GO_CROSSBUILD_TARGETS := $(patsubst % /386,$(GO_CROSSBUILD_386_TARGET_PATTERN ) ,$(GO_CROSSBUILD_386_PLATFORMS ) )
80
81
GO_CROSSBUILD_TARGETS += $(patsubst % /amd64,$(GO_CROSSBUILD_AMD64_TARGET_PATTERN ) ,$(GO_CROSSBUILD_AMD64_PLATFORMS ) )
@@ -203,9 +204,9 @@ $(GO_CROSSBUILD_RISCV64_TARGET_PATTERN): $(GO_BUILD_SRC) $(GO_BUILD_FLAGS_TARGET
203
204
$(GO_CROSSBUILD_S390X_TARGET_PATTERN ) : $(GO_BUILD_SRC ) $(GO_BUILD_FLAGS_TARGET )
204
205
CGO_ENABLED=0 GOOS=$* GOARCH=s390x $(GO ) build -tags $(GO_BUILD_TAGS ) ,crossbuild $(GO_BUILD_FLAGS ) $(GO_BUILD_LDFLAGS ) -o $@
205
206
206
- crossbuild-checksums : dist /checksums
207
+ crossbuild-checksums : $( GO_BUILD_DIR ) /checksums
207
208
208
- dist /checksums : $(GO_CROSSBUILD_TARGETS )
209
+ $( GO_BUILD_DIR ) /checksums : $(GO_CROSSBUILD_TARGETS )
209
210
cd dist && shasum -a 256 yage-* -* > checksums
210
211
211
212
# -- go mod --------------------------------------------------------------------
0 commit comments