» SelfLinux » Multimedia » xine - Ein freier Video-Player » Abschnitt 7 SelfLinux-0.10.0
zurück   Startseite Kapitelanfang Inhaltsverzeichnis GFDL   weiter

SelfLinux-Logo
Dokument xine - Ein freier Video-Player - Abschnitt 7 Revision: 1.1.2.15
Autor:  Stephan Walter
Formatierung:  Torsten Hemm
Lizenz:  GFDL
 

7 Kompilieren (Build-Prozess)


7.1 Was benötige ich, um xine fehlerfrei zu kompilieren?

Sie benötigen eine offizielle und stabile Version von GCC. Verwenden Sie keine gepatchten GCC-Version, sonst werden Sie xine nicht korrekt kompilieren können (libmpeg2 kann mit pgcc nicht fehlerfrei kompiliert werden). Ausserdem benötigen Sie GNU make. Auf den meisten Linux-Systemen wird GNU make mit dem Befehl "make" aufgerufen, auf allen anderen Systemen müssen Sie "gmake" verwenden.



7.2 Wie kompiliere ich xine?


7.2.1 Einfache Übersetzungsanweisungen für Anfänger

Laden Sie die neusten TAR-Archive "xine-lib" und "xine-ui" herunter und folgen Sie den weiteren Anweisungen. Um die TAR-Archive zu entpacken, benutzen Sie tar xzvf xine-XXX.tar.gz Die folgenden Anweisungen werden xine für alle Benutzer zugänglich nach /usr/local installieren. Sie benötigen dafür auf den meißten Systemem root-Rechte. Entpacken Sie zunächst xine-lib, danach:

root@linux ~/xine-XXX# ./configure
root@linux ~/xine-XXX# make install

Stellen Sie sicher, dass /etc/ld.so.conf "/usr/local/lib" enthält, danach

root@linux ~/xine-XXX# ldconfig

Nun entpacken Sie xine-ui, danach:

root@linux ~/xine-XXX# ./configure
root@linux ~/xine-XXX# make install


7.2.2 Vollständige Übersetzungsanweisungen

Der Ablauf des Build-Prozesses ist bei allen Modulen identisch (siehe 2.1).

Zuerst müssen Sie xine-lib installieren. Wenn Sie es korrekt kompiliert UND installiert haben, können Sie xine-ui und/oder xine-plugin kompilieren.

Wenn Sie xine-lib nicht mit dem Standard-Verzeichnispräfix /usr/local/bin installiert haben haben, müssen Sie dafür sorgen, dass $prefix/bin in der PATH-Variable vorhanden ist und das der Linker die Bibliotheken in $prefix/lib finden kann. Anderenfalls wird das Erzeugen von Modulen, die xine-lib benötigen, fehlschlagen und Sie werden Fehlermeldungen bezüglich fehlender Module von xine-lib bekommen.

Verwenden Sie in der bash folgende Befehle, um die Verfügbarkeit sicherzustellen:

user@linux ~$ export PATH="$PATH:$prefix/bin"
user@linux ~$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$prefix/lib"

Wenn die Variable $prefix nicht gesetzt ist, müssen Sie sie in den obigen Befehlen durch den echten Pfad ersetzen. Und so kompilieren Sie xine schlussendlich: (Wie oben bereits bemerkt, gilt dieser Ablauf für alle Module von xine; siehe 2.1)

(nur notwendig, wenn Sie den Quellcode über CVS bezogen haben)

user@linux ~$ ./cvscompile.sh
user@linux ~$ ./configure
user@linux ~$ make
user@linux ~$ make install


7.2.3 Eigene RPM-Packete erzeugen (xine-lib, xine-ui)

Im Prinzip müssen Sie nur ein einziges Kommando ausführen, wenn Sie die Quellcode-tar-Dateien von der WWW-Seite heruntergeladen haben:

root@linux ~# rpm -ta DER_NAME_DES_TAR_ARCHIVES

Dies wird das Erzeugen der Binär-RPMs und Quellen-RPMs starten. Nach dem Übersetzen finden Sie das Binär-RPM in ihrem RPM-Binärverzeichnis, welches normalerweise /usr/src/RPM/RPMS/[IHRE_CPU_ARCHITEKTUR] ist.

Das Quellen-RPM wird in ihr RPM-Quelldateienverzeichnis geschrieben (normalerweise /usr/src/RPM/SRPMS/).

Falls Sie eine frische CVS-Version verwenden, müssen Sie zunächst folgendes ausführen, um ein tar-Archiv zu erzeugen, dass Sie dann wie oben beschrieben mit rpm -ta benutzen können: ./cvscompile.sh && make clean && make dist

