Comment lister toutes les cibles en make?

18

Disons que vous avez une structure de projet avec beaucoup de Makefiles et qu'il existe un Makefile de niveau supérieur qui inclut tous les autres.

Comment pouvez-vous lister toutes les cibles possibles?

Je sais écrire

make 

puis tabuler pour obtenir les suggestions ferait généralement l'affaire, mais dans mon cas, il y a 10000 cibles. Faire cela fait passer les résultats à travers plus et aussi pour une raison quelconque faire défiler les résultats de la liste dans un gel. Y a-t-il une autre façon?

Sogartar
la source

Réponses:

24

Voici comment le module de complétion bash pour makeobtient sa liste:

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

Il imprime une liste de cibles délimitées par des sauts de ligne, sans pagination.

Chris Down
la source
2
Peut-être ajouter | sort -upour trier et supprimer les doublons
BrainStone
comme le | sort -ucommentaire aussi
Mark Ch