D
daniel81
Hallo,
ich habe ein kleines Problem mit meinem Makefile:
ich möchte gerne im Makefile einen Platzhalter in einer Config-Text-Datei durch den aktuellen Verzeichnispfad ersetzen (quasi "pwd").
Dazu habe ich eine Datei config_default.txt in der der Platzhalter "DATADIR" steht. Im Makefile soll nun mit Hilfe des sed-Befehls aus der config_default.txt die Datei config.txt erstellt werden, in der statt DATADIR der Pfad zum aktuellen Verzeichnis steht.
meine Versuche sind leider alle kläglich gescheitert, aber zur näheren Erläuterung schreibe ich Euch mal einen auf:
Makefile:
sed "s/DATADIR/$(PWD)/g" $(PWD)/config_default.txt > $(PWD)/config.txt
Fehlermeldung: unkorrekte Optionen für s, da die durch $(PWD) erzeugten Slashs nicht escaped sind
nun meine Versuche diese Slashs zu escapen:
sed "s/DATADIR/$(sed 's/\//\\\//g' $(PWD))/g" $(PWD)/config_default.txt > $(PWD)config.txt
hier wird DATADIR einfach nur gelöscht, da der Ersetzungsstring anscheinend zu nichts ausgewertet wird
Weiß jemand Rat?
ich habe ein kleines Problem mit meinem Makefile:
ich möchte gerne im Makefile einen Platzhalter in einer Config-Text-Datei durch den aktuellen Verzeichnispfad ersetzen (quasi "pwd").
Dazu habe ich eine Datei config_default.txt in der der Platzhalter "DATADIR" steht. Im Makefile soll nun mit Hilfe des sed-Befehls aus der config_default.txt die Datei config.txt erstellt werden, in der statt DATADIR der Pfad zum aktuellen Verzeichnis steht.
meine Versuche sind leider alle kläglich gescheitert, aber zur näheren Erläuterung schreibe ich Euch mal einen auf:
Makefile:
sed "s/DATADIR/$(PWD)/g" $(PWD)/config_default.txt > $(PWD)/config.txt
Fehlermeldung: unkorrekte Optionen für s, da die durch $(PWD) erzeugten Slashs nicht escaped sind
nun meine Versuche diese Slashs zu escapen:
sed "s/DATADIR/$(sed 's/\//\\\//g' $(PWD))/g" $(PWD)/config_default.txt > $(PWD)config.txt
hier wird DATADIR einfach nur gelöscht, da der Ersetzungsstring anscheinend zu nichts ausgewertet wird
Weiß jemand Rat?