ทำรายการเป้าหมายทั้งหมดอย่างไร?


18

สมมติว่าคุณมีโครงสร้างโครงการที่มี Makefiles จำนวนมากและมี Makefile ระดับบนสุดที่มีโครงสร้างอื่นทั้งหมด

คุณจะระบุเป้าหมายที่เป็นไปได้ทั้งหมดได้อย่างไร

ฉันรู้ว่าการเขียน

make 

จากนั้นการแท็บเพื่อรับข้อเสนอแนะโดยทั่วไปจะทำเคล็ดลับ แต่ในกรณีของฉันมีเป้าหมาย 10,000 เป้าหมาย การทำเช่นนี้จะส่งผ่านผลลัพธ์มากกว่าและด้วยเหตุผลบางประการในการเลื่อนรายการผลลัพธ์ในการตรึง มีวิธีอื่นอีกไหม?

คำตอบ:


24

นี่คือวิธีที่โมดูล bash เสร็จสิ้นสำหรับmakeรับรายการ:

make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}'

มันพิมพ์รายการเป้าหมายที่คั่นด้วย newline โดยไม่ต้องเพจจิ้ง


2
อาจเพิ่ม| sort -uเพื่อจัดเรียงและลบรายการที่ซ้ำกัน
BrainStone

ชอบ| sort -uความคิดเห็นด้วย
มาร์ค Ch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.