BIN := hotpcalc PKG := ./cmd/hotpcalc VERSION ?= 1.1.0 LDFLAGS := -s -w -X main.version=$(VERSION) DIST := dist PLATFORMS := linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 .PHONY: all build test vet fmt dist clean all: test build build: go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN) $(PKG) test: go test ./... vet: go vet ./... fmt: gofmt -l -w . ## dist — статические бинарники под Linux, macOS и Windows (amd64 + arm64) dist: clean @mkdir -p $(DIST) @for p in $(PLATFORMS); do \ os=$${p%/*}; arch=$${p#*/}; ext=""; \ [ "$$os" = "windows" ] && ext=".exe"; \ echo " сборка $$os/$$arch"; \ CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch \ go build -trimpath -ldflags "$(LDFLAGS)" -o $(DIST)/$(BIN)-$$os-$$arch$$ext $(PKG) || exit 1; \ done @cd $(DIST) && shasum -a 256 * > SHA256SUMS 2>/dev/null || true @ls -l $(DIST) clean: @rm -rf $(DIST) $(BIN)