Ответ 1
Посмотрите на функцию Addprefix.
Вот пример, который мы используем с adduffix для размещения файлов obj в одном каталоге ниже источник.
SOURCE += MainThread.cpp SOURCE += Blah.cpp OBJ=$(join $(addsuffix ../obj/, $(dir $(SOURCE))), $(notdir $(SOURCE:.cpp=.o)))
Из руководства по эксплуатации: http://www.gnu.org/software/make/manual/make.html
$(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 example, $(addprefix src/,foo bar) produces the result `src/foo src/bar'.