
ほとんどの場合に問題なく動作する次のコードを使用します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