SelfLinux Multimedia Video xine - Ein freier Video-Player Abschnitt 7 | SelfLinux-0.13.0

| xine - Ein freier Video-Player | Autor Formatierung 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. Anschließend 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