makeの変数からディレクトリ部分を取得する方法はありますか?

makeの変数からディレクトリ部分を取得する方法はありますか?

いくつかのライブラリとそのパスを定義する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が有効になります。--他の実装にも同様の拡張があるかもしれません。)

関連情報