Jak wyświetlić listę wszystkich celów w marce?


18

Załóżmy, że masz strukturę projektu z dużą ilością plików Makefile, a istnieje plik Makefile najwyższego poziomu, który obejmuje wszystkie pozostałe.

Jak wymienić wszystkie możliwe cele?

Umiem pisać

make 

a następnie tabulowanie, aby uzyskać sugestie, na ogół by załatwiło sprawę, ale w moim przypadku jest 10000 celów. W ten sposób wyniki są przekazywane dalej, a także z jakiegoś powodu przewijanie listy powoduje zawieszanie się. Czy jest inny sposób?

Odpowiedzi:


24

Oto jak moduł uzupełniania basha makepobiera swoją listę:

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

Drukuje listę celów rozdzielaną znakami nowej linii, bez stronicowania.


2
Może dodaj, | sort -uaby go posortować i usunąć duplikaty
BrainStone

jak | sort -ukomentarzu też
Mark Ch
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.