• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Makefile Problem

Ich habe ein ziemliches Problem mit einem Makefile. Ich bin totaler Linuxanfänger und kenn mich auch mit diesen Makefiles nicht so aus.

Ich möchte gern das ich aus einer CSV-File mit Hilfe eines Pearl Skripts, dieses CSV File in eine andere Interpretersprache übersetzen. Das CSV File wird hierfür in mehrere andere Dateien zerlegt, die so dem Interpreter dann zugeführt werden soll, was im einzelnen auch gut funktioniert.
Aus den Interpreterdateien entstehen nach durchlaufen Postscript Files, die im letzten Schritt dann zu PDFs werden sollen.
Da sich je nach CSV File die Ausgabedateien vom Namen her ändern möchte ich das das ganze so ohne Dateinamen funktioniert und nur über die Endungen gemacht wird.

Code:
eine .CSV -> mehrere .DOT -> mehrere .PS -> mehrere .PDF


Code:
all: %.ps
	ps2pdf13 %ps

.ps: %.dot
	dot -Tps -o$< $@

%.dot:
	perl akttab2dot.pl

clean:
	-rm -f *.dot
	-rm -f *.ps

Das ist mein Code. Allerdings funktioniert dieser nicht, was wohl auch kein Wunder ist da ich mein Kenntnisstand sehr gering ist. Leider brauche ich bis morgen früh eine Lösung für mein Problem und wäre jemandem sehr sehr sehr dankbar.

Code:
#Ausführen der ps und pdf konvertierung:
%.pdf: %ps
	ps2pdf13 $< $@
%ps: %dot
	dot -Tps -o$@ $<

Jetzt stellt sich mir nur noch die Frage, wie ich es schaffe, das bevor er diese Konvertierungen durch nimmt er 1x das Pearl Skript ausführt um die ganzen DOT Files dafür zu erzeugen.
 
Code:
pngfiles = test1.png test2.png test3.png
pdffiles = $(patsubst %.png,%.pdf,$(pngfiles))

all: $(pdffiles)
pdf: $(pdffiles)
png: $(pngfiles)

$(pngfiles): %.png: %.dot
	dot -Tpng -o$@ $<
$(pdffiles): %.pdf: %.ps
	ps2pdf $<
%.ps: %.dot
	dot -Tps -o$@ $<
%.dot: test.csv
	perl test2dot.pl

So einfach wars.
 
Oben