makefile - tutorial - Eliminar prefijo con make
makefile structure (2)
¿Hay alguna forma de eliminar un prefijo de una cadena (una ruta de acceso en mi caso) en make
?
Como ejemplo, supongamos que tengo la cadena:
FILES = a/b/c.d a/b/e.f
Quiero eliminar la a/
y quedarme con b/cd b/ef
He intentado usar varias combinaciones de dir
, notdir
y basename
del manual GNU make , pero ninguna parece proporcionar una buena solución.
$(dir $(FILE)) # a/b a/b
$(notdir $(FILE)) # c.d e.f
$(basename $(FILE)) # a/b/c a/b/e
La única manera que he encontrado para hacer esto hasta ahora es:
$( join $(basename $(dir $(FILE))), $(notdir $(FILE)) )
Que es realmente feo y de largo aliento. Lo que realmente necesito es algún tipo de función $(removeprefix ...)
. Suponiendo que conozco el prefijo ( a/
) que se va a eliminar, ¿se puede hacer esto con algún tipo de manipulación de cadenas?
Usted puede quitarse un líder a/
con
$(FILE:a/%=%)
Consulte la referencia de la función de sustitución de texto para obtener más opciones y detalles.
Ya que dices que GNU hace, ¿por qué no simplemente?
$(FILE:a/%=%)
?