Existe-t-il un moyen de supprimer un préfixe d'une chaîne (un chemin d'accès dans mon cas) dans make
?
Par exemple, supposons que j'avais la chaîne:
FILES = a/b/c.d a/b/e.f
Je veux supprimer le a/
Et me retrouver avec b/c.d b/e.f
J'ai essayé d'utiliser diverses combinaisons de dir
, notdir
et basename
dans le GNU make manual , mais aucune ne semble fournir une bonne solution.
$(dir $(FILE)) # a/b a/b
$(notdir $(FILE)) # c.d e.f
$(basename $(FILE)) # a/b/c a/b/e
La seule façon que j'ai trouvée pour le faire jusqu'à présent est:
$( join $(basename $(dir $(FILE))), $(notdir $(FILE)) )
Ce qui est vraiment moche et de longue haleine. Ce dont j'ai vraiment besoin, c'est d'une sorte de fonction $(removeprefix ...)
. En supposant que je connaisse le préfixe (a/
) À supprimer, cela peut-il être fait avec une sorte de manipulation de chaîne?
Vous pouvez supprimer un leader a/
avec
$(FILE:a/%=%)
Voir référence de la fonction de substitution de texte pour plus d'options et de détails.
Puisque vous dites GNU make, pourquoi pas seulement:
$(FILE:a/%=%)
?