.PHONY: build test vet lint proto proto-lint clean all

LDFLAGS := -trimpath -ldflags="-s -w -X main.version=$(shell git describe --tags --always --dirty)"

mcp:
	CGO_ENABLED=0 go build $(LDFLAGS) -o mcp ./cmd/mcp

mcp-agent:
	CGO_ENABLED=0 go build $(LDFLAGS) -o mcp-agent ./cmd/mcp-agent

mcp-master:
	CGO_ENABLED=0 go build $(LDFLAGS) -o mcp-master ./cmd/mcp-master

build:
	go build ./...

test:
	go test ./...

vet:
	go vet ./...

lint:
	golangci-lint run ./...

proto:
	protoc --go_out=. --go_opt=module=git.wntrmute.dev/mc/mcp \
		--go-grpc_out=. --go-grpc_opt=module=git.wntrmute.dev/mc/mcp \
		proto/mcp/v1/*.proto

proto-lint:
	buf lint
	buf breaking --against '.git#branch=master,subdir=proto'

docker-master:
	podman build -f Dockerfile.master \
		--build-arg VERSION=$(shell git describe --tags --always --dirty) \
		-t mcr.svc.mcp.metacircular.net:8443/mcp-master:$(shell git describe --tags --always --dirty) .

clean:
	rm -f mcp mcp-agent mcp-master

all: vet lint test mcp mcp-agent mcp-master
