web-dev-qa-db-fra.com

makefile: comment ajouter un préfixe au nom de base?

J'ai une liste de chemins de fichiers comme ça:

FILE_PATH := a1.so a2.so bla/a3.so bla/a3.so bla/blo/a4.so....

J'ai besoin d'ajouter un préfixe au nom de base pour obtenir:

FILE_PATH_PREFIX := liba1.so liba2.so bla/liba3.so bla/liba3.so bla/blo/liba4.so....

une idée ?

37
dm76

Regardez la fonction addprefix de Make.

Voici un exemple que nous utilisons avec AddSuffix pour placer les fichiers obj un répertoire sous la source.

 SOURCE + = MainThread.cpp 
 SOURCE + = Blah.cpp 
 
 OBJ = $ (join $ (adduffix ../obj/, $ (dir $) (SOURCE))), $ (notdir $ (SOURCE: .cpp = .o))) 
 

Depuis le manuel de make: http://www.gnu.org/software/make/manual/make.html

 $ (préfixe addprefix, noms ...) 
 
 L'argument names est considéré comme une série de noms, séparés par des espaces; Le préfixe 
 est utilisé comme une unité. La valeur du préfixe est ajoutée au début de chaque 
 Nom individuel et les noms plus grands qui en résultent sont concaténés avec des espaces 
 Uniques entre eux. Par exemple, 
 
 $ (Addprefix src /, foo bar) 
 
 Produit le résultat `src/foo src/bar '. 
71
RC.