# =============================================================================
# 统一 Go 后端 · 构建入口（ADR-011 单二进制 / ADR-015 部署形态）
#
# 产物位置约定（2026-11-06 用户拍板）：
#   · API 生成物固定输出到  bin/api/ 目录
#   · Windows 下固定命名    go-backend.exe（非 Windows 为 go-backend）
#   · bin/ 整目录已被 .gitignore 忽略（不入库）
#
# 常用目标：
#   make build   编译 cmd/api → bin/api/go-backend(.exe)
#   make clean   清除 bin/ 构建产物
#   make test    跑全量单测（域模块就绪后启用）
#   make vet     静态检查
# =============================================================================

# 产物后缀按当前 Go 目标平台判定（windows → .exe，其余无后缀）
GOOS ?= $(shell go env GOOS)
ifeq ($(GOOS),windows)
BINEXT := .exe
else
BINEXT :=
endif

BIN_DIR := bin/api
BIN     := $(BIN_DIR)/go-backend$(BINEXT)

.PHONY: build
build:
	@mkdir -p $(BIN_DIR)
	@go build -o $(BIN) ./cmd/api
	@echo "build ok -> $(BIN)"

.PHONY: clean
clean:
	@rm -rf bin

.PHONY: test
test:
	go test ./...

.PHONY: vet
vet:
	go vet ./...
