347 Stimmen

Wie erhält man die Liste der Ziele in einem Makefile?

Ich habe Rake ein wenig benutzt (ein Ruby make Programm), und es hat eine Option, um eine Liste aller verfügbaren Ziele zu erhalten, z.B.

> 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...
...

aber es scheint keine Option zu geben, dies in GNU make zu tun.

Offenbar ist der Code dafür fast fertig, Stand 2007 - http://www.mail-archive.com/help-make@gnu.org/msg06434.html .

Wie auch immer, ich habe einen kleinen Hack gemacht, um die Ziele aus einem Makefile zu extrahieren, das man in ein Makefile einfügen kann.

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

Sie erhalten dann eine Liste der festgelegten Ziele. Das ist nur ein Anfang - es filtert zum Beispiel nicht die Abhängigkeiten heraus.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X