makefile: how to add a prefix to the basename?

I have a list of file path like that:

FILE_PATH := bla/ bla/ bla/blo/

I need to add a prefix to the basename in order to get:

FILE_PATH_PREFIX := bla/ bla/ bla/blo/

any idea ?

Look at Make’s addsufix function.

Here is an example we use with `addsuffix` to place obj files one directory below
the source.

SOURCE += MainThread.cpp
SOURCE += Blah.cpp

OBJ=$(join $(addsuffix ../obj/, $(dir $(SOURCE))), $(notdir $(SOURCE:.cpp=.o)))

From the make manual:

$(addprefix prefix,names...)

The argument names is regarded as a series of names, separated by
whitespace; prefix is used as a unit. The value of prefix is
prepended to the front of each individual name and the resulting
larger names are concatenated with single spaces between them. For

$(addprefix src/,foo bar)

produces the result src/foo src/bar.

Leave a Comment