Cómo obtener rutas absolutas después de vpath coincidentes en hacer?
Pregunta
Tengo un makefile que dependiendo de algunas propiedades de los conjuntos de vpath y genera una lista de archivos de origen en una variable.Necesito ejecutar el archivo makefile sin compilar nada (la compilación en realidad es manejado por un makefile) y acabo de ver que archivos reales, los nombres de archivo se asignan dependiendo de la vpath configuración.
Solución
Opción 1:Vamos a hacer su camino de búsqueda:
.PHONY: whichfiles
whichfiles: $(LIST_OF_SOURCE_FILES)
@echo $+
Opción 2:Simular la trayectoria de búsqueda usando $(comodín):
.PHONY: whichfiles
whichfiles:
@echo $(foreach f,$(LIST_OF_SOURCE_FILES),$(firstword $(wildcard $(VPATH:%=%/$f)) not-found:$f))
De cualquier manera, "hacer whichfiles" va a imprimir la lista de archivos encontrados.
Si algunos de los archivos no puede ser encontrado, opción 1, se producirá un error de "no hay regla para hacer la" presentación de informes el primer archivo que no se pudo encontrar.Opción 2 print "no encontrado:" para cada archivo que falta.