He usado un poco de rastrillo (un programa de creación Ruby), y tiene una opción para obtener una lista de todos los objetivos disponibles, por ejemplo
> 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...
...
pero parece que no hay opción para hacer esto en GNU make.
Aparentemente, el código está casi allí para ello, a partir de 2007: http://www.mail-archive.com/help-make@gnu.org/msg06434.html .
De todos modos, hice un pequeño truco para extraer los objetivos de un archivo MAKE, que puedes incluir en un archivo MAKE.
list:
@grep '^[^#[:space:]].*:' Makefile
Le dará una lista de los objetivos definidos. Es solo un comienzo: no filtra las dependencias, por ejemplo.
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
:?
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
mayoría de las veces solo necesito examinar el archivo MAKE actual y la finalización de bash se expande mi alias