Files
HarborForge.Cli/Makefile
2026-03-21 20:32:28 +00:00

36 lines
836 B
Makefile

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