Scribus-SVN-Versionen mit CMake komplilieren: Difference between revisions
C schaefer (talk | contribs) |
C schaefer (talk | contribs) |
||
Line 61: | Line 61: | ||
'''Und was bedeutet eigentlich kompilieren?''' | '''Und was bedeutet eigentlich kompilieren?''' | ||
Wenn Sie ans Kompilieren gehen, müssen Sie daran denken, daß das, was Sie heruntergeladen haben, eine große Sammlung von reinen Textdateien ist, die die Dateierweiterung *.c oder *.cpp tragen, womit C- bzw. C++-Dateien gekennzeichnet werden. Es sind deshalb so viele, damit die Softwareentwicklung einfacher wird und ermöglicht außerdem die Wiederverwendung von Funktionen überall im Programm. Diese reinen Textdateien müssen in Binärdateien umgewandelt werden (mit der Endung *.o für Objektdatei), damit Ihr Computer damit umgehen kann und das Programm effizient arbeitet. | |||
Zunächst müssen Sie das Quellverzeichnis konfigurieren. Dazu ist es notwendig, daß Ihr Computer überprüft wird, um sicherzustellen, daß die Programme, die zum Kompilieren benötigt werden, und andere notwendige Ressourcen vorhanden und aktuell sind. So wie Scribus aus vielen kleinen Dateien besteht, benutzt es auch solche Dateien aus anderen Programmen wie CUPS, lcms und andere. Daher muß der Inhalt der Textdateien mit diesen externen Ressourcen verbunden werden. Nach der Überprüfung wird ein Skript geschrieben, das dem Compiler mitteilt, wie er Scribus zu kompilieren hat. Dieser Prozeß wird fehlschlagen, wenn etwas fehlt, und Cmake wird Fehlermeldungen anzeigen. | |||
Das Scribus-Team empfiehlt Cmake für diesen Konfigurationsprozeß. Es ist schnell, einfach anzuwenden und erleichtert es den Entwicklern, | |||
die Vorbereitungen – selbst Cmake braucht Anweisungen. Sie können Cmake auch verschiedene Parameter mitgeben, um die Konfiguration maßzuschneidern, etwa um zu bestimmen, wohin Scribus installiert wird. | |||
Der nächste Schritt ist das eigentliche Kompilieren. Dazu wird das Programm "make" verwendet. Um den Prozeß zu starten, geben Sie einfach <code>make</code> in der Kommandozeile ein, das war schon alles. Sie benötigen keine Root-Rechte, um zu kompilieren, und es ist im allgemeinen empfehlenswert, daß Sie nicht mit Root-Rechten arbeiten (unter anderem deshalb, weil Dateien, die Root erzeugt nur von diesem gelöscht werden können. Dadurch kann eine Aktualisierung der Quellen mit dem SVN-Befehl ohne Root-Rechte unmöglich werden). Das Kompilieren benötigt einiges an Computer-Ressourcen, vor allem wird der Prozessor belastet, so daß Ihr Computer etwas träge werden kann. Viele geben darum <code>make</code> ein und machen etwas anderes, als am PC zu arbeiten. | |||
Zum Schluß müssen Sie Scribus installieren, und zwar mit dem Kommando <tt>make install</tt>. Wenn Sie Scribus in das Standardverzeichnis installieren wollen, brauchen Sie Root-Rechte. Bei den meisten Linux-Distributionen kann man sich Root-Rechte mit dem Befehl <tt>su</tt> verschaffen, vorausgesetzt man kennt das Paßwort. Das Kommando '''sudo''' funktioniert auch: Geben Sie <tt>sudo make install</tt> ein. Sie können Cmake mit einem Parameter ausführen, das Sie Scribus in einem Verzeichnis installieren läßt, für das Sie Schreibrecht haben, so daß Sie ohne Root-Rechte auskommen. | |||
Näheres dazu finden Sie in den folgenden Abschnitten. | |||
==Kompilieren mit CMake in aller Kürze== | ==Kompilieren mit CMake in aller Kürze== |
Revision as of 22:34, 26 December 2007
Nachdem lange Zeit die klassischen Autotools verwendet wurden, haben sich die Scribus-Entwickler dazu entschlossen, CMake als Ersatz einzusetzen. Es ermöglicht eine flexiblere Konfiguration und ist gleichzeitig weniger komplex. Außerdem ist es kompatibel mit den Compilern unter Linux/UNIX, Windows und OS X.
Sie benötigen ein CMake-Version ab 2.4.3, um optimale Ergebnisse zu erzielen. Ältere Versionen werden nicht funktionieren!
Der erste Schritt: Laden Sie die aktuelle SVN-Version herunter
SVN ist das Versionskontrollsystem, das für Scribus verwendet wird. Lesen Sie diesen Artikel, um mehr Informationen zur Bedienung zu erhalten.
Alle SVN-Links befinden sich unter der folgenden Adresse:
Darüber hinaus gibt es die Adresse http://scribus.info/svn/Scribus/. Der Inhalt hier ist identisch, aber svn://scribus.info/Scribus/ ist normalerweise schneller. Der HTTP-Zugang könnte jedoch nützlich für diejenigen sein, die hinter paranoiden Firewalls oder Proxies sitzen.
Wenn Sie bisher mit -r <Version>
auf CVS zugegriffen haben, so verwenden Sie jetzt SVN-Pfad
:
Version | SVN-Pfad | Status | |
---|---|---|---|
Version135x | /trunk/Scribus | **instabil/Entwicklerversion** | |
Version13x | /branches/Version13x/Scribus | ||
Version133x | /branches/Version133x/Scribus | **stabile Version** | |
Version12x | /branches/Version12x/Scribus | **veraltet** |
Wenn Sie also SVN verwenden möchten, um eine aktuelle Version der stabilen Reihe zu erhalten, geben Sie folgendes ein.
svn co svn://scribus.info/Scribus/branches/Version133x/Scribus scribus133x
Um Ihre Arbeitskopie zu aktualisieren, müssen Sie später im Quellverzeichnis svn up
eingeben.
Weiterführende Hinweise zum Thema SVN im allgemeinen und zu Scribus-SVN im besonderen:
- Es gibt eine Online-Referenz zu SVN unter: http://svnbook.red-bean.com/nightly/en/index.html.
- Wenn Sie SVN installiert haben, können Sie Hilfe erhalten, indem Sie auf der Kommandozeile svn help eingeben.
- Siehe auch das Kapitel zur Installation in der Online-Dokumentation.
- Craig Ringer hat auf der Mailingliste erklärt, wie man SVN mit Scribus verwendet.
Dank Anduin.net (http://anduin.net/) werden die anonymen SVN-Repositorien täglich aktualisiert.
Weitere Informationen zum Herunterladen von Scribus:
Wenn Sie zum erstenmal kompilieren, sollten Sie sich von der Kommandozeile nicht abschrecken lassen. Kopieren Sie einfach die jeweils relevanten Zeilen nacheinander in das Kommandozeilenfenster.
Seien Sie vorsichtig:
- Anfänger sollten darauf achten, daß nur das letzte Kommando –
make install
– Root-Rechte benötigt. Für die übrigen Schritte reichen einfache Benutzerrechte.
Sie können Scribus auch in ein Verzeichnis installieren, für das Sie Schreibrechte haben. Siehe dazu die Option -DCMAKE_INSTALL_PREFIX, die weiter unten erklärt wird.
- Und falls Sie bereits eine Scribus-Version installiert haben, vergessen Sie nicht die Option
WANT_VERSIONING=1
. Sie können sie mittels-DWANT_VERSIONING=1
erzwingen.
Viel Glück!
Warum muß ich Scribus "kompilieren"?
Und was bedeutet eigentlich kompilieren?
Wenn Sie ans Kompilieren gehen, müssen Sie daran denken, daß das, was Sie heruntergeladen haben, eine große Sammlung von reinen Textdateien ist, die die Dateierweiterung *.c oder *.cpp tragen, womit C- bzw. C++-Dateien gekennzeichnet werden. Es sind deshalb so viele, damit die Softwareentwicklung einfacher wird und ermöglicht außerdem die Wiederverwendung von Funktionen überall im Programm. Diese reinen Textdateien müssen in Binärdateien umgewandelt werden (mit der Endung *.o für Objektdatei), damit Ihr Computer damit umgehen kann und das Programm effizient arbeitet.
Zunächst müssen Sie das Quellverzeichnis konfigurieren. Dazu ist es notwendig, daß Ihr Computer überprüft wird, um sicherzustellen, daß die Programme, die zum Kompilieren benötigt werden, und andere notwendige Ressourcen vorhanden und aktuell sind. So wie Scribus aus vielen kleinen Dateien besteht, benutzt es auch solche Dateien aus anderen Programmen wie CUPS, lcms und andere. Daher muß der Inhalt der Textdateien mit diesen externen Ressourcen verbunden werden. Nach der Überprüfung wird ein Skript geschrieben, das dem Compiler mitteilt, wie er Scribus zu kompilieren hat. Dieser Prozeß wird fehlschlagen, wenn etwas fehlt, und Cmake wird Fehlermeldungen anzeigen.
Das Scribus-Team empfiehlt Cmake für diesen Konfigurationsprozeß. Es ist schnell, einfach anzuwenden und erleichtert es den Entwicklern, die Vorbereitungen – selbst Cmake braucht Anweisungen. Sie können Cmake auch verschiedene Parameter mitgeben, um die Konfiguration maßzuschneidern, etwa um zu bestimmen, wohin Scribus installiert wird.
Der nächste Schritt ist das eigentliche Kompilieren. Dazu wird das Programm "make" verwendet. Um den Prozeß zu starten, geben Sie einfach make
in der Kommandozeile ein, das war schon alles. Sie benötigen keine Root-Rechte, um zu kompilieren, und es ist im allgemeinen empfehlenswert, daß Sie nicht mit Root-Rechten arbeiten (unter anderem deshalb, weil Dateien, die Root erzeugt nur von diesem gelöscht werden können. Dadurch kann eine Aktualisierung der Quellen mit dem SVN-Befehl ohne Root-Rechte unmöglich werden). Das Kompilieren benötigt einiges an Computer-Ressourcen, vor allem wird der Prozessor belastet, so daß Ihr Computer etwas träge werden kann. Viele geben darum make
ein und machen etwas anderes, als am PC zu arbeiten.
Zum Schluß müssen Sie Scribus installieren, und zwar mit dem Kommando make install. Wenn Sie Scribus in das Standardverzeichnis installieren wollen, brauchen Sie Root-Rechte. Bei den meisten Linux-Distributionen kann man sich Root-Rechte mit dem Befehl su verschaffen, vorausgesetzt man kennt das Paßwort. Das Kommando sudo funktioniert auch: Geben Sie sudo make install ein. Sie können Cmake mit einem Parameter ausführen, das Sie Scribus in einem Verzeichnis installieren läßt, für das Sie Schreibrecht haben, so daß Sie ohne Root-Rechte auskommen.
Näheres dazu finden Sie in den folgenden Abschnitten.
Kompilieren mit CMake in aller Kürze
Bitte beachten Sie, daß ein "Out-of-source-Build" empfohlen wird. Trotzdem ...
Wenn Sie sich im Scribus-Verzeichnis befinden:
/pfad/zu/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/pfad/zum/installationsverzeichnis
z. B. /usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs
Einige Optionen, welche die Scribus-CMake-Dateien kennen (es werden noch mehr hinzukommen!):
- WANT_DEBUG=1: Erstellt eine Debug-Version und verwendet -O0 -g3 statt -O2 (Dies ist momentan die Standardeinstellung und kann nur abgestellt werden, wenn Sie die Datei CMakeFiles.txt bearbeiten)
- WANT_CAIRO=1: Läßt CMake nach Cairo suchen und kompiliert damit anstatt mit LibArt_LGPL.
- WANT_LIBART=1 (Standardeinstellung in 1.3.3.x; in 1.3.5 nicht verfügbar): Läßt CMake nach LibArt_LGPL anstatt Cairo suchen und kompiliert es damit.
Wenn Sie also eine Debug-Version mit Cairo kompilieren wollen, dann sollte Ihre Eingabe in etwa so aussehen:
/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs -DWANT_CAIRO=1 -DWANT_DEBUG=1
Außerhalb des Quellverzeichnisses kompilieren ("Out-of-source-builds")
Einer der Vorteile von CMake ist die Möglichkeit, einen sogenannten "Out-of-source-build" durchzuführen. Was ist das? Er ermöglicht es Ihnen, eine Anwendung zu kompilieren, ohne daß irgend etwas in das Verzeichnis geschrieben wird, in dem sich die Quelltexte befinden. Das bedeutet, daß ihr Quellverzeichnis sauber bleibt, und zwar immer. Auf diese Weise lassen sich ihre Quellen schneller und einfacher aktuell halten, und Sie können mehrere Varianten aus dem gleichen Quelltext erzeugen.
Um Quelltexte auf diese Weise zu kompilieren, benötigen Sie ein neues Zielverzeichnis für die Installation. Angenommen, Ihre Quellen befinden sich in:
/home/username/scribuscmake/Scribus
Erstellen Sie folgendes Verzeichnis:
/home/username/scribuscmake/zielverzeichnis
Anstatt nun etwa
/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs
auszuführen, würden Sie statt dessen in das Zielverzeichnis wechseln und
/usr/local/bin/cmake ../Scribus -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs
Einfach!
Die Kompilierung abschließen
Wenn dieser Vorgang erfolgreich abgeschlossen ist, führen Sie einfach make && make install
aus.
Das auf CMake basierende Buildsystem ist noch sehr neu für Scribus, und es wird sich noch verändern und Verbesserungen benötigen. Bitte berichten Sie über Probleme auf der Mailingliste oder dem Bugtracker.
Die Liste der noch zu erledigenden Aufgaben für dieses Buildsystem ist noch lang. Sie enthält unter anderem:
- Die Überprüfung auf plattformübergreifende Funktionalität
- Die Überprüfung, ob es gleichermaßen unter verschiedenen Unix-Varianten funktioniert
- Die Überprüfung auf 64-Bit-Distributionen
- Unterstützung für Win32 und Mac OSX
Das Kompilieren schlägt bei installierten Qt4-Bibliotheken fehl
Systeme, auf denen Qt3 und Qt4 parallel installiert sind:
uic
und moc
aus Qt4 befinden sich im $PATH
, was dazu führt, daß das Kompilieren scheitert. So läßt sich das Problem lösen:
Entfernen Sie vorherige Konfigurationsoptionen aus dem Cache, indem Sie rm CMakeCache.txt
ausführen.
Ändern Sie dann die $PATH
-Variable, für mein Gentoo etwa:
export PATH=/usr/qt/3/bin/:$PATH
Rufen Sie dann cmake erneut auf:
/pfad/zu/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/pfad/zum/installationsverzeichnis
Einen Tarball zum Verteilen erstellen
Um einen Tarball zu erstellen, haben Sie bisher folgendes eingegeben: make dist
. Nun rufen Sie make package_source
oder /path/to/cpack -G TBZ2 --config CPackSourceConfig.cmake
auf, um ein Quellcode-Archiv zu erzeugen. CMake 2.4.1 unterstützt nur gzip (tar.gz
), aber bzip2 (tar.bz2
) ist mit der CVS-Version von CMake möglich.