# ttychart-mcp 构建文件
#
# 使用方法:
#   make build      - 构建二进制
#   make test       - 运行测试
#   make docker    - 构建 Docker 镜像
#   make run       - 运行服务
#   make clean     - 清理构建产物
#
# 作者: titor
# 创建日期: 2026-04-15

# 项目名称
BINARY_NAME = ttychart-mcp

# Go 编译参数
GO = go
GO_BUILD = CGO_ENABLED=0 $(GO) build
GO_TEST = $(GO) test
GO_MOD = $(GO) mod

# Docker 参数
DOCKER = docker
DOCKER_BUILD = $(DOCKER) build
DOCKER_RUN = $(DOCKER) run
IMAGE_NAME = ttychart-mcp

# 默认目标
.PHONY: all
all: build

# 构建二进制
.PHONY: build
build:
	$(GO_BUILD) -o $(BINARY_NAME) .

# 运行测试
.PHONY: test
test:
	$(GO_TEST) -v ./...

# 下载依赖
.PHONY: deps
deps:
	$(GO_MOD) tidy

# 构建 Docker 镜像
.PHONY: docker
docker:
	$(DOCKER_BUILD) -t $(IMAGE_NAME) .

# 运行 Docker 容器
.PHONY: docker-run
docker-run:
	$(DOCKER_RUN) --rm -p 3100:3100 $(IMAGE_NAME)

# 使用 stdio 模式运行
.PHONY: run-stdio
run-stdio:
	./$(BINARY_NAME) --stdio

# 使用 HTTP 模式运行
.PHONY: run-http
run-http:
	./$(BINARY_NAME) --port 3100

# 清理构建产物
.PHONY: clean
clean:
	rm -f $(BINARY_NAME)
	$(GO) clean

# 安装到系统
.PHONY: install
install: build
	cp $(BINARY_NAME) /usr/local/bin/