Hello,
gerade versuche ich ein Makefile für ein kleines Projekt zu verbessern. Unter anderem benötige ich eine description_file welche einen Abschnitt enthält wie folgt (in diesem Fall 6 MD5-Summen, aber das ist nebensächlich):
~\>cat description\_file
[MD5]
filename1 = 3405DA45BFA456
filename2 = 3405FA45BFA405
filename3 = 58705DA468BFA4
Wenn ich das Project übersetze, generiere ich zuerst die Dateien (das funktioniert) mit code in der Makefile ungefähr wie
FILENAMES = filename1 filename2 filename3
all:
for i in $(FILENAMES) do; ; done
es funktioniert auch, einzelne Variablen durch einen Einzel-String zu ersetzen:
sed s/{{VERSION}}/'$(GRF\_VERSION)'/ _inputfilename_ | sed s/{{NAME}}/'$(GRF\_NAME)'/ \> _processed\_filename_
Das könnte ich dann durch Pipes aneinanderhängen, um für jede Datei eine eigene Variable einzuführen und separat zu ersetzen. Allerdings würde ich das ganze gerne in einer For-Schleife machen, um sich wiederholenden Code zu vermeiden, der auch schnell unübersichtlich wird und an vielen Stellen auch angepaßt werden muß, wenn eine Datei hinzukommt oder sich die Dateinamen ändern.
Ich würde also gerne etwas ungefähr wie
cat $(_inputfilename_) | sed s/VARNAME/'for i in $(FILENAMES) do; echo `md5sum $$i`/ \> _processed\_description\_file_
umsetzen. Irgendwelche Ideen wie ich das umsetzen könnte?
Die Versuche mir bspw. eine mehrzeilige Variable mittels solcher For-Schleife zu generieren waren alle nicht von Erfolg gekrönt. Entweder blieb die Variable leer oder ich bekam ein „command not found“, weil eine der MD5-Summen als Kommando versucht wurde zu interpretieren.
Das Ganze soll natürlich möglichst Plattform-unabhängig laufen - wobei auf Win MinGW / MSys verwendet wird (also m.E. keine große Einschränkung).
Gruß,
Ingo