Makefile ターゲットのリストを取得する

Makefile ターゲットのリストを取得する

ほとんどの場合に問題なく動作する次のコードを使用しますmakefile targets listが、このような makefile を使用すると、すべてのターゲットではなく 2 つのターゲットのみが取得されます。

別のコマンドが表示されない

Makefile

command: ## Command description
    @echo "Execution log"

another-command: ## Command description
    @echo "Execution log"

command2: ## Command description
    @echo "Execution log" 

出力は次のようになります。

command
command2

なぜコマンドが取得できないのか分かりませんanother-command。これがコードです

`make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\\\/t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}' `;

何が問題なのでしょうか?

私はこれを参考にしています make ですべてのターゲットをリストするにはどうすればいいですか?

ここに画像の説明を入力してください

答え1

$ make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\\\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}'
command
Makefile
command2
another-command

私の文字セットにはバックスラッシュとタブがありますが、あなたのセットにはバックスラッシュ、スラッシュ、および「t」があります。

そして、「another」には「t」が含まれています ;-)

クレジット: steeldriver

関連情報