Verwendung von sed in einem Makefile; Wie kann man Variablen entkommen?

8

Ich schreibe ein generisches Makefile, um statische Bibliotheken zu erstellen. Es scheint bisher gut zu funktionieren, außer für die Zeile, die sed aufruft:

%Vor% Mit

sed wird der Pfad / Name der Objektdatei durch den vollständigen Pfad ersetzt, in dem sich das Objekt befindet. z.B. 'src / foo.o:' wird in diesem Beispiel durch 'build / linux / src / foo.o:' ersetzt. $ (BUILD_DIR) und $ * in der Ersetzungszeichenfolge enthalten beide Schrägstriche beim Erweitern - wie übergebe ich sie an sed?

Hinweis: Dies könnte hier bereits beantwortet worden sein, aber ich kann diese Antworten bisher nicht auf mein spezifisches Problem anwenden!

    
x-x 08.07.2010, 06:42
quelle

2 Antworten

13
  • Sie können alles andere als Schrägstriche als Trennzeichen in sed verwenden. Z.B. %Code%
  • Sie können doppelte Anführungszeichen verwenden sed s~foo~bar~g (zumindest in der Shell), und Variablen werden immer noch erweitert: "
Sjoerd 08.07.2010, 06:46
quelle
5

Wenn Sie den Pfad in eine Datei erweitern möchten, verwenden Sie

%Vor%

Wenn Ihre Variable PATH_VARIABLE wie / opt / path / user / home / etc aussieht Es wird nun aufgeblasen zu:

%Vor%

Dies sollte es sed ermöglichen, das '/' korrekt einzufügen.

-Matt

    
Matt 31.07.2013 18:11
quelle

Tags und Links