refactor the Makefile

add arm64 build for windows and ios
This commit is contained in:
Simon Vieille 2024-07-24 11:37:24 +02:00
commit 3c4cdf12a2
Signed by: deblan
GPG key ID: 579388D585F70417

105
Makefile
View file

@ -1,16 +1,21 @@
CGO_ENABLED = 0 CGO_ENABLED = 0
DIR = ./build DIR = ./build
GOARCH = amd64
GOARM = arm64 GO_ARCH_AMD = amd64
GOOSWIN = windows GO_ARCH_ARM = arm64
GOOSX = darwin
GOOSLINUX = linux GO_OS_WIN = windows
GO_OS_DARWIN = darwin
GO_OS_LINUX = linux
EXECUTABLE = expiration-check EXECUTABLE = expiration-check
WINBIN = $(DIR)/$(EXECUTABLE)-win-$(GOARCH).exe BIN_WIN_AMD64 = $(DIR)/$(EXECUTABLE)-windows-$(GO_ARCH_AMD).exe
OSXBIN = $(DIR)/$(EXECUTABLE)-darwin-$(GOARCH) BIN_WIN_ARM64 = $(DIR)/$(EXECUTABLE)-windows-$(GO_ARCH_ARM).exe
LINUXBIN = $(DIR)/$(EXECUTABLE)-linux-$(GOARCH) BIN_DARWIN_AMD64 = $(DIR)/$(EXECUTABLE)-darwin-$(GO_ARCH_AMD)
ARMBIN = $(DIR)/$(EXECUTABLE)-linux-$(GOARM) BIN_DARWIN_ARM64 = $(DIR)/$(EXECUTABLE)-darwin-$(GO_ARCH_ARM)
BIN_LINUX_AMD64 = $(DIR)/$(EXECUTABLE)-linux-$(GO_ARCH_AMD)
BIN_LINUX_ARM64 = $(DIR)/$(EXECUTABLE)-linux-$(GO_ARCH_ARM)
CC = go build CC = go build
CFLAGS = -trimpath CFLAGS = -trimpath
@ -19,38 +24,74 @@ GCFLAGS = all=
ASMFLAGS = all= ASMFLAGS = all=
.PHONY: all .PHONY: all
all: darwin linux win64 arm all: linux windows darwin
.PHONY: linux .PHONY: linux
linux: $(LINUXBIN) linux: $(BIN_LINUX_AMD64) $(BIN_LINUX_ARM64)
chmod +x $(LINUXBIN) chmod +x $(BIN_LINUX_ARM64)
chmod +x $(BIN_LINUX_AMD64)
.PHONY: arm
arm: $(ARMBIN)
chmod +x $(ARMBIN)
.PHONY: darwin .PHONY: darwin
darwin: $(OSXBIN) darwin: $(BIN_DARWIN_AMD64) $(BIN_DARWIN_ARM64)
chmod +x $(OSXBIN) chmod +x $(BIN_DARWIN_AMD64)
chmod +x $(BIN_DARWIN_ARM64)
.PHONY: win64 .PHONY: windows
win64: $(WINBIN) windows: $(BIN_WIN_AMD64) $(BIN_WIN_ARM64)
.PHONY: $(OSXBIN) .PHONY: $(BIN_LINUX_AMD64)
$(OSXBIN): $(BIN_LINUX_AMD64):
GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(OSXBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_AMD) \
GOOS=$(GO_OS_LINUX) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_LINUX_AMD64) .
.PHONY: $(ARMBIN) .PHONY: $(BIN_LINUX_ARM64)
$(ARMBIN): $(BIN_LINUX_ARM64):
GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSLINUX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(ARMBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_ARM) \
GOOS=$(GO_OS_LINUX) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_LINUX_ARM64) .
.PHONY: $(LINUXBIN) .PHONY: $(BIN_WIN_AMD64)
$(LINUXBIN): $(BIN_WIN_AMD64):
GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSLINUX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(LINUXBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_AMD) \
GOOS=$(GO_OS_WIN) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_WIN_AMD64) .
.PHONY: $(WINBIN) .PHONY: $(BIN_WIN_ARM64)
$(WINBIN): $(BIN_WIN_ARM64):
GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSWIN) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(WINBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_ARM) \
GOOS=$(GO_OS_WIN) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_WIN_ARM64) .
.PHONY: $(BIN_DARWIN_AMD64)
$(BIN_DARWIN_AMD64):
GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_AMD) \
GOOS=$(GO_OS_DARWIN) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_DARWIN_AMD64) .
.PHONY: $(BIN_DARWIN_ARM64)
$(BIN_DARWIN_ARM64):
GO111MODULE=$(GOMOD) \
GOARCH=$(GO_ARCH_ARM) \
GOOS=$(GO_OS_DARWIN) \
CGO_ENABLED=$(CGO_ENABLED) \
$(CC) $(CFLAGS) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" \
-o $(BIN_DARWIN_ARM64) .
.PHONY: clean .PHONY: clean
clean: clean: