私は少しレーキ(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/help-make@gnu.org/msg06434.html。
とにかく、メイクファイルからターゲットを抽出するための小さなハックを作成しました。メイクファイルに含めることができます。
list:
@grep '^[^#[:space:]].*:' Makefile
定義されたターゲットのリストが表示されます。これはほんの始まりにすぎません-たとえば、依存関係を除外しません。
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
?
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
ほとんどの場合、現在のメイクファイルを調べるだけで、bashの補完が展開されます。私のエイリアス。