.TL Wozu braucht man Make? .AU Oma Czyborra .PP Die allermeisten Programme müssen erst viele Male compiliert, geändert und getestet werden, bevor sie fertig sind, denn die Fehler zeigen sich ja erst dann, wenn man versucht, das Programm laufen zu lassen. Dank der vielen Optionen und Werkzeuge, die Unix bietet, ist das Compilieren von Programmen zu einer komplexen Angelegenheit mit Präprozessoren, Umbenennungen und kryptischen Optionen geworden. Hier wäre es sehr mühsam, wieder und wieder die gleichen Kommandos einzutippen, dabei macht man auch leicht Fehler. Außerdem vergißt man die Kommandofolgen, wenn man ein Projekt eine Weile auf der Diskette modern läßt. .PP Schnell kommt die Idee, sich Shellskripte zu schreiben. Skripte haben jedoch den Nachteil, daß sie entweder auf nur eine bestimmte Kommandofolge festgelegt sind, oder mit Optionen unübersichtlich werden. Eine weitere Erfahrung ist, daß man oft nur einzelne Module des Projektes neu übersetzen will, nämlich nur die, in deren Quelltexten seit der letzten Übersetzung Änderungen vorgenommen wurden. Einfache Shellskripte verschwenden hier Rechenzeit, indem sie immer das gesamte Inventar compilieren. Intelligentere Algorithmen mit wilden test-newer-Konstrukten sehen dagegen wieder sehr seltsam aus. .PP Zum Glück gibt es ein Hilfsmittel, das für derartige Aufgaben viel besser taugt: make \- Aufruf genügt. Dieses Werkzeug liest im aktuellen Verzeichnis nach ein Makefile, das die Regeln für diese Directory enthält: welches Objekt wird hier wohl am häufigsten erstellt, von welchen anderen Objekten hängt es ab? Make untersucht automatisch die Veränderungszeiten aller beteiligten Quellen und stellt dadurch fest, welche Module aktualisiert werden müssen. Die entsprechenden Kommandos werden dann gestartet und können am Terminal verfolgt werden. .LP Nicht nur das Compilieren, sondern viele Aufgaben können mittels Make automatisiert werden: Probelaufen, Ausdrucken, Komprimieren uvm. Makes Makromechanismus erlaubt einfaches Austauschen von Compilern und Flags, wenn man z. B. zum Debuggen eine Symboltabelle benötigt. Makes eingebaute Regeln ermöglichen es, in vielen Fällen einfach davon auszugehen, daß Make schon weiß, wie es x.o aus x.c macht. Und neuere Versionen von Make bieten natürlich weitere Komfortfeatures. .PP Besessene Hacker finden sich somit in folgendem Labyrinth: .PS arrow down box "think"; arrow right from right of last box box "edit"; arrow; box "make"; arrow B: box "test" invis; arrow line width 4 * linewid from B.w to B.s then to B.e then to B.n then to B.w line up from B.n then to top of 1st arrow .PE