Claro, mas quando você quer que ele os cuspa?
Para relatar o nome do alvo quando ele executa a regra, coloque uma linha na regra:
foo$(VAR): $(PREREQS)
@echo now making the foo target: $@
do_other_stuff...
Para cuspi-los todos de uma vez, você pode criar um alvo PHONY separado:
.PHONY: show_vars
show_vars:
@echo foo$(VAR)
@echo bar$(PARAM) blah$(FLAG)
# and so on
E isso pode ser um pré-requisito de seu destino padrão:
all: show_vars
...
EDITAR:
Você quer uma maneira de mostrar todos os alvos possíveis de um makefile arbitrário, o que eu suponho que significa não intrusivamente. Bem...
Para fazer isso exatamente, e ser capaz de lidar com makefiles sofisticados, por exemplo, envolvendo regras construídas por eval
instruções, você teria que escrever algo próximo a um emulador Make. Impraticável.
Para ver os alvos das regras simples, você poderia escrever um makefile que atuaria como um scanner makefile, operando em um makefile arbitrário:
- Pegue todos os nomes de destino do makefile usando sed.
- `inclua` o makefile para usá-lo para expandir variáveis.
- Use `show_%:; echo $$ * `para imprimir todos os alvos
Este seria um trabalho impressionante. Tem certeza de que o objetivo vale o esforço?