CGO_ENABLED = 0 DIR = ./build GO_ARCH_AMD = amd64 GO_ARCH_ARM = arm64 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) MAN_OUTPUT = $(DIR)/expiration-check.1 CC = go build CFLAGS = -trimpath LDFLAGS = all=-w -s GCFLAGS = all= ASMFLAGS = all= .PHONY: all all: linux windows darwin man .PHONY: linux linux: $(BIN_LINUX_AMD64) $(BIN_LINUX_ARM64) chmod +x $(BIN_LINUX_ARM64) chmod +x $(BIN_LINUX_AMD64) .PHONY: darwin darwin: $(BIN_DARWIN_AMD64) $(BIN_DARWIN_ARM64) chmod +x $(BIN_DARWIN_AMD64) chmod +x $(BIN_DARWIN_ARM64) .PHONY: windows windows: $(BIN_WIN_AMD64) $(BIN_WIN_ARM64) .PHONY: man man: $(BIN_LINUX_AMD64) $(MAN_OUTPUT) .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) cmd/main.go .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) cmd/main.go .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) cmd/main.go .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) cmd/main.go .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) cmd/main.go .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) cmd/main.go .PHONY: $(MAN_OUTPUT) $(MAN_OUTPUT): ./bin/create-manpage.sh .PHONY: clean clean: rm -rf $(DIR)/* tool-gofumpt: which golangci-lint > /dev/null 2>&1 || go install mvdan.cc/gofumpt@latest fmt: tool-gofumpt gofumpt -w --extra .