Add release build targets for hf
This commit is contained in:
35
Makefile
Normal file
35
Makefile
Normal file
@@ -0,0 +1,35 @@
|
||||
VERSION ?= dev
|
||||
BINARY := hf
|
||||
MAIN_PKG := ./cmd/hf
|
||||
LDFLAGS := -X git.hangman-lab.top/zhi/HarborForge.Cli/internal/commands.Version=$(VERSION)
|
||||
DIST_DIR := dist
|
||||
RELEASE_TARGETS := \
|
||||
linux/amd64 \
|
||||
linux/arm64 \
|
||||
darwin/amd64 \
|
||||
darwin/arm64 \
|
||||
windows/amd64
|
||||
|
||||
.PHONY: build clean release release-all
|
||||
|
||||
build:
|
||||
mkdir -p bin
|
||||
go build -ldflags "$(LDFLAGS)" -o ./bin/$(BINARY) $(MAIN_PKG)
|
||||
|
||||
clean:
|
||||
rm -rf ./bin/$(BINARY) ./$(DIST_DIR)
|
||||
|
||||
release: clean
|
||||
mkdir -p $(DIST_DIR)
|
||||
@set -e; \
|
||||
for target in $(RELEASE_TARGETS); do \
|
||||
os=$${target%/*}; \
|
||||
arch=$${target#*/}; \
|
||||
ext=""; \
|
||||
if [ "$$os" = "windows" ]; then ext=".exe"; fi; \
|
||||
out="$(DIST_DIR)/$(BINARY)_$(VERSION)_$${os}_$${arch}$${ext}"; \
|
||||
echo "==> Building $$out"; \
|
||||
GOOS=$$os GOARCH=$$arch go build -ldflags "$(LDFLAGS)" -o "$$out" $(MAIN_PKG); \
|
||||
done
|
||||
|
||||
release-all: release
|
||||
Reference in New Issue
Block a user