¿Cómo enumerar todos los objetivos en make?

18

Supongamos que tiene una estructura de proyecto con muchos Makefiles y hay un Makefile de nivel superior que incluye todos los demás.

¿Cómo puedes enumerar todos los objetivos posibles?

Se escribir

make 

y luego tabular para obtener las sugerencias generalmente funcionaría, pero en mi caso hay 10000 objetivos. Hacer esto pasa los resultados a través de más y también, por alguna razón, desplazar los resultados de la lista se congela. ¿Hay otra manera?

Sogartar
fuente

Respuestas:

24

Así es como el módulo de finalización de bash makeobtiene su lista:

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

Se imprime una lista nueva línea delimitado de objetivos, sin paginación.

Chris Down
fuente
2
Tal vez agregar | sort -upara ordenarlo y eliminar duplicados
BrainStone
al igual que el | sort -ucomentario también
Marcos Ch