Użyłem trochę prowizji (program do tworzenia Ruby) i ma opcję uzyskania listy wszystkich dostępnych celów, np.
> 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...
...
ale wydaje się, że nie ma takiej możliwości w GNU make.
Najwyraźniej kod jest już prawie gotowy, począwszy od 2007 r. - http://www.mail-archive.com/help-make@gnu.org/msg06434.html .
W każdym razie zrobiłem niewielki hack, aby wyodrębnić cele z makefile, który możesz dołączyć do makefile.
list:
@grep '^[^#[:space:]].*:' Makefile
Daje ci listę zdefiniowanych celów. To tylko początek - na przykład nie filtruje zależności.
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
?
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
Najczęściej muszę tylko sprawdzić aktualny plik makefile, a uzupełnianie bash rozszerza się mój alias.