Tôi đã sử dụng cào một chút (chương trình tạo Ruby) và nó có tùy chọn để nhận danh sách tất cả các mục tiêu có sẵn, ví dụ:
> 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...
...
nhưng dường như không có tùy chọn nào để thực hiện điều này trong GNU make.
Rõ ràng mã gần như có cho nó, kể từ năm 2007 - http://www.mail-archive.com/help-make@gnu.org/msg06434.html .
Dù sao, tôi đã thực hiện một chút hack để trích xuất các mục tiêu từ tệp tạo tệp, mà bạn có thể đưa vào tệp tạo tệp.
list:
@grep '^[^#[:space:]].*:' Makefile
Nó sẽ cung cấp cho bạn một danh sách các mục tiêu được xác định. Đó chỉ là một sự khởi đầu - chẳng hạn, nó không lọc ra các phụ thuộc.
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
không?
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
Thông thường tôi chỉ cần kiểm tra tệp tạo hiện tại và hoàn thành bash mở rộng bí danh của tôi