From 3c4cdf12a25a336e226558d7de97f920c8133bfd Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Wed, 24 Jul 2024 11:37:24 +0200 Subject: [PATCH] refactor the Makefile add arm64 build for windows and ios --- Makefile | 119 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 80 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 531145e..9d7e66d 100644 --- a/Makefile +++ b/Makefile @@ -1,56 +1,97 @@ CGO_ENABLED = 0 -DIR = ./build -GOARCH = amd64 -GOARM = arm64 -GOOSWIN = windows -GOOSX = darwin -GOOSLINUX = linux -EXECUTABLE = expiration-check +DIR = ./build -WINBIN = $(DIR)/$(EXECUTABLE)-win-$(GOARCH).exe -OSXBIN = $(DIR)/$(EXECUTABLE)-darwin-$(GOARCH) -LINUXBIN = $(DIR)/$(EXECUTABLE)-linux-$(GOARCH) -ARMBIN = $(DIR)/$(EXECUTABLE)-linux-$(GOARM) +GO_ARCH_AMD = amd64 +GO_ARCH_ARM = arm64 -CC = go build -CFLAGS = -trimpath -LDFLAGS = all=-w -s -GCFLAGS = all= -ASMFLAGS = all= +GO_OS_WIN = windows +GO_OS_DARWIN = darwin +GO_OS_LINUX = linux + +EXECUTABLE = expiration-check + +BIN_WIN_AMD64 = $(DIR)/$(EXECUTABLE)-windows-$(GO_ARCH_AMD).exe +BIN_WIN_ARM64 = $(DIR)/$(EXECUTABLE)-windows-$(GO_ARCH_ARM).exe +BIN_DARWIN_AMD64 = $(DIR)/$(EXECUTABLE)-darwin-$(GO_ARCH_AMD) +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 +CFLAGS = -trimpath +LDFLAGS = all=-w -s +GCFLAGS = all= +ASMFLAGS = all= .PHONY: all -all: darwin linux win64 arm +all: linux windows darwin .PHONY: linux -linux: $(LINUXBIN) - chmod +x $(LINUXBIN) - -.PHONY: arm -arm: $(ARMBIN) - chmod +x $(ARMBIN) +linux: $(BIN_LINUX_AMD64) $(BIN_LINUX_ARM64) + chmod +x $(BIN_LINUX_ARM64) + chmod +x $(BIN_LINUX_AMD64) .PHONY: darwin -darwin: $(OSXBIN) - chmod +x $(OSXBIN) +darwin: $(BIN_DARWIN_AMD64) $(BIN_DARWIN_ARM64) + chmod +x $(BIN_DARWIN_AMD64) + chmod +x $(BIN_DARWIN_ARM64) -.PHONY: win64 -win64: $(WINBIN) +.PHONY: windows +windows: $(BIN_WIN_AMD64) $(BIN_WIN_ARM64) -.PHONY: $(OSXBIN) -$(OSXBIN): - GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(OSXBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . +.PHONY: $(BIN_LINUX_AMD64) +$(BIN_LINUX_AMD64): + 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) -$(ARMBIN): - GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSLINUX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(ARMBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . +.PHONY: $(BIN_LINUX_ARM64) +$(BIN_LINUX_ARM64): + 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) -$(LINUXBIN): - GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSLINUX) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(LINUXBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . +.PHONY: $(BIN_WIN_AMD64) +$(BIN_WIN_AMD64): + 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) -$(WINBIN): - GO111MODULE=$(GOMOD) GOARCH=$(GOARCH) GOOS=$(GOOSWIN) CGO_ENABLED=$(CGO_ENABLED) $(CC) $(CFLAGS) -o $(WINBIN) -ldflags="$(LDFLAGS)" -gcflags="$(GCFLAGS)" -asmflags="$(ASMFLAGS)" . +.PHONY: $(BIN_WIN_ARM64) +$(BIN_WIN_ARM64): + 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 clean: