web-dev-qa-db-ja.com

makefile:ベース名にプレフィックスを追加する方法は?

私はそのようなファイルパスのリストを持っています:

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

取得するには、ベース名にプレフィックスを追加する必要があります。

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

何か案が ?

37
dm76

Makeのaddprefix関数を見てください。

次に、addsuffixを使用して、objファイルをソースの1つ下のディレクトリに配置する例を示します。

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

Makeマニュアルから: http://www.gnu.org/software/make/manual/make.html

 $(addprefix prefix、names ...)
 
引数名は、空白で区切られた一連の名前と見なされます。 
プレフィックスはユニットとして使用されます。プレフィックスの値は、各
個々の名前の前に付加され、結果の大きな名前は、それらの間に単一の
スペースで連結されます。たとえば、
 
 $(addprefix src /、foo bar)
 
は、結果「src/foo src/bar」を生成します。 
71
RC.