2016-06-01 13 views
1

während auf meiner Make-Datei arbeiten muß ich Regel schreiben, die ausgeführt wird:Makefile-Target mehr Quellen, aber nur ein Ziel

$(GRIT) $(GRITFLAGS) INPUTFILE -ff $(addsuffix .grit,$(basename INPUTFILE)) -o grit.c 

Während INPUTFILE eine Liste von Dateien xxx.png ist. Im selben Verzeichnis befindet sich immer eine xxx.grit Datei, die mit der Option -ff übergeben werden muss. Alle Paare von .png- und .grit-Dateien bieten jedoch die gleiche Ausgabedatei, grit.c (grit verwendet Dateianhänge). Ich habe versucht, die Regeln für Muster zu verwenden, aber wenn ich eine Regel wie grit.c:% .png% .grit machen wollte, ist es jedoch nicht erlaubt, Muster für ein Ziel zu verwenden, das nichts wie das Muster enthält.

Irgendeine Idee, wie man mein Problem löst?

Edit: Das Hauptproblem ist, dass ich keine Lits von Eingabedateien (wie im obigen Beispiel) an GRIT übergeben kann. Dies ist nur um mein Problem zu zeigen. Ich muss GRIT für jede einzelne .png/.grit-Dateikombination aufrufen

Antwort

2
grit.c: $(images) 
    for png in $?; do \ 
     $(GRIT) $(GRITFLAGS) $$png -ff $${png%.png}.grit -o [email protected]; \ 
    done 
+0

Würde dies nicht einfach Listen von .png und .grit Dateien an GRIT übergeben? Das Problem ist, GRIT kann nur eine Eingabe- & Grit-Datei verwenden, um sie zusammenzufassen. – WodkaRHR

+0

@WodkaRHR Es wäre hilfreich, wenn Sie erwähnt hätten, dass Sie in Ihrer Frage "INPUTFILE" eine Liste von Bildern sagten. – user657267

+0

Sorry, ich habe die Frage nach dieser nicht näher spezifizierten Information bearbeitet. – WodkaRHR

Verwandte Themen