Lies mich!

Nach dem Öffnen des Archivs wechseln Sie in das neu entstandene Verzeichnis. Hier sehen Sie unter anderem eine Reihe von Dateien, die Namen wie configure und Makefile.in tragen oder auf .c enden. Letzteres sind Dateien mit dem Programmcode, aus dem Sie die Software später übersetzen.

Der erste Schritt zum fertigen Programm, der gerne vergessen wird, umfasst das Lesen der Textdateien README, NEWS, INSTALL und ChangeLog, soweit diese vorhanden sind. Dort finden Sie Hinweise, welche Programme oder Bibliotheken die Anwendung zu ihrer Installation benötigt. ChangeLog und NEWS informieren Sie über Veränderngen zu Vorgängerversionen. Außerdem gibt Ihnen die Datei INSTALL Tipps, wie die Installation ablaufen soll.

Falls Sie bei der Lektüre dieser Dateien auf unerfüllte Abhängigkeiten stoßen, gilt es, die entsprechenden Pakete von Ihren Distributions-CDs oder aus dem Internet nachzuinstallieren (Kasten 1). Oft finden Sie in den Dateien README oder INSTALL bereits eine URL, wo Sie das Nötige herunterladen können.

Allerdings empfiehlt sich, zunächst die distributionseigenen Resourcen zu verwenden, anstatt die Anhängigkeiten mit Hilfe des Internets aufzulösen. Nur wenn Sie eine Library nicht auf Ihren CDs entdeckten oder genau wissen, was Sie tun, sollten Sie auf distributionsfremdes Material zurückgreifen.

Ansonsten riskieren Sie Fehlfunktionen in den Programmen Ihrer Distribution, wenn diese nicht mit der von Ihnen eingespielten Bibliothek zusammenarbeiten.

Kasten 1: Datei INSTALL

Der Inhalt der Datei INSTALL variiert von Programm zu Programm. Hier sehen Sie beispielhaft die Angaben aus dem Sourcecode zum Webbrowser links.

Check you have installed the following libraries and are able to
compile with them. On a package-driven distribution, you will need both
"library" and "library-dev(el)":
libpng – required to compile links in graphics mode (not required in
text mode).
IJG libjpeg – if you want to display JPEG's (probably yes).
TIFF Library – if you want TIFFs.
SVGAlib – if you want Links to be able to display on SVGAlib.
OpenSSL – if you want SSL connections.

Make intern

Bevor Sie sich mit ./configure dem ersten Takt des Dreischritts zuwenden, sehen wir uns ein Makefile im Detail an (Listing 1). Hier entdecken Sie eine Reihe von Variablen, die den Compiler (CC) und dessen Optionen (CFLAGS) festlegen sowie das Zielverzeichnis definieren (DEST), wohin das kompilierte Programm schließlich kopiert wird. Die Manual-Seite landet über die Variablen MAN und MAN1 im Verzeichnis /usr/local/man/man1.

Listing 1

Variablen eines Makefiles

CC = gcc
CFLAGS = -O2 -Wall
DEST = /usr/local/bin
MAN  = /usr/local/man
MAN1    = $(MAN)/man1

Die Werte der Variablen DEST müssen Sie ändern, wenn Sie zum Beispiel /opt/programmname an Stelle von /usr/local/bin als Zielverzeichnis verwenden wollen. Da der Verzeichnispfad unter /usr/local/ dem User root gehört, müssen Sie vor dem Ausführen des Befehls make install mit dem Kommando su in seine Rolle schlüpfen. Ansonsten lassen sich die Pogrammteile nicht an diese Stelle kopieren.

Doch das Makefile besteht nicht nur aus Variablen: Dort stehen auch sogenannte Targets ("Ziele"). Dies sind Zeilen, die die Optionen beim Aufruf von make festlegen, beispielsweise make uninstall oder make install. Targets stehen am Anfang einer Zeile und schließen mit einem Doppelpunkt (Listing 2). Hinter dem Doppelpunkt folgen, falls vorhanden, die Voraussetzungen, die optional sind.

Listing 2

Targets eines Makefiles

uninstall:
        rm -f $(DEST)/programm
install: programm
        cp programm $(DEST)/programm

Wie Sie im Beispiel sehen, löscht der Aufruf make uninstall die Datei /usr/local/bin/programm. Die Variable DEST innerhalb dieser Regel wurde bereits in Listing 1 gesetzt. Das Kommando make install hingegen kopiert die kompilierte Datei programm in das genannte Verzeichnis. Für gewöhnlich brauchen Sie Targets nicht zu verändern. Eventuell müssen Sie Variablen wie in Listing 1 anpassen, bevor Sie die Kommandos make und make install starten.

Bei einem kleinen Makefile fällt das Editieren vor dem Kompilieren nicht ins Gewicht. Allerdings hat die Sache einen Haken: Die meisten Makefiles fallen weder klein noch übersichtlich aus. Deshalb liegt dem Quellcode in der Regel ein Shell-Skript mit dem Namen configure bei, dem wir uns nun zuwenden.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Multimuschel
    Mrxvt ist schlank, wendig, einfach anzupassen und unterstützt mehrere Shell-Sitzungen in einem Terminalfenster.
  • Programme unter Linux kompilieren
  • Mit Make komplexe Aufgaben effizient bearbeiten
    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.
  • Installationsprobleme
    Die Installation aktueller Linux-Programme läuft häufig über den "klassischen" Weg, der aus den drei Schritten ./configure, make und make install besteht. Dabei kann allerdings einiges schiefgehen, wenn etwa für das Übersetzen notwendige Pakete fehlen. Schauen wir uns die typischen Probleme an…
  • So beheben Sie Fehler bei der Ausführung von make
    Wenn das configure-Skript fehlerfrei durchgelaufen ist, stehen nur noch make und make install zwischen dem Anwender und der neuen Software. Auch hier steckt der Teufel bisweilen im Detail.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...