add autogeneration of help target for Makefile
Will aggregate targets and comments behind the target, sort them by target alphabetically and print the output. Removes requirement to update help target everytime something changes. targets without comment will not appear in help output.
This commit is contained in:
parent
5335bf27fd
commit
fdc6c4aac6
18
Makefile
18
Makefile
|
@ -7,27 +7,25 @@ GO_CLEAN = $(GO_CMD) clean
|
||||||
BUILD_DIR = build
|
BUILD_DIR = build
|
||||||
BINARY = $(BUILD_DIR)/$(APP_NAME)
|
BINARY = $(BUILD_DIR)/$(APP_NAME)
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: all build help clean install
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
build:
|
build: ## Build the application
|
||||||
@echo "Building $(APP_NAME)..."
|
@echo "Building $(APP_NAME)..."
|
||||||
$(GO_BUILD) -o $(BINARY)
|
$(GO_BUILD) -o $(BINARY)
|
||||||
|
|
||||||
install: build
|
install: build ## Install the application
|
||||||
@echo "Installing $(APP_NAME)..."
|
@echo "Installing $(APP_NAME)..."
|
||||||
$(GO_INSTALL)
|
$(GO_INSTALL)
|
||||||
|
|
||||||
clean:
|
clean: ## Remove build artifacts
|
||||||
@echo "Cleaning up build artifacts..."
|
@echo "Cleaning up build artifacts..."
|
||||||
$(GO_CLEAN)
|
$(GO_CLEAN)
|
||||||
rm -f $(BINARY)
|
rm -f $(BINARY)
|
||||||
|
|
||||||
help:
|
help: ## Print the make targets
|
||||||
@echo "Makefile for $(APP_NAME)"
|
@echo "Makefile for $(APP_NAME)"
|
||||||
@echo "Usage:"
|
@echo "Targets:"
|
||||||
@echo " make build - Build the application"
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
@echo " make install - Install the application"
|
|
||||||
@echo " make clean - Remove build artifacts"
|
|
||||||
@echo " make - Default target (build)"
|
|
||||||
|
|
Loading…
Reference in New Issue