diff --git a/Makefile.cross-compiles b/Makefile.cross-compiles index ebcb9c5f..e0285a30 100644 --- a/Makefile.cross-compiles +++ b/Makefile.cross-compiles @@ -2,13 +2,21 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on LDFLAGS := -s -w +GO=go +GO_MAJOR_VERSION = $(shell $(GO) version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1) +GO_MINOR_VERSION = $(shell $(GO) version | awk '{print $$3}' | sed -r 's|^go([0-9.]+).*$$|\1|' | awk -F. '{print $$2}') +MINIMUM_SUPPORTED_GO_MAJOR_VERSION = 1 +MINIMUM_SUPPORTED_GO_MINOR_VERSION = 15 + all: build build: app app: - env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frpc_darwin_arm64 ./cmd/frpc - env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frps_darwin_arm64 ./cmd/frps + if [ $(GO_MINOR_VERSION) -gt $(MINIMUM_SUPPORTED_GO_MINOR_VERSION) ]; then \ + env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frpc_darwin_arm64 ./cmd/frpc + env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frps_darwin_arm64 ./cmd/frps + fi env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frpc_darwin_amd64 ./cmd/frpc env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frps_darwin_amd64 ./cmd/frps env CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -trimpath -ldflags "$(LDFLAGS)" -o ./release/frpc_freebsd_386 ./cmd/frpc