У меня есть makefile, в котором я определяю некоторую библиотеку и путь к ней:
MY_LIB= dir/lib
Теперь я знаю, что могу использовать @D для получения части каталога из цели:
#This will go to dir
$(MY_LIB):
cd $(@D)
Но я хочу использовать часть каталога MY_LIB в другой цели:
$(TARGET):
doSomething $(INSERT_MY_LIB_DIR_HERE)
Как мне это сделать?
решение1
у вас есть компонент $(basename $path)
for filename и $(dir $path)
for dir
решение2
Если вы используете Linux, скорее всего, вы используете GNU make. У этого естьdir
функция. Так что вы могли бы иметь правило типа
$(TARGET):
doSomething $(dir $(MY_LIB))
(Не найдено вPOSIX-сделать— другие реализации могут иметь похожие расширения).