メイクファイル内のターゲットのリストを取得するにはどうすればいいですか? 質問する

メイクファイル内のターゲットのリストを取得するにはどうすればいいですか? 質問する

私はrake(Rubyのmakeプログラム)を少し使ったことがありますが、これには利用可能なすべてのターゲットのリストを取得するオプションがあります。例えば

> rake --tasks
rake db:charset      # retrieve the charset for your data...
rake db:collation    # retrieve the collation for your da...
rake db:create       # Creates the databases defined in y...
rake db:drop         # Drops the database for your curren...
...

しかし、GNU make ではこれを行うオプションはないようです。

どうやら、2007年時点では、コードはほぼ完成しているようです。http://www.mail-archive.com/ [email protected] /msg06434.html

とにかく、私は makefile からターゲットを抽出するためのちょっとしたハックをしました。これは makefile に含めることができます。

list:
    @grep '^[^#[:space:]].*:' Makefile

定義されたターゲットのリストが表示されます。これは単なる始まりに過ぎず、たとえば依存関係を除外するものではありません。

> make list
list:
copy:
run:
plot:
turnin:

ベストアンサー1

Bash では(少なくとも)、タブ補完によってこれを自動的に実行できます。

make spacetabtab


必要最低限​​の機能を備えたディストリビューション (コンテナなど) を使用している場合は、パッケージをインストールする必要があるかもしれません。

$ apt-get install bash-completion ## Debian/Ubuntu/etc.
$ . /etc/bash_completion ## or just launch bash again

おすすめ記事