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
 

Related content

  • 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…
  • Der Linux-Gral
    Für bestimmte Hardware kommen Sie nicht darum herum, selbst nach Treibern zu suchen und diese zu installieren. Dieser Artikel zeigt Ihnen die wichtigsten Schritte und erklärt, was beim Treiber-Kompilieren genau geschieht.
Kommentare

Infos zur Publikation

title_2014_08

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

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...