Re: Makefile selber schreiben

From: Matthias Fechner <idefix(at)fechner.net>
Date: Fri, 21 Jan 2005 14:58:50 +0100

Hallo Ulrich und all die anderen,

* Ulrich Spoerlein <q(at)uni.de> [20-01-05 22:15]:
> FIGS= figs/example.fig \
> figs/edgeface.fig \
> figs/tourconstruct.fig \
> figs/cityinsert.fig
>
> .SUFFIXES: .fig .eps
>
> .fig.eps:
> fig2dev -L eps ${.IMPSRC} ${.TARGET}
>
> foo.dvi: foo.tex ${FIGS:S/fig$/eps/g}
> latex foo

ich hab da jetzt was gefunden, was klappt, wobei ich das noch hinten
und vorne nicht verstehe:
1. FIGS!= echo xfigs/*.fig

2. .SUFFIXES: .fig .pdf

3. .fig.pdf:
4. @echo "fig2dev -L pdf ${.IMPSRC} ${.TARGET:C/xfigs/pictures/}"
         
5. foo.dvi: main.tex ${FIGS:S/fig$/pdf/g}
6. @echo "latex foo"

Hab jetzt einfach mal nur echos reingemacht.

Wenn ich das jetzt richtig verstehe, macht Zeile 1
alles was *.fig matched, wird nach FIGS geschrieben (wie eine Variable)

Zeile 2: keine Ahnung
Zeile 3: keine Ahnung
Zeile 4: führt das echo aus, wobei mir hier die beiden Variablen
IMPSRC und TARGET noch nicht ganz klar sind
Zeile 5: dieses Direktive hängt also von main.tex und FIGS mit der
Ersetzung /fig$/pdf/ ab
Zeile 6: das macht er halt, wenn die Abhängigkeit oben erfüllt ist.

Jetzt habe ich noch ein paar Fragen dazu:
1. was genau bedeutet die Zeile .fig.pdf
2. wieso führt er die Zeile foo.dvi aus? (weil es keine andere wie
all: gibt?)
3. kann ich das irgendwie auf den GNU make umbauen?

Das Problem ist, daheim hab ich eine FreeBSD Maschine, aber in der
Arbeit hab ich so eine Windowsmaschine und da hab ich dann leider nur
cygwin und da wiederrum habe ich nur den GNU make....

Aber der GNU make scheint die Kommandos wie :C oder :S nicht zu kennen
und ein man gmake hilft hier nicht wirklich weiter.

Schon mal ein riesen Danke, das hat mir schon gut weitergeholfen.

-- 
Gruss
Matthias

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 21 Jan 2005 - 15:02:16 CET

search this site