24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

174 2 <strong>UNIX</strong><br />

fsumme: fsumme.c fsr.o<br />

$(CC) -o fsumme fsumme.c fsr.o $(LDFLAGS)<br />

fsr.o: fsr.f<br />

$(FC) -c fsr.f<br />

clean:<br />

rm *.o<br />

Programm 2.30 : Makefile mit Makros und Dummy-Zielen<br />

Zunächst werden e<strong>in</strong>ige Makros def<strong>in</strong>iert, z. B. der Compileraufruf CC. Überall,<br />

wo im Makefile das Makro mittels $(CC) aufgerufen wird, wird es vor<br />

der Ausführung wörtlich ersetzt. Auf diese Weise kann man e<strong>in</strong>fach e<strong>in</strong>en<br />

anderen Compiler wählen, ohne im ganzen Makefile per Editor ersetzen zu<br />

müssen. Dann haben wir e<strong>in</strong> Dummy-Ziel all, das aus e<strong>in</strong>er Aufzählung weiterer<br />

Ziele besteht. Mittels make all wird dieses Dummy-Ziel erzeugt, d. h.<br />

die aufgezählten Ziele. Unter diesen bef<strong>in</strong>det sich auch e<strong>in</strong>es namens clean,<br />

das ohne Zutaten daherkommt und offenbar nur bestimmte Tätigkeiten wie<br />

das Löschen temporärer Files bezweckt. E<strong>in</strong> Dummy-Ziel ist immer out-ofdate,<br />

die zugehörigen Kommandos werden immer ausgeführt. E<strong>in</strong> weiteres<br />

Beispiel für make(1) f<strong>in</strong>det sich <strong>in</strong> Abschnitt ?? Arrays von Funktionen auf<br />

Seite ??.<br />

Im GNU-Projekt wird Software im Quellcode für verschiedene Systeme<br />

veröffentlicht. In der Regel muß man die Quellen auf der eigenen Anlage kompilieren.<br />

Infolgedessen gehören zu den GNU-Programmen fast immer umfangreiche<br />

Makefiles oder sogar Hierarchien davon. Übung im Gebrauch von<br />

make(1) erleichtert die E<strong>in</strong>richtung von GNU-Software daher erheblich. Oft<br />

wird e<strong>in</strong> an das eigene System angepaßtes Makefile erst durch e<strong>in</strong> Kommando<br />

./configure erzeugt. Die Reihenfolge bei solchen Programme<strong>in</strong>richtungen<br />

lautet dann:<br />

./configure<br />

(vi Makefile)<br />

make<br />

make <strong>in</strong>stall<br />

make clean<br />

wobei make <strong>in</strong>stall Schreibrechte <strong>in</strong> den betroffenen Verzeichnissen erfordert,<br />

also meist Superuserrechte. Gelegentlich wird make(1) aus e<strong>in</strong>em<br />

Shellscript heraus aufgerufen, das e<strong>in</strong>ige D<strong>in</strong>ge vorbereitet. So wird zum Beispiel<br />

sendmail(1) durch den Aufruf des mitgelieferten Shellscripts Build<br />

erzeugt.<br />

Das Skript configure erlaubt oft die Option --prefix=DIR, wobei DIR<br />

das Verzeichnis ist, <strong>in</strong> dem das ganze Gerödel e<strong>in</strong>gerichtet werden soll,<br />

defaultmäßig meist /usr/local, aber manchmal besser /usr oder /opt.<br />

Statt make clean kann man auch make distclean versuchen, das räumt<br />

noch gründlicher auf, so daß h<strong>in</strong>terher wieder mit ./configure e<strong>in</strong> Neubeg<strong>in</strong>n<br />

möglich ist.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!