# Makefile for KNEL-AIMiddleware # Common operations for building, managing, and deploying MCP/LSP services .PHONY: help build-all clean-vendor clone-vendors status test # Default target help: ## Show this help message @echo 'Usage: make [target]' @echo '' @echo 'Available targets:' @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) clone-vendors: ## Clone all vendor MCP/LSP repositories @echo "Cloning all vendor repositories..." @./CloneVendorRepos.sh build-all: ## Build all MCP/LSP services @echo "Building all services..." @./BuildAll.sh clean-vendor: ## Remove all cloned vendor repositories @echo "Cleaning vendor directory..." @./CleanVendor.sh status: ## Check build status of all services @echo "Checking service status..." @./StatusCheck.sh test: ## Run tests for all services (if available) @echo "Running tests..." @docker compose config --quiet && echo "✓ docker-compose.yml is valid" logs: ## Show logs from all running services @docker compose logs -f ps: ## Show status of all services @docker compose ps up: ## Start all services in dev profile @echo "Starting all services..." @docker compose up -d --profile dev down: ## Stop all services @echo "Stopping all services..." @docker compose down rebuild: SERVICE? ## Rebuild a specific service (usage: make rebuild SERVICE=service-name) @echo "Rebuilding $(SERVICE)..." @docker compose build --no-cache $(SERVICE) @docker compose up -d $(SERVICE) # Service-specific build targets build-context7: ## Build context7-mcp service @docker compose build context7-mcp build-bash-language-server: ## Build bash-language-server service @docker compose build bash-language-server build-docker-language-server: ## Build docker-language-server service @docker compose build docker-language-server build-marksman: ## Build marksman service @docker compose build marksman