いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Makefileにヘルプ機能をつける

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

Makefileって熟れたやつになると呪文みたいになってて、別の人が利用しようとしても、どのターゲットを実行したらいいの?ってなったりします。

慣れていないと何やっているのか分かりづらいですしね。。

んで、何かの書籍に書いてあった以下のターゲットを仕込んでおくと、少し良い感じになるかもという話です。

(どの書籍で知ったのかが思い出せないのが辛い・・メモだけ手元に残っていた)

以下のような呪文を仕込んでおきます。

help:                               ## ヘルプを表示します
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
        awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

これを仕込んでおいてから、各ターゲット行の横に ## コメント を付与しておきます。

たとえば、こんな感じ。

all: run                            ## デフォルトタスク (run)

clean:                              ## 成果物をクリアします
    $(RM) $(OBJS) $(DEPS) $(PROGRAM_PATH) 

run: build                          ## 実行します
    @$(PROGRAM_PATH)

build: $(PROGRAM)                   ## 成果物をビルドします

で、make help とすると以下のように出力されます。

$ make help
all                  デフォルトタスク (run)
clean                成果物をクリアします
run                  実行します
build                成果物をビルドします
help                 ヘルプを表示します

ちょっと便利になるかも。

サンプル

自分がC言語とかのちょっとしたプログラムを作ったりするときに使っているMakefileです。

C言語でサンプル作る際のMakefile

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。