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?

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.


2
Peut-être ajouter | sort -upour trier et supprimer les doublons
BrainStone

comme le | sort -ucommentaire aussi
Mark Ch
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.