ฉันใช้เรคบิต (โปรแกรมทำ Ruby) และมีตัวเลือกเพื่อรับรายการเป้าหมายที่มีอยู่ทั้งหมดเช่น
> 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 ทำ
เห็นได้ชัดว่ารหัสเกือบจะมีมันเป็นของปี 2007 - http://www.mail-archive.com/help-make@gnu.org/msg06434.html
อย่างไรก็ตามฉันได้แฮ็คเล็กน้อยเพื่อแยกเป้าหมายออกจาก makefile ซึ่งคุณสามารถรวมไว้ใน makefile ได้
list:
@grep '^[^#[:space:]].*:' Makefile
มันจะให้รายการของเป้าหมายที่กำหนดไว้ มันเป็นเพียงการเริ่มต้นเท่านั้น - มันไม่ได้กรองการพึ่งพาเช่นกัน
> make list
list:
copy:
run:
plot:
turnin:
grep : Makefile
ใช่ไหม:
alias makefile-targets='grep "^[^#[:space:]].*:" Makefile'
บ่อยครั้งที่ฉันต้องตรวจสอบ makefile ปัจจุบันและการขยาย bash เสร็จสมบูรณ์ นามแฝงของฉัน