tengo archivos de objetos que entran con las rutas que podría tener este aspecto:Makefile - ../ quitar del camino
'../../src/foo/bar.c'
me gustaría que se impriman a
'build/src/foo/bar.o'
Actualmente el uso :
COBJS := $(notdir $(CFILES))
COBJS := $(patsubst %,$(BUILD)%.o,$(COBJS))
puedo lograr
'build/bar.o'
Esto es problemático si dos bibliotecas/proyectos contienen el mismo nombre de clase.
Entonces la pregunta es, ¿cómo se puede eliminar múltiples '../' de una ruta en Make. Intenté los enfoques obvios e ingenuos sin resultados.
Actualización, lo siguiente coincidirá exactamente con ../../ y lo reemplazará con el resto. Esto es perfecto, excepto que es específico de ../../. Sólo hay que hacer que coincida con cualquier número de ../../
COBJS := $(CFILES:../../%=%)
actualización,
resuelto, sólo tres reputación tímido de la publicación de mi propia respuesta.
COBJS := $(subst ../,,$(CFILES))
¿Qué pasa con 'COBJS: = $ (subst ../.., construir, $ (CFILES))'? – Beta
Algunos archivos no son siempre dos caminos relativos hacia atrás. – Halsafar