Como obter caminhos absolutos após a correspondência do VPath?
Pergunta
Eu tenho um makefile que, dependendo de algumas propriedades, define o VPath e gera uma lista de arquivos de origem em uma variável. Preciso executar o Makefile sem compilar nada (a compilação é realmente tratada por um Makefile diferente) e apenas ver quais arquivos reais os nomes de arquivos são correspondentes, dependendo das configurações do VPath.
Solução
Opção 1: deixe fazer o caminho pesquisar:
.PHONY: whichfiles
whichfiles: $(LIST_OF_SOURCE_FILES)
@echo $+
Opção 2: simular a pesquisa de caminho usando $ (curinga):
.PHONY: whichfiles
whichfiles:
@echo $(foreach f,$(LIST_OF_SOURCE_FILES),$(firstword $(wildcard $(VPATH:%=%/$f)) not-found:$f))
De qualquer maneira, "Make Whwfiles" imprimirá a lista de arquivos correspondentes.
Se alguns dos arquivos não puderem ser encontrados, a opção 1 falhará com "nenhuma regra para fazer" relatar o primeiro arquivo que não pôde ser encontrado. A Opção 2 imprimirá "não achado" para cada arquivo ausente.