Home / LinuxUser / 2006 / 12 / Mit Make komplexe Aufgaben effizient bearbeiten

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Gekonnt delegiert

Mit Make komplexe Aufgaben effizient bearbeiten

01.12.2006 Arbeiten Sie an komplexen Projekten mit mehreren Quelldateien, behält Make den Überblick für Sie. Programmierern, LaTeX-Anwendern oder Systemverwaltern greifen gerne auf dieses nützliche Werkzeug zurück.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder Gnome regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Jeder, der schon einmal Programme aus den Quellen selbst übersetzt hat, kennt das Tool Make, das im Dreischritt configure, make, make install für das Kompilieren und Installieren der Software zuständig ist. Make leistet aber nicht nur in diesem Szenario gute Dienste: Auch bei anderen Aufgaben sorgt es für Arbeitserleichterung. So verwenden LaTeX-Anwender Make beispielsweise gerne bei größeren Projekten dazu, ein Postscript- oder PDF-Dokument automatisch neu zu kompilieren und zu erstellen, wenn Sie eine oder mehrere der Quelldateien verändert haben.

Darüber hinaus greift Make dem Systemadministrator unter die Arme und stößt bei Bedarf ein Backup-Skript an, wenn im System eine oder mehrere Dateien modifiziert wurden. Welche Arbeiten Make verrichtet, beschreiben Sie in einer Steuerdatei, dem so genannten Makefile. Anschließend reicht der Aufruf make – und der Rest läuft automatisch.

Das Programm Make gibt es für viele verschiedene Plattformen. Dieser Artikel behandelt GNU Make, welches unter Linux zum Einsatz kommt. Er zeigt, wie Makefiles aufgebaut sind und stellt die wichtigsten Optionen des Kommandos vor.

Ein Frage der Steuerung

Dreh- und Angelpunkt für die Arbeit mit Make ist das so genannte Makefile, das genaue Anweisungen enthält. Make versteht GNUmakefile, makefile oder Makefile und sucht in genau dieser Reihenfolge nach einer entsprechenden Steuerdatei im aktuellen Verzeichnis. Das Makefile enthält Regeln, die wie folgt beschrieben sind:

Ziel:     Abhängigkeit(en)
      Kommando
      Kommando
      …

Das Ziel (engl.: target) bezeichnet das Ergebnis, das durch die darauf folgenden Befehle zu erstellen ist. Hinter dem Doppelpunkt stehen eine oder mehrere Dateien, die das Ziel zum Erzeugen voraus setzt, also von denen das Ziel abhängt (engl.: dependency). Danach folgen die Kommandos, also die Aktionen, die Make im Fall erfüllter Abhängigkeiten ausgeführen soll.

Beim Erstellen von Makefiles sind folgende Syntaxregeln zu beachten:

  • Kommentare stehen hinter einem Doppelkreuz (#).
  • Die Abhängigkeiten stehen durch Leerzeichen voneinander abgetrennt hinter dem Doppelpunkt des Ziels.
  • Alle Kommandos stehen normalerweise in einer eigenen Zeile und sind durch einen Tabulator eingerückt; stehen hier Leerzeichen, verweigert Make die Arbeit und Sie erhalten eine Meldung, wie beispielsweise makefile:4: *** missing separator. Stop.
  • Möchten Sie die Kommandos hintereinander in eine Zeile schreiben, trennen Sie diese durch ein Semikolon voneinander. Auch hier ist der Tabulator zum Einrücken zwingend notwendig.
  • Lange Zeilen dürfen Sie umbrechen, wenn am Zeilenende jeweils ein Backslash (\) steht. Nach dem Backslash dürfen keine weiteren Zeichen stehen.

Starkes Team – Make und LaTeX

Was sich in der Theorie trocken anhört, ist in der Praxis schnell erklärt: Als praktisches Beispiel dient ein Makefile, das beim Erstellen eines Buchs mit LaTeX [1][2][3][4] hilft. Das Buch selbst liegt in mehreren Dokumenten vor, dass heißt, es gibt für jedes Kapitel eine eigene Tex-Datei. Aus diesen Einzelteilen fasst LaTeX wiederum die Datei buch.tex zusammen.

Der erste Schritt ist das Erstellen der DVI-Datei. Make soll das Kommando latex dann aufrufen, wenn sich eine der Quelldateien verändert hat.

buch.dvi: kap01.tex kap02.tex kap03.tex \
              kap04.tex kap05.tex kap06.tex \
              kap07.tex buch.tex
        latex buch

Um automatisch eine Postscript-Datei zu erzeugen, kommt hier das Programm Dvips (mit verschiedenen Aufrufparametern) zum Einsatz. Auch das Tool hat nur dann etwas zu tun, wenn sich die DVI-Datei des ersten Ziels verändert hat:

buch.ps: buch.dvi
        dvips -q -o buch.ps buch

Wer möchte, fügt noch schnell ein Ziel hinzu, dass aus der Postscript-Datei ein PDF-Dokument erstellt:

buch.pdf: buch.ps
        ps2pdf buch.ps buch.pdf

Bei so viel Arbeit lohnt sich ein ordentliches Backup: Hier bietet es sich an, die Tex-Dateien, das Postscript und das PDF in ein mit Bzip2 [5] komprimiertes Tar-Archiv zu verpacken und das mit SCP auf einen entfernten Rechner zu transportieren – sicher ist sicher:

backup: kap01.tex kap02.tex ↩
kap03.tex \
            kap04.tex kap05.tex ↩
kap06.tex \
            kap07.tex buch.tex b↩
uch.ps \
            buch.pdf
        tar cvfj backup.tar.bz2 ↩
*.tex buch.ps buch.pdf
        scp backup.tar.bz2 huhn@↩
asteroid.huhnix.org:
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

570 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 0 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...