Auf jeden Fall sollten Sie nicht vergessen, dass Sie xine-lib übersetzen und installieren müssen, bevor Sie mit xine-ui fortfahren.




7.3 Wie kann ich den Build-Prozess mit CFLAGS steuern?

Ja, Sie können mit der Variable GLOBAL_CFLAGS die Optionen für den Compiler setzen. Anschliessend müssen Sie configure erneut starten. Damit können Sie zusätzliche Pfade für Bibliotheken oder Include-Dateien angeben. Beispiel:

user@linux ~$ export GLOBAL_CFLAGS="-I/usr/include -L/home/guenter/xine_libs"


7.4 Gibt es für den AMD K7 optimierte Binaries?

Wenn Sie eine aktuelle Version von GCC haben (3.x), können Sie versuchen, xine mit "mehr" K7-Unterstützung zu kompilieren. Falls configure Ihren Prozessor oder Ihre GCC-Version nicht korrekt erkennt, können Sie mit der Variable xine_BUILD die Konfiguration explizit angeben, z.B.:

user@linux ~$ export xine_BUILD=k7-pc-linux-gnu
user@linux ~$ rm -f config.cache
user@linux ~$ ./cvscompile.sh

oder wenn Sie xine als Tarball bezogen haben:

user@linux ~$ ./configure
user@linux ~$ make
user@linux ~$ make install


7.5 xine-lib lässt sich nicht kompilieren


7.5.1 Das Paket xine-lib lässt sich überhaupt nicht kompilieren

Damit Sie xine-lib kompilieren können, benötigen Sie u.a. die zlib Bibliothek inklusive des Headers. Beides finden Sie normalerweise im Paket zlib-devel (nicht Bestandteil des xine Projekts).



7.5.2 Das Xv-Plugin lässt sich nicht kompilieren

Die Xv Bibliothek ist normalerweise nur in der Static-Version vorhanden. Einige Versionen von xine-lib benötigen allerdings die Shared-Version. Überprüfen Sie mit dem Befehl

user@linux ~$ ls /usr/X11R6/lib/libXv*

ob die Shared-Bibliothek vorhanden ist (erkennbar an der Endung ".so" oder ".so.1"). Falls nicht, und wenn Ihre Version von libtool älter als 1.4 ist (überprüfen mit "libtool --version"), können Sie die Shared-Bibliothek mit folgenden Befehlen erstellen:

user@linux ~$ ld --whole-archive -shared -o libXv.so.1 libXv.a
user@linux ~$ ln -s libXv.so.1 libXv.so
user@linux ~$ ldconfig

Nun können Sie das Xv-Plugin für xine kompilieren.




7.6 xine-ui lässt sich nicht kompilieren


7.6.1 Ich habe xine-lib installiert, aber xine-ui findet es nicht

Bitte lesen Sie (noch einmal) den Abschnitt über xine-lib Möglicherweise haben Sie etwas übersehen.

Überprüfen Sie, dass Sie $prefix/bin in der PATH Variable haben und dass der Linker die Bibliotheken in $prefix/lib finden kann. $prefix ist dasselbe Verzeichnis, in das Sie davor xine-lib installiert haben sollten (ja, xine-lib mit make install zu installieren wäre wirklich nicht schlecht...)




7.7 Läßt sich xine im Benutzerverzeichnis ohne root-Rechte installieren ?

Ja. Zuerst erzeugen Sie ein Unterverzeichnis, in dem Sie ihre private Software installieren wollen, zum Beispiel

user@linux ~$ mkdir ~/usr

Danach müssen Sie einige Umgebungsvariablen setzten - eventuell ist es sogar eine gute Idee, diese dauerhaft in Ihre ~/.bashrc oder ähnliches zu setzen:

~/.bashrc
 export PATH="$HOME/usr/bin:$PATH"
 export LD_LIBRARY_PATH="$HOME/usr/lib:$LD_LIBRARY_PATH"
 export CFLAGS="-I$HOME/usr/include -L$HOME/usr/lib -O3"
 export ACLOCAL_FLAGS="-I $HOME/usr/share/aclocal"
   

Nun können Sie die TAR-Archive entpacken, zum Beispiel in "~/usr/src" (ggf. mkdir ~/usr/src ausführen), und danach folgendes tun:

user@linux ~$ ./configure --prefix=$HOME/usr
user@linux ~$ make install



zurück   Seitenanfang Startseite Kapitelanfang Inhaltsverzeichnis GFDL   weiter