# Makefile for marquez-cli BINARY_NAME=marquez-cli INSTALL_PATH=$(HOME)/.local/bin GO=go GOFLAGS=-ldflags="-s -w" .PHONY: all build install clean test help all: build ## build: Build the binary build: @echo "Building $(BINARY_NAME)..." @$(GO) build $(GOFLAGS) -o $(BINARY_NAME) . @echo "✓ Binary built: ./$(BINARY_NAME)" ## install: Build and install to ~/.local/bin install: build @echo "Installing $(BINARY_NAME) to $(INSTALL_PATH)..." @mkdir -p $(INSTALL_PATH) @cp $(BINARY_NAME) $(INSTALL_PATH)/ @chmod +x $(INSTALL_PATH)/$(BINARY_NAME) @echo "✓ Installed to $(INSTALL_PATH)/$(BINARY_NAME)" @echo "" @echo "Make sure $(INSTALL_PATH) is in your PATH:" @echo " export PATH=\"\$$PATH:$(INSTALL_PATH)\"" ## clean: Remove built binaries clean: @echo "Cleaning..." @rm -f $(BINARY_NAME) @echo "✓ Cleaned" ## test: Run tests test: @echo "Running tests..." @$(GO) test -v ./... ## uninstall: Remove installed binary uninstall: @echo "Uninstalling $(BINARY_NAME)..." @rm -f $(INSTALL_PATH)/$(BINARY_NAME) @echo "✓ Uninstalled" ## help: Show this help help: @echo "Available targets:" @sed -n 's/^##//p' Makefile | column -t -s ':' | sed -e 's/^/ /'