いくつかのライブラリとそのパスを定義する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)
ファイル名と$(dir $path)
dirコンポーネントがあります。
答え2
Linuxを使用している場合は、ほとんどの場合GNU makeを使用しています。一つあるdir
機能。だからこんなルールを持つことができます
$(TARGET):
doSomething $(dir $(MY_LIB))
(以下に見つかりません。POSIXが有効になります。--他の実装にも同様の拡張があるかもしれません。)