Como listar todos os destinos no make?

18

Digamos que você tenha uma estrutura de projeto com muitos Makefiles e há um Makefile de nível superior que inclui todos os outros.

Como você pode listar todos os alvos possíveis?

Eu sei escrever

make 

e, em seguida, tabular para obter as sugestões geralmente funcionaria, mas no meu caso, existem 10.000 destinos. Fazer isso passa os resultados por mais e também, por algum motivo, rolar a lista resulta em um congelamento. Existe outro caminho?

Sogartar
fonte

Respostas:

24

É assim que o módulo de conclusão do bash makeobtém sua lista:

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

Ele imprime uma lista de destinos delimitada por nova linha, sem paginação.

Chris Down
fonte
2
Talvez adicione | sort -upara classificá-lo e remova duplicados #
BrainStone
como o | sort -ucomentário também #
Mark Ch