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)ディレクトリのコンポーネントがあります

答え2

Linuxを使用している場合は、おそらくGNU makeを使用しているでしょう。dir関数です。次のようなルールがあります

$(TARGET):
    doSomething $(dir $(MY_LIB))

(見つからないPOSIX メイク(他の実装でも同様の拡張が考えられます)。

関連情報