# Define variables
APP_NAME = gontrol
GO_CMD = go
GO_BUILD = $(GO_CMD) build
GO_INSTALL = $(GO_CMD) install
GO_CLEAN = $(GO_CMD) clean
BUILD_DIR = build
BINARY = $(BUILD_DIR)/$(APP_NAME)

.PHONY: all build help clean install

all: build

build: ## Build the application
	@echo "Building $(APP_NAME)..."
	$(GO_BUILD) -o $(BINARY)

install: build ## Install the application
	@echo "Installing $(APP_NAME)..."
	$(GO_INSTALL)

clean: ## Remove build artifacts
	@echo "Cleaning up build artifacts..."
	$(GO_CLEAN)
	rm -f $(BINARY)

help: ## Print the make targets
	@echo "Makefile for $(APP_NAME)"
	@echo "Targets:"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'