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 einedir
Funktion. 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).