BINARY_NAME := email-mcp
BUILD_DIR   := build
GOCACHE     ?= /tmp/$(BINARY_NAME)-gocache
VERSION     ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)

GOOS   ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)

ifeq ($(GOOS),windows)
	EXT := .exe
else
	EXT :=
endif

OUTPUT := $(BUILD_DIR)/$(BINARY_NAME)-$(GOOS)-$(GOARCH)$(EXT)

.PHONY: build test generate generate-check

build:
	@mkdir -p $(BUILD_DIR) $(GOCACHE)
	GOCACHE=$(GOCACHE) GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags "-X main.version=$(VERSION)" -o $(OUTPUT) ./cmd/email-mcp

test:
	@mkdir -p $(GOCACHE)
	GOCACHE=$(GOCACHE) go test ./...

generate:
	@mkdir -p $(GOCACHE)
	GOCACHE=$(GOCACHE) go run forge.lclr.dev/AI/mcp-framework/cmd/mcp-framework generate

generate-check:
	@mkdir -p $(GOCACHE)
	GOCACHE=$(GOCACHE) go run forge.lclr.dev/AI/mcp-framework/cmd/mcp-framework generate --check
