Gibt es eine Möglichkeit, einen Verzeichnisteil aus einer Variablen in Make abzurufen?

Gibt es eine Möglichkeit, einen Verzeichnisteil aus einer Variablen in Make abzurufen?

Ich habe ein Makefile, in dem ich eine Bibliothek und ihren Pfad definiere:

MY_LIB= dir/lib

Jetzt weiß ich, dass ich @D verwenden kann, um einen Verzeichnisteil vom Ziel abzurufen:

#This will go to dir
$(MY_LIB):
    cd $(@D)

Ich möchte aber den Verzeichnisteil von MY_LIB in einem anderen Ziel verwenden:

$(TARGET):
    doSomething $(INSERT_MY_LIB_DIR_HERE)

Wie kann ich das machen?

Antwort1

Sie haben die Komponenten $(basename $path)für Dateinamen und $(dir $path)Verzeichnis

Antwort2

Wenn Sie Linux verwenden, verwenden Sie höchstwahrscheinlich GNU make. Das hat einedirFunktion. Sie könnten also eine Regel wie diese haben

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

(Nicht gefunden inPOSIX machen– andere Implementierungen können ähnliche Erweiterungen haben).

verwandte Informationen