Link aus Makefile erzeugen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Link aus Makefile erzeugen

Beitrag von rksteve » 22.12.2010 16:43:16

Hallo!

Ich habe ein Makefile das convertiert mir (für Latex) alle möglichen Bilder nach *.eps, es befindet sich im Ordner Originale. Die eps-Files werden im selben Verzeichnis erzeugt. Nun möchte ich dass das Makefile einen Link erzeugt im Verzeichnis darunter. Es sollte dann in etwa so aussehen:

foobar.eps (link aus originale/foobar.eps)
originale / foobar.eps
originale / foobar.png

oder was fast noch schöner wäre wenn make die erzeugen files nicht in originale sondern ein Verzeichnis darunter ablegt., also so:
foobar.eps
originale / foobar.png

Das Makefile sieht folgendermaßen aus (habe ich irgendwo mal kopiert, hier die etwas gekürzte Version):

Code: Alles auswählen


.PHONY: pdf ps clean

PNGS=$(wildcard *.png)
EPSS=$(wildcard *.eps)

OUTPUT_EPS=$(PNGS:png=eps) $(EPSS)

ps: $(OUTPUT_EPS)

clean:
	rm $(FIGS:fig=eps) 2>/dev/null; true

# Bitmap images -> EPS: PNG and JPG are covered at the moment, using
# ImageMagick's 'convert' utility
%.eps: %.png
	convert $< $@
Was muß ich ändern daß das so funktioniert?

lg,
steve
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

flow11
Beiträge: 31
Registriert: 20.03.2007 14:58:24

Re: Link aus Makefile erzeugen

Beitrag von flow11 » 25.12.2010 23:24:25

Hey.

Ich bin mir unsicher ob ich die Frage richtig verstehe aber ich versuch's mal:
Du hast ja hier die Regel fürs convert:

Code: Alles auswählen

%.eps: %.png
   convert $< $@
$@ steht für den Namen des Targets. Also zum Beispiel foobar.eps, usw.
Dann kannst du doch einfach folgendes machen:

Code: Alles auswählen

%.eps: %.png
   convert $< $@
   mv $@ originale/$@
EDIT:
Oder willst du die *.png verschieben?
Dann nimmst du $< für die erste Abhänigkeit, also:

Code: Alles auswählen

%.eps: %.png
   convert $< $@
   mv $< originale/$<
Gruß, Florian.

Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Re: Link aus Makefile erzeugen

Beitrag von rksteve » 27.12.2010 17:35:54

Danke sehr für die Antwort!
Das hat den Nachteil dass die Files bei jedem Aufruf von make neu erzeugt werden (sind ja nicht vorhanden)
Nehme ich aber cp anstatt mv geht es *g*.
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

Antworten