36 lines
		
	
	
		
			964 B
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			964 B
		
	
	
	
		
			Makefile
		
	
	
	
# Define variables
 | 
						|
APP_NAME = gommand
 | 
						|
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)
 | 
						|
	$(GO_BUILD) -ldflags "-w" -o $(BINARY)
 | 
						|
 | 
						|
build-static: ## Build a static application
 | 
						|
	@echo "Building static $(APP_NAME)..."
 | 
						|
	$(GO_BUILD) --ldflags '-linkmode=external -extldflags=-static -w' -o $(BINARY)-static
 | 
						|
 | 
						|
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}'
 |