Я немного использовал 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/help-make@gnu.org/msg06434.html .
В любом случае, я немного взломал, чтобы извлечь цели из make-файла, который вы можете включить в make-файл.
list:
@grep '^[^#[:space:]].*:' Makefile
Это даст вам список определенных целей. Это только начало - например, оно не отфильтровывает зависимости.
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
:?
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
чаще всего мне просто нужно проверить текущий make-файл, и расширение bash расширяется мой псевдоним.