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)
