Blog

Verwenden Sie ein Hilfeziel in Ihrem Makefile

Joris Conijn

Joris Conijn

Aktualisiert Oktober 16, 2025
2 Minuten

In einem meiner früheren Blogs. habe ich geschrieben, wie Sie sich das Leben leichter machen können, wenn Sie Makefile verwenden. Aber wenn Sie Makefile in vielen Projekten verwenden. Die Ziele, die Sie verwenden, können sich von Projekt zu Projekt unterscheiden.

In diesem Blogbeitrag werde ich einen Trick vorstellen, wie Sie ein help Ziel schreiben können. Stellen wir uns vor, wir haben ein Projekt, mit dem Sie build, start und stop in einen Docker-Container einbauen können. Diese Namen sind ziemlich einfach. Aber ohne einen Blick in das Makefile zu werfen, wissen Sie es nie genau.

Wenn Sie das Ziel help aufrufen, können Sie alle verfügbaren Ziele auflisten:

make help

Alle Ziele werden mit einem Hilfetext aufgelistet

Wenn Sie einen Blick auf das Makefile werfen, das für diesen Blogbeitrag verwendet wurde. Es sieht wie folgt aus:

.DEFAULT_GOAL:=help
.PHONY: help
help:  ## Display this help
    $(info Example Makefile for my blog post)
    awk 'BEGIN {FS = ":.*##"; printf "nUsage:n  make 33[36m<target>33[0mn"} /^[a-zA-Z0-9_-]+:.*?##/ { printf "  33[36m%-15s33[0m %sn", $$1, $$2 } /^##@/ { printf "n33[1m%s33[0mn", substr($$0, 5) } ' $(MAKEFILE_LIST)

.PHONY: build
build: ## Build the container image
    docker build -t my-container:latest .

.PHONY: stop
stop: ## Stop the container
    docker stop my-named-container > /dev/null 2>&1 || True
    docker rm my-named-container > /dev/null 2>&1 || True

.PHONY: start
start: stop ## Start the container
    docker run --name my-named-container my-container:latest > /dev/null

.PHONY: shell
shell: ## Start a shell session on the container
    docker run -it my-named-container:latest bash

.PHONY: logs
logs: ## Tail the logs of the running container
    docker logs my-named-container -f

$(VERBOSE).SILENT:

Sie müssen das Ziel help hinzufügen. Und für jedes Ziel müssen Sie einen Hilfetext angeben. Und jedes Ziel benötigt ein Präfix mit ##.

Indem Sie ein help Ziel zu Ihrem Makefile hinzufügen, machen Sie es für andere einfacher zu verwenden. Aber auch für Sie selbst, weil Sie sich nicht jedes Ziel im Makefile merken müssen.

Foto von lalesh aldarwish

Verfasst von

Joris Conijn

Joris is the AWS Practise CTO of the Xebia Cloud service line and has been working with the AWS cloud since 2009 and focussing on building event-driven architectures. While working with the cloud from (almost) the start, he has seen most of the services being launched. Joris strongly believes in automation and infrastructure as code and is open to learning new things and experimenting with them because that is the way to learn and grow.

Contact

Let’s discuss how we can support your journey.