<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "kdesrc-build">
  <!ENTITY package "kdesdk">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % German "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY kdesrc-build "<application
>kdesrc-build</application
>">
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY git '<application
>Git</application
>'>
  <!ENTITY cmake '<application
>CMake</application
>'>
  <!ENTITY make '<application
>Make</application
>'>
  <!ENTITY ssh '<application
>SSH</application
>'>
  <!ENTITY cron '<application
>Cron</application
>'>
  <!ENTITY subversion '<application
>Subversion</application
>'>
  <!ENTITY sudo '<application
>Sudo</application
>'>
  <!ENTITY url '<acronym
>URL</acronym
>'>

  <!-- These define shortcut entities for some of the configuration options.
       Just add them as necessary.
  -->

  <!ENTITY configure-flags '<link linkend="conf-configure-flags"
>configure-flags</link
>'>
  <!ENTITY kdedir '<link linkend="conf-kdedir"
>kdedir</link
>'>
  <!ENTITY qtdir '<link linkend="conf-qtdir"
>qtdir</link
>'>
  <!ENTITY build-dir '<link linkend="conf-build-dir"
>build-dir</link
>'>
  <!ENTITY module-base-path '<link linkend="conf-module-base-path"
>module-base-path</link
>'>
  <!ENTITY override-url '<link linkend="conf-override-url"
>override-url</link
>'>
  <!ENTITY source-dir '<link linkend="conf-source-dir"
>source-dir</link
>'>
  <!ENTITY email-address '<link linkend="conf-email-address"
>email-address</link
>'>
  <!ENTITY email-on-compile-error '<link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
>'>
  <!ENTITY colorful-output '<link linkend="conf-colorful-output"
>colorful-output</link
>'>
  <!ENTITY tag '<link linkend="conf-tag"
>tag</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY do-not-compile '<link linkend="conf-do-not-compile"
>do-not-compile</link
>'>
  <!ENTITY checkout-only '<link linkend="conf-checkout-only"
>checkout-only</link
>'>
  <!ENTITY svn-server '<link linkend="conf-svn-server"
>svn-server</link
>'>
  <!ENTITY make-install-prefix '<link linkend="conf-make-install-prefix"
>make-install-prefix</link
>'>
  <!ENTITY niceness '<link linkend="conf-niceness"
>niceness</link
>'>
  <!ENTITY set-env '<link linkend="conf-set-env"
>set-env</link
>'>
  <!ENTITY libpath '<link linkend="conf-libpath"
>libpath</link
>'>
  <!ENTITY binpath '<link linkend="conf-binpath"
>binpath</link
>'>

  <!-- These define shortcut entities for some of the command line options.
       Just add them as necessary.
  -->
  <!ENTITY cmd-nice '<link linkend="cmdline-nice"
>--nice</link
>'>
  <!ENTITY cmd-ignore-modules '<link linkend="cmdline-ignore-modules"
>--ignore-modules</link
>'>
  <!ENTITY cmd-resume-from '<link linkend="cmdline-resume-from"
>--resume-from</link
>'>
  <!ENTITY cmd-resume-after '<link linkend="cmdline-resume-after"
>--resume-after</link
>'>
  <!ENTITY cmd-reconfigure '<link linkend="cmdline-reconfigure"
>--reconfigure</link
>'>
  <!ENTITY cmd-refresh-build '<link linkend="cmdline-refresh-build"
>--refresh-build</link
>'>
]>

<book lang="&language;">

<bookinfo>
<title
>Handbuch zum Skript &kdesrc-build;</title>

<authorgroup id="authors">
<author
><firstname
>Michael</firstname
><surname
>Pyne</surname
> <affiliation
><address
><email
>mpyne@kde.org</email
></address
></affiliation>
</author>
<author
><firstname
>Carlos</firstname
><surname
>Woelz</surname
> <affiliation
><address
><email
>carloswoelz@imap-mail.com</email
></address
></affiliation>
</author>


<othercredit role="translator"
><firstname
>Thomas</firstname
><surname
>Reitelbach</surname
><affiliation
><address
><email
>tr@erdfunkstelle.de</email
></address
></affiliation
><contrib
>Deutsche Übersetzung</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2006</year>
<year
>2007</year>
<year
>2008</year>
<year
>2009</year>
<year
>2010</year>
<holder
>Michael Pyne</holder>
</copyright>

<copyright>
<year
>2005</year>
<holder
>Carlos Woelz</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2010-01-30</date>
<releaseinfo
>1.12</releaseinfo>

<abstract>
<para
>Das Skript &kdesrc-build; kompiliert und installiert &kde; direkt aus den Quelltexten der &kde;-Projektarchive.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>git</keyword>
<keyword
>gitorious</keyword>
<keyword
>KDE-Entwicklung</keyword>
<!-- Older names for the software -->
<keyword
>kdesvn-build</keyword>
<keyword
>kdecvs-build</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Einführung</title>

<para
>Das Skript &kdesrc-build; hilft Benutzern bei der Installation von <ulink url="http://www.kde.org/"
>&kde;</ulink
> aus den <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
>- und <ulink url="http://gitscm.org/"
>&git;</ulink
>-Quelltextarchiven. </para>

<tip
><para
>Dieses Skript hiess früher kdesvn-build, daher werden Sie den Namen kdesvn-build möglicherweise noch im Internet oder in der Dokumentation finden.</para
></tip>

<para
>Dieses Handbuch beschreibt die folgenden Aspekte der Arbeitsweise von &kdesrc-build;: </para>

<itemizedlist>
<listitem
><para
>Wichtige <link linkend="features"
>Leistungsmerkmale</link
>.</para
></listitem>
<listitem
><para
>Ein <link linkend="getting-started"
>Überblick</link
> über die erforderlichen Schritte für einen erfolgreichen Start.</para
></listitem>
<listitem
><para
>Die Syntax und Optionen der <link linkend="configure-data"
>Einrichtungsdatei</link
>.</para
></listitem>
<listitem
><para
>Die <link linkend="cmdline"
>Optionen auf der Befehlszeile</link
>.</para
></listitem>
</itemizedlist>

<para
>Ausserdem wird erläutert, welche zusätzlichen Programme benutzt werden müssen, um alle nicht automatisch von &kdesrc-build; ausgeführten Aktionen auszuführen. </para>

</chapter>
<chapter id="getting-started">
<title
>Erste Schritte</title>

<para
>In diesem Kapitel wird erklärt, wie Sie mit Hilfe von &kdesrc-build; die entsprechenden Module aus dem &kde;-Quelltextarchiv herunterladen und kompilieren. Des weiteren werden einige Grundlagen zur &subversion;-Struktur des &kde;-Archivs und die nötigen Schritte vor dem Ausführen des Skripts erklärt. </para>

<para
>Alle in diesem Kapitel angesprochene Punkte werden detaillierter im Artikel <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>&kde;4 selbst kompilieren</ulink
> auf den <ulink url="http://techbase.kde.org/"
>&kde;-Techbase-Webseiten</ulink
> erklärt. Wenn Sie &kde; zum ersten Mal kompilieren, sollten Sie dieses Dokument lesen und bei Fragen als Referenz heranziehen. Darin finden Sie auch Informationen zu Paketierungs-Hilfsprogrammen, Kompilier-Voraussetzungen, häufigen Stolperfallen und allgemeinen Strategien zur Verwendung Ihrer neuen &kde;-Installation. </para>

<sect1 id="before-building">
<title
>Vorbereiten des Systems zum Kompilieren von &kde;</title>

<sect2 id="before-building-users">
<title
>Einrichten eines neuen Benutzerkontos</title>

<para
>Es wird empfohlen, für das Erstellen, die Installation und das Ausführen von &kde; einen eigenen Benutzer anzulegen. Das erfordert weniger Berechtigungen und verhindert Konflikte mit den von Ihrer Distribution installierten Paketen. Wenn Sie bereits &kde;-Pakete installiert haben, sollten Sie einen anderen Benutzer nur für das Kompilieren und Ausführen des neuen &kde; verwenden. </para>

<tip
><para
>Lassen Sie Ihr &kde; aus der Distribution unverändert, dann haben Sie immer noch ein funktionsfähiges Arbeitssystem, wenn ein selbsterstelltes &kde; aus welchen Gründen auch immer nicht stabil läuft. </para
></tip>

<para
>Sie können die Installation später immer noch systemweit als Systemverwalter durchführen. Das geht allerdings über den Rahmen dieses Handbuchs hinaus. Es wird davon ausgegangen, dass Sie wissen was Sie tun, wenn Sie eine systemweite Installation durchführen. Im Zweifelsfall sollten Sie die Dokumentation oder die Hilfeseiten für Ihre Distribution lesen, um die systemweite Installation richtig vorzubereiten und auszuführen. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Das System für das Kompilieren der &kde;-Quelltexte vorbereiten</title>

<para
>Bevor Sie &kdesrc-build; (oder eine andere Kompiliermethode) verwenden, müssen Sie die Entwickler-Werkzeuge und -Bibliotheken für &kde; installieren. Ein vollständige Liste finden Sie auf der <ulink url="http://techbase.kde.org/"
>KDE TechBase</ulink
>. </para>

<para
>Hier ist eine Liste einiger erforderlicher Entwicklungswerkzeuge:</para>
<itemizedlist>

<listitem
><para
>Als erstes brauchen Sie &cmake;. Die erforderliche Version hängt davon ab, welche Version von &kde; 4 erstellt werden soll. Genauere Informationen dazu finden Sie auf Techbase.</para
></listitem>

<listitem
><para
>Außerdem benötigen Sie das &subversion;-Programm mit Unterstützung für Secure HTTP (https). Um das zu überprüfen, geben Sie <userinput
><command
>svn <option
>--version</option
></command
></userinput
> in einer Konsole ein. In der Ausgabe dieses Befehls muss ein Modul genannt werden, das das Schema „https“ (Lese-/Schreibzugriff auf das SVN-Archiv) oder „svn“ (nur Lesezugriff über anonsvn.kde.org) behandelt.</para
></listitem>

<listitem
><para
>Wenn Sie &Qt; oder eines der anderen &kde;-Module erstellen möchten, deren Archiv sich auf <ulink url="http://gitorious.org/"
>Gitorious</ulink
> befindet, dann müssen Sie auch das <ulink url="http://gitscm.org/"
>Quelltextverwaltungssystem Git</ulink
> installieren.</para
></listitem>

<listitem
><para
>Sie brauchen eine C++-Entwicklungsumgebung, Als Compiler wird GCC Version 3.4 oder neuer empfohlen.</para
></listitem>

</itemizedlist>

<note
><para
>In den meisten Betriebssystem-Distributionen ist Methode enthalten, die erforderlichen Entwicklungswerkzeuge leicht zu installieren. Sehen Sie auf der TechBase-Seite <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Getting Started</ulink
> im Abschnitt <quote
>Required Packages from your Distribution</quote
> nach, ob hier bereits Anleitungen vorliegen.</para
></note>

<para
>Eine Ausnahme der erforderlichen Bibliotheken bildet die &Qt;-Bibliothek. &kdesrc-build; installiert im Regelfall eine Kopie von &Qt;, unabhängig davon, ob diese Bibliothek bereits installiert ist. Daher muss diese Bibliothek nicht von Ihnen installiert werden. Möchten Sie die Kopie von &Qt; nicht benutzen, sind folgende Schritte auszuführen:</para>

<itemizedlist>
<listitem>
  <para
>Entfernen Sie das Modul qt-copy aus der <link linkend="configure-data"
>Einrichtungsdatei</link
>. Es wird nicht benötigt und das spart Zeit beim Erstellen.</para>
</listitem>

<listitem>
  <para
>Ändern Sie die Einstellung von <link linkend="conf-qtdir"
>qtdir</link
> in Ihrer <link linkend="configure-data"
>Einrichtungsdatei</link
> auf die auf dem System installierte Version von &Qt; ab. Das entspricht normalerweise der Einstellung für $<envar
>QTDIR</envar
> auf Ihrem System.</para>
</listitem>

<listitem>
  <para
>Wenn &Qt; bisher noch nicht installiert ist, installieren Sie es einschließlich aller zugehörigen -dev oder -devel Pakete. Für &kde; 4 brauchen Sie mindestens &Qt; 4.6.</para>
</listitem>
</itemizedlist>

<para
>Einige der benötigten Pakete werden von den Distributoren in Bibliotheken, Programmdateien oder Werkzeuge und Entwickler-Pakete unterteilt. In diesen Fällen benötigen Sie wenigstens die Programmdateien und das Entwicklungs-Paket. Wenn Sie unsicher sind, installieren Sie am besten alle Pakete zu einem Programm. Die benötigen Bibliotheken sind abhängig von dem &kde;-Modul, welches Sie installieren möchten. Auf der <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4#Required_packages_from_your_distribution"
>&kde; TechBase</ulink
> finden Sie mehr Details über die einzelnen Hilfsprogramme und Techniken zur Installation der Abhängigkeiten. </para>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Einrichtung von &kdesrc-build;</title>

<sect3 id="get-kdesrc-build">
<title
>Installation von &kdesrc-build;</title>
<para
>Vielleicht haben Sie bereits eine Version des Skripts &kdesrc-build; auf Ihrem System installiert. Wenn nicht, kann es von der <ulink url="http://kdesrc-build.kde.org/"
>&kdesrc-build;-Webseite</ulink
> oder aus dem &kde;-Archiv heruntergeladen werden.</para>

<note
><para
>&kdesrc-build; ist im Modul kdesdk enthalten, dieses Modul wird oft bereits von den Distributionen installiert. Wenn Sie &kdesrc-build; heruntergeladen haben, überprüfen Sie, dass es auch tatsächlich verwendet wird. Dazu rufen Sie &kdesrc-build; mit der Option „--version“ auf.</para
></note>

<orderedlist>
<listitem
><para
>Die neueste passende Version von &kdesrc-build; können Sie von der <ulink url="http://kdesrc-build.kde.org/"
>&kdesrc-build;-Webseite</ulink
> herunterladen. Es handelt sich dabei um ein komprimiertes tar-Archiv, das mit &ark; oder dem Programm <command
>tar</command
> ausgepackt werden kann. Das Archiv enthält das neueste &kdesrc-build;-Skript und die beispielhafte Einrichtungsdatei <filename
>kdesrc-buildrc-sample</filename
>.</para
></listitem>

<listitem
><para
>Alternativ kann &kdesrc-build; auch aus dem Quelltextarchiv auf <ulink url="http://websvn.kde.org/trunk/KDE/kdesdk/scripts/"
>http://websvn.kde.org/trunk/KDE/kdesdk/scripts/</ulink
> bezogen werden. Dies ist der Ordner mit Skripten zum &kde;-Software-Entwicklungssystem. Klicken Sie auf den Eintrag <filename
>kdesrc-build</filename
>, damit kommen Sie auf eine Seite, auf der die neueste Version der Datei heruntergeladen werden kann. Speichern Sie diese Datei zusammen mit <filename
>kdesrc-buildrc-sample</filename
> auf der Festplatte.</para
></listitem>
</orderedlist>

<para
>Die Datei <filename
>kdesrc-build</filename
> muss ausführbar und in einem Ordner gespeichert sein, der in der Umgebungsvariablen <envar
>PATH</envar
> enthalten ist, damit das Skript beim Aufruf des Befehls gefunden bzw. nicht irrtümlich eine falsche Version benutzt wird.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Einstellungen der Einrichtungsdatei</title>

<para
>Obwohl eine <link linkend="configure-data"
>Einrichtungsdatei</link
> für &kdesrc-build; nicht erforderlich ist, kann damit die Arbeit erleichtert werden. In einer <link linkend="configure-data"
>Einrichtungsdatei</link
> kann eingestellt werden, welche Module installiert oder nicht installiert werden sollen. Mit der Standardeinstellung installiert &kdesrc-build; unter Verwendung von allgemeinen Installationsparametern ein vollständiges &kde;-System. Um dieses Verhalten an Ihre Anforderungen anzupassen, kann eine <link linkend="configure-data"
>Einrichtungsdatei</link
> verwendet werden. </para>

<para
>Die Einrichtungsdatei hat den Namen <filename
>.kdesrc-buildrc</filename
>. Die Datei sollte in Ihrem persönlichen Ordner (<filename class="directory"
>~/</filename
>) liegen und enthält alle benötigten Optionen und Einstellungen, Compiler-Optionen, den Speicherort der Quelldateien, das Installationsziel, die zu installierenden Module und so weiter. Die Voreinstellungen finden Sie in der Datei <filename
>kdesrc-buildrc-sample</filename
>, die Sie als <filename
>~/.kdesrc-buildrc</filename
> kopieren und dann bearbeiten können. </para>

<para
>Weitere Informationen zur Syntax der <link linkend="configure-data"
>Einrichtungsdatei</link
> können Sie in <xref linkend="configure-data"/> und <xref linkend="kdesrc-buildrc"/> nachlesen. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="configure-data">
<title
>Festlegen der Einstellungen</title>

<para
>Damit &kdesrc-build; funktioniert, sollten Sie die Datei <filename
>.kdesrc-buildrc</filename
> in Ihrem persönlichen Ordner haben, in der die allgemeinen Einstellungen festgelegt sind. </para>

<note
><para
>Es ist möglich, mehrere Einrichtungsdateien für &kdesrc-build; zu verwenden, das wird im Kapitel <xref linkend="kdesrc-buildrc"/> beschrieben. In diesem Handbuch wird davon ausgegangen, dass die Einstellungen in der Datei <filename
>~/.kdesrc-buildrc</filename
> gespeichert werden.</para
></note>

<para
>Benutzen Sie die Datei <filename
>kdesrc-buildrc-sample</filename
> als Vorlage und stellen Sie die allgemeinen Optionen und die Module ein, die Sie installieren möchten. </para>

<para
>Die Standardeinstellungen sind normalerweise bereits ausreichend, um &kde; zu erstellen. Folgende Einstellungen bieten sich zu Anpassung an: <itemizedlist>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>: Zum Festlegen der Ordner, in denen nach Befehlen gesucht wird. Entspricht der Umgebungsvariable <envar
>PATH</envar
>.</para
></listitem>

<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>: Der Zielordner, in den &kde; installiert wird. Als Voreinstellung wird <filename class="directory"
>~/kde</filename
> für eine benutzerweite Installation verwendet.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>: Der Pfad zur installierten Bibliothek &Qt;. In der Voreinstellung wird eine Version von &Qt; verwendet, die von &kdesrc-build; mit dem besonderen Modul qt-copy aus dem aktuellen Quelltext erstellt wird. (<filename class="directory"
>~/kdesrc/build/qt-copy</filename
>).</para>

<para
>Damit wird auch der Installationsordner für qt-copy festgelegt.</para
></listitem>

<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>: Die &url; von der die Quelltexte heruntergeladen werden. Dies kann von Entwicklern mit einem <ulink url="http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account"
>&kde;-&subversion;-Zugang</ulink
> genutzt werden.</para
></listitem>
</itemizedlist>
</para>

<para
>Nach den globalen Einstellungen folgt eine Liste von Modulen mit den Zeilen module ... end module am Anfang und Ende. Prüfen Sie, ob hier alle Module aufgeführt sind, die Sie installieren möchten. Mit den Voreinstellungen aus <filename
>kdesrc-buildrc-sample</filename
> erhalten Sie eine weitgehend vollständige &kde;-Installation. Speichern Sie Ihre Einstellungen in die Datei <filename
>.kdesrc-buildrc</filename
> in Ihrem persönlichen Ordner. </para>

<para
>Wenn Sie Feineinstellungen an <filename
>.kdesrc-buildrc</filename
> vornehmen möchten, lesen Sie bitte in <xref linkend="kdesrc-buildrc"/> die detaillierten Informationen über alle Einrichtungs-Optionen nach. </para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Das Skript &kdesrc-build; verwenden</title>

<para
>Sie können das Skript nun ausführen. Melden Sie sich in einem Terminal-Fenster als der Benutzer an, den Sie zum Kompilieren und Installieren des neuen &kde; verwenden möchten, und führen Sie das Skript aus: <screen
><prompt
>$</prompt
><command
>kdesrc-build</command
>
</screen>
</para>

<para
>Jetzt beginnt das Skript mit dem Herunterladen der Quelltexte und der Installation. Wenn Sie viele Module herunterladen und erstellen wollen, kann es vorkommen, das bei der ersten Kompilierung von &kde; Fehler auftreten. Das ist aber kein Problem. </para>

<para
>&kdesrc-build; protokolliert die Ausgabe jedes ausgeführten Befehls. In der Standardeinstellung werden die Protokolldateien in den Ordner <filename class="directory"
>~/kdesrc/log</filename
> geschrieben. Um die Ursache für den Fehler beim Erstellen eines Moduls im letzten &kdesrc-build;-Befehl zu finden, lesen Sie die Datei <filename class="directory"
>~/kdesrc/log/latest/<replaceable
>module-name</replaceable
>/error.log</filename
>.</para>

<para
>In dieser Datei finden Sie die Fehlermeldungen, mit denen das Kompilieren des Moduls fehlgeschlagen ist. Wurde der Fehler durch fehlende Softwarepakete verursacht, installieren Sie diese mit den zugehörigen Entwicklungspaketen (-dev). Dann versuchen Sie das Modul mit der Option <link linkend="cmdline-reconfigure"
>--reconfigure</link
> neu zu kompilieren.</para>

<para
>Wenn ein Kompilierfehler aufgetreten ist, ist die Ursache dafür vielleicht in den &kde;-Quelltexten. Warten Sie ein paar Tage, sollte der Fehler dann immer noch auftreten, schicken Sie eine E-Mail an die Mailingliste <email
>kde-devel@kde.org</email
> und berichten den Fehler.</para>

<para
>Weitere Hinweise über mögliche Fehler und deren Beseitigung wie auch allgemeine Tipps und Strategien zum Erstellen von &kde; finden Sie auf der Seite <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
> Building &kde; 4 from Source</ulink
>. </para>

<note
><para
>Weitere Informationen über die Protokolle von &kdesrc-build; finden Sie im Kapitel <xref linkend="kdesrc-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Einrichten der neuen &kde;-Umgebung</title>

<para
>Im Folgenden wird davon ausgegangen, dass Sie einen separaten Benutzer zum Kompilieren und Installieren von &kde; verwendet haben. Desweiteren wird davon ausgegangen, dass Sie bereits eine &kde;-Version installiert haben. Wenn dies der Fall ist, muss das neue &kde; Vorrang vor der alten Version erhalten. Bearbeiten Sie die Umgebungsvariablen entsprechend. </para>

<sect2 id="changing-profile">
<title
>Einstellungen des Anmeldungsprofils ändern</title>

<important
><para
>Die Datei <filename
>.bash_profile</filename
> enthält die Einstellungen zur Anmeldung für die von vielen &Linux;-Distributionen verwendete <application
>bash</application
>-Shell. Benutzen Sie eine andere Shell, müssen alle in diesem Abschnitt genannten Beispiele dafür angepasst werden.</para
></important>

<para
>Öffnen Sie die Datei <filename
>.bash_profile</filename
> in Ihrem persönlichen Ordner oder erzeugen Sie eine neue, falls sie noch nicht existiert. Am Ende der Datei fügen Sie folgendes ein: <programlisting>
QTDIR=(pfad zu qtdir)   # wie z. B. ~/kdesrc/build/qt-copy als Standard.
KDEDIR=(pfad zu kdedir) # wie z. B. ~/kde als Standard.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Überprüfen, ob LD_LIBRARY_PATH gesetzt ist.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
fi

export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH
</programlisting
> Wenn Sie das Module qt-copy nicht selbst bauen, sondern das in Ihrem System installierte &Qt; benutzen, dann fügen Sie dies ein: <programlisting
>KDEDIR=(path to kdedir)  # wie z. B. ~/kde als Standard.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Überprüfen, ob LD_LIBRARY_PATH gesetzt ist.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
fi

export KDEDIRS PATH LD_LIBRARY_PATH
</programlisting>
</para>

<para
>Wenn Sie keinen eigenen Benutzer verwenden, ändern Sie die Umgebungsvariable $<envar
>KDEHOME</envar
> in <filename
>.bash_profile</filename
> für die neue Umgebung. <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Create it if needed
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Falls das K-Menü später leer oder völlig überfüllt mit Programmen Ihrer Distribution sein sollte, müssen Sie unter Umständen die <acronym
>XDG</acronym
>-Umgebungsvariable in <filename
>.bash_profile</filename
> anpassen: <programlisting
>XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
export XDG_CONFIG_DIRS XDG_DATA_DIRS
</programlisting>

</para>
</note>

</sect2>
<sect2 id="starting-kde">
<title
>Starten von &kde;</title>

<para
>Nachdem jetzt die Einstellungen der Umgebungsvariablen für das richtige &kde; angepasst wurden, muss auch der richtige Befehl <command
>startkde</command
> benutzt werden. </para>

<para
>Öffnen Sie die Datei <filename
>.xinitrc</filename
> in Ihrem persönlichen Ordner. Erzeugen Sie sie, falls nötig. Fügen Sie die folgende Zeile hinzu: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>Für einige Distributionen ist es erforderlich, dies auch in die Datei <filename
>.xsession</filename
> in Ihrem persönlichen Ordner einzutragen. Dies gilt besonders, wenn grafische Anmeldungsmanager wie &kdm;,<application
>gdm</application
> oder <application
>xdm</application
> verwendet werden.</para>
</important>

<para
>Starten Sie nun Ihr neues &kde;. In &BSD; und &Linux; mit Unterstützung für virtuelle Terminals können Sie die Tastenkombination <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> benutzen, um zwischen den Terminals zu wechseln. Auf diese Weise können Sie mehrere Arbeitsumgebungen gleichzeitig ausführen. Die ersten sechs Terminals sind Text-Terminals, die folgenden sechs sind grafische Terminals. </para>

<para
>Falls beim Systemstart der grafische Anmeldungsmanager erscheint, können Sie Ihr neues &kde; dennoch verwenden, auch wenn es nicht in der Liste für die grafische Anmeldung aufgeführt ist. In den meisten Anmeldungsmanagern wie zum Beispiel &kdm; kann eine <quote
>benutzerdefinierte Sitzung</quote
> bei der Anmeldung gestartet werden. Mit dieser Option werden die Einstellungen für die Sitzung aus der Datei <filename
>.xsession</filename
> im persönlichen Ordner gelesen. Wenn Sie diese Datei bereits wie oben beschrieben geändert haben, sollte mit dieser Option Ihre neue &kde;-Installation starten.  </para>

<para
>Falls dies nicht funktioniert, gibt es noch eine weitere Möglichkeit zum Starten: Drücken Sie <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> um zu einem Text-Terminal zu gelangen. Melden Sie sich als der separate KDE-Benutzer an und geben Sie folgendes ein: </para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<tip>
<para
>Sie können das aus den Quelltexten installierte &kde; und das &kde; aus Ihrer Distribution gleichzeitig ausführen. Melden Sie sich als normaler Benutzer an und starten Sie das &kde;-System Ihrer Distribution. Drücken Sie dann <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (oder <keycap
>F1</keycap
>, <keycap
>F3</keycap
>, &etc;) und öffnen damit eine Textkonsole. Melden Sie sich als &kde;-&subversion;-Benutzer an und geben Sie ein:</para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<para
>Zurück zum &kde;-System des normalen Benutzers kommen Sie mit den Kurzwahltasten für diese Arbeitsumgebung. Das ist normalerweise <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, manchmal auch <keycap
>F6</keycap
> oder <keycap
>F8</keycap
>. Zum mit &kdesrc-build; kompilierten &kde; wechseln Sie mit der gleichen Tastenkombination und verwenden dabei nur die nächste F-Taste. Benutzen Sie zum Beispiel <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> zum Wechsel in das normale &kde;, dann drücken Sie <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
>, um wieder zurück zum &kdesrc-build;-&kde; zu kommen.</para>
</tip>

</sect2>
</sect1>

</chapter>

<chapter id="features">
<title
>Besondere Funktionen des Skripts</title>

<sect1 id="features-overview">
<title
>Übersicht der Funktionen</title>

<para
>&kdesrc-build; beinhaltet die folgenden Funktionen und Besonderheiten: </para>

<itemizedlist>

<listitem
><para
><link linkend="changing-verbosity"
>Ausgabemeldungen</link
> lassen sich in verschiedenen Stufen einstellen, von wenigen Meldungen bis zu vollständigen Meldungen für die Fehlersuche. </para
></listitem>

<listitem
><para
>&kdesrc-build; kann mit Unterstützung der <ulink url="http://kdesrc-build.kde.org/"
>&kdesrc-build;-Website</ulink
> und der &kde;-FTP-Server (FTP seit &kdesrc-build; Version 1.4) einige Module beschleunigt herunterladen. Wenn für diese Module bereits komprimierte Pakete auf der Webseite vorhanden sind, werden diese geladen und ausgepackt. </para>

<para
>Dies ist für Sie schneller und verringert die Last der kde.org-Server für anonymes &subversion;.</para>
</listitem>

<listitem
><para
>Um den Ablauf weiter zu beschleunigen, wird das Kompilieren eines Moduls sofort gestartet, wenn es vollständig heruntergeladen wurde. Dies funktioniert seit Version 1.6. </para
></listitem>

<listitem
><para
>Das Modul <link linkend="using-qt-copy"
>qt-copy</link
> kann ebenfalls heruntergeladen und erstellt werden, dabei werden alle Patches für Fehlerbehebungen und Optimierungen für qt-copy angewendet. </para
></listitem>

<listitem
><para
>&kdesrc-build; zeigt <link linkend="kdesrc-build-color"
>farbige Ausgaben</link
> an. </para
></listitem>

<listitem
><para
>&kdesrc-build; erfordert keine grafische Bedienungsoberfläche (<acronym
>GUI</acronym
>), Sie können &kde; ohne eine zusätzliche grafische Bedienungsoberfläche erstellen. </para
></listitem>

<listitem
><para
>Standardeinstellungen für alle Module wie Optionen zum Kompilieren und Konfigurieren. Diese Optionen können gleichfalls für einzelne Module angegeben werden.</para>

<para
>&kdesrc-build; verwendet <link linkend="kdesrc-build-std-flags"
>Standard-Parameter</link
>, das erspart die Eingabe und verhindert Tippfehler. </para
></listitem>

<listitem
><para
>&kdesrc-build; kann einen bestimmten <link linkend="using-branches"
>Zweig (branch) oder Tag</link
> oder auch eine vorgegebene <link linkend="conf-revision"
>Revision</link
> eines Moduls herunterladen. </para
></listitem>

<listitem
><para
>&kdesrc-build; kann automatisch für einen Quelltextordner das Archiv zum Herunterladen wechsenl, zum Beispiel von Zweig (branch) auf trunk. Das geschieht automatisch, wenn Optionen geändert werden, die auch die &url; des Archivs ändern. Es muss dazu aber die Befehlszeilenoption <link linkend="cmdline-src-only"
>--src-only</link
> verwendet werden, damit &kdesrc-build; den Wechsel durchführt. </para
></listitem>

<listitem
><para
>&kdesrc-build; kann ein <link linkend="partial-builds"
>Modul nur teilweise</link
> herunterladen, wenn Sie zum Beispiel nur ein Programm aus einem großen Modul benötigen. </para
></listitem>

<listitem
><para
>Das erste Herunterladen einiger Module kann durch &kdesrc-build; beschleunigt werden, indem automatisch komprimierte Archive -sofern vorhanden- von den &kde;-Spiegelservern heruntergeladen und als lokale Kopie des Subversionsarchivs eingerichtet werden. Damit wird Zeit und Bandbreite sowohl für Ihr System als auch für die &kde;-Server eingespart. </para
></listitem>

<listitem
><para
>Für Entwickler, die svn+ssh:// verwenden, <link linkend="ssh-agent-reminder"
>überprüft</link
> &kdesrc-build;, ob der Dienst <application
>ssh-agent</application
> lauft, damit es nicht zu wiederholten Passwortabfragen durch &ssh; kommt. </para
></listitem>

<listitem
><para
>Fehlerberichte können als <link linkend="email-reports"
>E-Mail</link
> an einen Benutzer gesendet werden. </para
></listitem>

<listitem
><para
>Der Ordner zum Erstellen kann <link linkend="deleting-build-dir"
>gelöscht</link
> werden, nachdem ein Modul installiert wurde, um Speicherplatz auf der Festplatte auf Kosten der Zeit zum erneuten Kompilieren einzusparen. </para
></listitem>

<listitem
><para
>Die von &kdesrc-build; benutzten Ordner können sogar für jedes einzelne Modul angepasst werden. </para
></listitem>

<listitem
><para
>&sudo; oder ein anderer benutzerdefinierter Befehl kann zur <link linkend="root-installation"
>Installation von Modulen</link
> benutzt werden, so dass &kdesrc-build; nicht mit den Rechten des Systemverwalters ausgeführt werden muss. </para
></listitem>

<listitem
><para
>&kdesrc-build; wird als Voreinstellung mit <link linkend="build-priority"
>reduzierter Priorität</link
> ausgeführt, so dass am Rechner auch dann noch gearbeitet werden kann, wenn gerade &kdesrc-build; ausgeführt wird. </para
></listitem>

<listitem
><para
>Unterstützt <link linkend="using-branches"
>Tags und Zweige (branches)</link
> in &kde;s &subversion;-Archiv. </para
></listitem>

<listitem
><para
>&kdesrc-build; verwendet bestimmte Techniken, um ein <link linkend="building-successfully"
>erfolgreiches Kompilieren</link
> zu gewährleisten. </para
></listitem>

<listitem
><para
>Das <link linkend="resuming"
>erneute Erstellen</link
> kann mit einem angegebenen Modul wieder aufgenommen werden. Es können bei der Ausführung auch <link linkend="ignoring-modules"
>einige Module ausgelassen</link
> werden. </para
></listitem>

<listitem
><para
>&kdesrc-build; kann direkt von der Befehlszeile aus <link linkend="partial-builds"
>Teile eines Moduls</link
> kompilieren. </para
></listitem>

<listitem
><para
>&kdesrc-build; zeigt den <link linkend="build-progress"
>Fortschritt</link
> beim Kompilieren mit &cmake; an und schreibt die Dauer des Kompilierens in das Protokoll. </para
></listitem>

<listitem
><para
>Automatisches Neu-Kompilieren von Modulen, die inkrementelles make verwenden (welches nach verschiedenen Arten von commits fehleranfällig ist). </para
></listitem>

<listitem
><para
>Die voreingestellten Optionen sind gut geeignet für die Installation von &kde; aus dem &subversion;-Archiv für einen einzelnen Benutzer. </para
></listitem>

<listitem
><para
>Benutzung der Tilde als Platzhalter in den Optionen. Beispielsweise ist folgender Befehl möglich: <programlisting
>qtdir ~/kdesrc/build/qt-copy</programlisting>
</para
></listitem>

<listitem
><para
>Erstellt automatisch ein System mit getrennten Ordnern für den Quelltext und das Kompilieren, damit bleibt der Quelltextordner unverändert. </para
></listitem>

<listitem
><para
>Es können sowohl globale Einstellungen für alle Module als auch spezifische Einstellungen für bestimmte Module vorgenommen werden. </para
></listitem>

<listitem
><para
>In manchen Fällen verlieren die autotools die Synchronisation mit dem Quell-Ordner, daher können Sie erzwingen, dass bestimmte Module vollständig neu kompiliert werden. Dazu müssen Sie im Quell-Ordner des fraglichen Moduls eine Datei namens .refresh-me anlegen oder &kdesrc-build; mit der Option <option
>--refresh-build</option
> aufrufen. </para
></listitem>

<listitem
><para
>Es können verschiedene Umgebungsvariablen benutzt werden, die den Kompiliervorgang beeinflussen. Dazu gehören unter anderem <envar
>KDEDIR</envar
>, <envar
>QTDIR</envar
>, <envar
>DO_NOT_COMPILE</envar
> und <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Befehls-Protokolle. Alle Protokolle werden durchnummeriert und mit einem Datums-Stempel versehen, sodass Sie pro Skript-Durchlauf ein Protokoll erhalten. Desweiteren wird mit jedem Skript-Durchlauf ein symbolischer Link namens latest erzeugt, der auf das jeweils letzte Protokoll verweist. </para
></listitem>

<listitem
><para
>Wenn Sie &kde; für einen Benutzer anstatt systemweit installieren (wofür Sie Systemverwalter-Rechte benötigen würden), können Sie das Skript zum Installieren verwenden. Das Skript wurde nicht auf Sicherheitsprobleme bei der Ausführung als Systemverwalter überprüft und benutzt häufig die Funktion <function
>system()</function
>, daher wird empfohlen, das Skript nicht als Systemverwalter auszuführen. </para
></listitem>

<listitem
><para
>Sie können <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> verwenden, um <userinput
><command
>make</command
> <option
>install</option
></userinput
> einen Befehl voranzustellen. Dies ist &eg; für die Verwendung von &sudo; nützlich. </para
></listitem>

<listitem
><para
>Sie können auch nur einzelne Teile von &kde; aus einem &subversion;-Modul herunterladen lassen. Beispielsweise könnten Sie nur <application
>taglib</application
> aus <application
>kdesupport</application
> herunterladen, oder nur <application
>K3b</application
> aus <application
>extragear/multimedia</application
>. Das Skript wird automatisch <application
>kde-common</application
> mit einbeziehen, falls dies zum Kompilieren nötig ist. </para
></listitem>

<listitem
><para
>Sie können alle Vorgänge <quote
>simulieren</quote
> anstatt sie wirklich ausführen zu lassen. Benutzen Sie dazu die Option <option
>--pretend</option
> oder <option
>-p</option
> und das Skript wird eine detaillierte Beschreibung aller Befehle ausgeben, die es ausführen würde, ohne tatsächlich etwas zu unternehmen. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesrc-build-logging">
<title
>Protokolle von &kdesrc-build;</title>

<sect2 id="logging-overview">
<title
>Übersicht der Protokollfunktionen</title>

<para
>Beim Protokollieren schreibt &kdesrc-build; die Ausgabe jedes Befehls bei der Ausführung in eine Datei. So können  bei einem Fehler die Protokolle nach der möglichen Ursache durchsucht werden.</para>

<sect3 id="log-directory-layout">
<title
>Ordnerlayout für Protokolle</title>

<para
>Protokolle werden immer in einem eigenen Ordner gespeichert. Dieser Ordner wird mit der Option <link linkend="conf-log-dir"
>log-dir</link
> angegeben, die Voreinstellung dafür ist <filename class="directory"
><symbol
>${source-dir}</symbol
>/log</filename
>. Dabei wird <symbol
>${source-dir}</symbol
> durch den Wert der Option <link linkend="conf-source-dir"
>source-dir</link
> ersetzt. Im weiteren Text wird für diesen Wert <symbol
>${log-dir}</symbol
> benutzt.</para>

<para
>Der Ordner <symbol
>${log-dir}</symbol
> hat weitere Unterordner, einen für jeden Ausführungszeitpunkt von &kdesrc-build;. Jeder Ordner wird mit dem Datum und einer fortlaufenden Zahl benannt. Wird &kdesrc-build; zum Beispiel am 26. Mai 2004 zum zweitenmal ausgeführt, lautet der Name des Ordners <filename
>2004-05-26-02</filename
>.</para>

<para
>Für einen leichteren Zugriff erstellt &kdesrc-build; eine Verknüpfung zu den Protokollen der letzten Ausführung mit dem Namen <filename class="directory"
>latest</filename
>. Daher sind die aktuellen Protokolle immer unter <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest</filename
> zu finden. </para>

<para
>Der Protokollordner für jede Ausführung von &kdesrc-build; enthält Unterordner, einen für jedes Modul, das erstellt wurde. Zusätzlich wird die Datei <filename
>build-status</filename
> angelegt, in der aufgeführt ist, welche Module erstellt bzw. nicht erstellt werden konnten.</para>

<note
><para
>Wenn ein Modul weitere Untermodule enthält, wie zum Beispiel extragear/multimedia, playground/utils oder KDE/kdelibs, dann wird dieses Ordnerlayout auch für die Protokollordner verwendet. Das Protokoll für die letzte Ausführung von &kdesrc-build; für das Modul KDE/kdelibs finden Sie in <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
>, nicht in <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>Im Protokollordner eines Moduls werden Dateien für jede Operation angelegt, die &kdesrc-build; ausführt. Aktualisiert &kdesrc-build; ein Modul, werden Dateien wie <filename
>svn-co.log</filename
> - wenn ein Modul das erste Mal heruntergeladen wird - oder <filename
>svn-up.log</filename
> - wenn das Modul aktualisiert wird - erstellt. Wird der Befehl <command
>configure</command
> ausgeführt, so wird das in der Datei <filename
>configure.log</filename
> protokolliert.</para>

<para
>Ist ein Fehler aufgetreten, finden Sie eine Erklärung der Ursache in einer dieser Dateien. &kdesrc-build; erstellt eine Verknüpfung von der Datei mit dem Fehlerprotokoll wie zum Beispiel <filename
>build-1.log</filename
> zu der Datei <filename
>error.log</filename
>.</para>

<para
>Um zu sehen, warum ein Modul bei der letzten Ausführung von &kdesrc-build; nicht erstellt werden konnte, sollten Sie daher als erstes die Datei <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>module-name</replaceable
>/error.log</filename
> begutachten. </para>

<tip
><para
>Wenn die Datei <filename
>error.log</filename
> leer ist, insbesondere nach einer Installation, dann ist wahrscheinlich kein Fehler aufgetreten. Einige Programme im &kde;-Erstellungssystem melden manchmal fälschlicherweise einen Fehler.</para>

<para
>Außerdem können manche Befehle die Ausgabeumleitung von &kdesrc-build; unter bestimmten Umständen umgehen, normalerweise beim ersten Herunterladen aus dem &subversion;-Archiv. Die Fehlerausgabe wird in diesem Fall nicht in die Protokolldatei geschrieben, sondern erscheint auf der &konsole; oder im Terminal, in dem &kdesrc-build; ausgeführt wird.</para>
</tip>

</sect3>
</sect2>
</sect1>

</chapter>

<chapter id="kdesrc-buildrc">
<title
>&kdesrc-build; einrichten</title>

<sect1 id="kdesrc-buildrc-overview">
<title
>Übersicht über die Einrichtung von &kdesrc-build;</title>

<para
>Für die korrekte Funktion benötigt das Skript eine Datei namens <filename
>.kdesrc-buildrc</filename
> in Ihrem persönlichen Ordner. Diese beschreibt unter anderem die KDE-Module, die Sie herunterladen und installieren möchten. </para>

<para
>Zuerst werden die globalen Einstellungen wie folgt festgelegt: </para>

<programlisting
>global
<replaceable
>option-name option-wert</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

<para
>Danach folgen eine oder mehrere Modul-Abschnitte, die wie folgt aussehen: </para>

<programlisting
>module <replaceable
>modul-name</replaceable>
<replaceable
>option-name option-wert</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>

<para
><replaceable
>modul-name</replaceable
> muss ein Modulname aus dem &kde;-&subversion;-Archiv sein (zum Beispiel kdelibs oder kdebase). Einige Optionen überschreiben die globalen Optionen, einige können zusätzlich zu globalen Optionen festgelegt werden und einige globale Optionen lassen sich gar nicht überschreiben. </para>

<para
>Im Folgenden sehen Sie eine Liste von häufig benutzten Optionen. Klicken Sie auf eine Option, um mehr darüber zu erfahren. Eine vollständige Liste aller Optionen finden Sie unter <xref linkend="conf-options-table"/>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>: Zum Herunterladen aus einem bestimmten Zweig (branch) anstelle von /trunk.</para
></listitem>
<listitem
><para
><link linkend="conf-build-dir"
>build-dir</link
>: Legt den Kompilier-Ordner fest.</para
></listitem>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
>: Legt fest, welche Parameter zur Konfiguration eines bestimmten Moduls mit &cmake; übergeben werden sollen.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
>: Legt fest, welche Parameter zur Konfiguration eines bestimmten Moduls benutzt werden sollen.</para
></listitem>
<listitem
><para
><link linkend="conf-cxxflags"
>cxxflags</link
>: Legt den Inhalt der Umgebungsvariable <envar
>CXXFLAGS</envar
> fest.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>: Legt den Zielordner für die &kde;-Installation fest.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kde-languages</link
>: Zum Herunterladen und Installieren von Übersetzungen.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>: Übergibt bestimmte Optionen an das Programm &make;.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>: Legt den Pfad zu &Qt; fest.</para
></listitem>
<listitem
><para
><link linkend="conf-set-env"
>set-env</link
>: Zum Einstellen einer Umgebungsvariablen.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>: Ändert den Pfad für heruntergeladene Quellen.</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>: Ändert den Server, von dem die Quellen heruntergeladen werden.</para
></listitem>
</itemizedlist>

</sect1>
<sect1 id="conf-options-table">
<title
>Tabelle der verfügbaren Einstellungsoptionen</title>

<para
>Es folgt eine Tabelle der verschiedenen Optionen mit folgenden Informationen:</para>

<itemizedlist>

<listitem
><para
>Der Name der Option</para
></listitem>

<listitem
><para
>Eine Beschreibung des Verhaltens von &kdesrc-build; beim Erstellen eines Moduls, wenn diese Option sowohl im globalen Abschnitt als auch im Abschnitt für das Modul in der <link linkend="configure-data"
>Einrichtungsdatei</link
> gesetzt ist..</para
></listitem>

<listitem
><para
>Zusätzliche Hinweise zum Zweck und zur Benutzung der Option.</para
></listitem>

</itemizedlist>

<table id="option-table">
<title
>Tabelle der Optionen</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Name der Option</entry>
<entry
>Modul -&gt; Globales Verhalten</entry>
<entry
>Anmerkungen</entry>
</row>
</thead>

<tbody>

<row>
<entry
>apidox</entry>
<entry
></entry>
<entry
><para
>Mit dieser Option wurde die API-Dokumentation der KDE-Module erstellt. Da dies in KDE 4 nicht mehr funktioniert, wurde diese Option in &kdesrc-build; 1.6.3 entfernt. Die API-Dokumentation finden Sie im Internet auf  <ulink url="http://api.kde.org/"
>kde.org</ulink
>. Zusätzlich kann die API-Dokumentation für KDE 4 mit einem Skript aus dem Ordner /scripts im Modul kdesdk lokal erstellt werden. Weitere Informationen dazu finden Sie auf der <ulink url="http://techbase.kde.org/Development/Tools/apidox"
>KDE TechBase</ulink
>. Für Module aus KDE 3 kann die API-Dokumentation immer noch manuell erstellt werden.</para>
</entry>
</row>

<row>
<entry
>apply-qt-patches</entry>
<entry
></entry>
<entry
>Diese Option wurde in &kdesrc-build; Version 1.10 entfernt. Um den gleichen Effekt zu erreichen, lesen Sie bitte die Informationen zu <xref linkend="using-qt-copy"/> und der Option <link linkend="conf-repository "
>repository</link
>.</entry>
</row>

<row id="conf-async">
<entry
>async</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Diese Option aktiviert den asynchronen Arbeitsmodus, in dem Quelltexte gleichzeitig heruntergeladen und die Module kompiliert werden, anstatt erst nach dem Laden des Quelltextes mit dem Kompilieren zu beginnen. Diese Option ist als Voreinstellung eingeschaltet, um sie abzuschalten, wird diese Option auf den Wert <replaceable
>false</replaceable
> gesetzt.</para>
<para
>Diese Option gibt es seit Version 1.6.</para
></entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option können Sie die Umgebungsvariable PATH für den Kompiliervorgang festlegen. Diese Option lässt sich nicht mit einer Modul-Option überschreiben. Die Voreinstellung ist die beim Start des Skripts gesetzte Umgebungsvariable $<envar
>PATH</envar
>. Diese Umgebungsvariable sollte die Pfade zu den notwendigen Entwicklungs-Werkzeugen beinhalten. Die Pfade <filename class="directory"
>$<envar
>KDEDIR</envar
>/bin</filename
> und <filename class="directory"
>$<envar
>QTDIR</envar
>/bin</filename
> werden automatisch hinzugefügt. Sie können auch die Tilde (~) für Pfadangaben verwenden.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option legen Sie fest, dass die Quellen aus einem bestimmten &kde;-Zweig anstelle von <replaceable
>trunk</replaceable
> heruntergeladen werden sollen. Um beispielsweise &kde; 4.5 herunterzuladen, stellen Sie die Option auf <replaceable
>4.5</replaceable
> ein.</para>
<para
>Wenn das Herunterladen eines Zweigs mit dieser Option fehlschlägt, müssen Sie möglicherweise die korrekte Adresse zum Herunterladen manuell eingeben. Verwenden Sie dazu die Optionen <link linkend="conf-module-base-path"
>module-base-path</link
> oder <link linkend="conf-override-url"
>override-url</link
>.</para>
<para
>Hinweis: Diese Option funktioniert auch mit Quelltextmodulen, die &git; anstatt &subversion; als Versionsverwaltungssystem benutzen</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Verwenden Sie diese Option zum Ändern des Ordners, in dem die Quellen kompiliert werden sollen. Sie können diese Option auf drei Arten verwenden: <orderedlist
> <listitem
><para
>Relativ zum &kde;-&subversion;-Quellordner (siehe die Option <link linkend="conf-source-dir"
>source-dir</link
>). Dies ist die Voreinstellung und dieser Modus wird automatisch verwendet, wenn Sie einen Ordner-Namen eingeben, der nicht mit einer Tilde (~) oder einem Schrägstrich (/) beginnt.</para
> <para
>Die Voreinstellung ist <filename class="directory"
>build</filename
>.</para
></listitem
> <listitem
><para
>Absoluter Pfad. Wenn Sie einen Pfad eingeben, der mit einem Schrägstrich (/) beginnt, so wird dieser Pfad wie eingegeben verwendet. Beispiel: <filename class="directory"
>/tmp/kde-obj-dir/</filename
>.</para
></listitem
> <listitem
><para
>Relativ zum persönlichen Ordner. Wenn Sie einen Pfad angeben, der mit einer Tilde (~) beginnt, so wird der Pfad als relativ zu Ihrem persönlichen Ordner angesehen. Dies funktioniert analog zu der Art und Weise, wie die Shell eine Tilde interpretiert. Beispiel: <filename class="directory"
>~/builddir</filename
> würde den Kompilier-Ordner auf <filename class="directory"
>/home/benutzer/builddir</filename
> einstellen.</para
></listitem
></orderedlist
> Diese Option kann für jedes Modul separat eingestellt werden. </entry>
</row>

<row id="conf-build-when-unchanged">
<entry
>build-when-unchanged</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option stellen Sie ein, ob &kdesrc-build; ein immer Modul erstellt, auch wenn der Quelltext nicht geändert wurde.</para>

<para
>Mit der Option <option
>build-when-unchanged</option
> gleich <replaceable
>true</replaceable
> erstellt &kdesrc-build; ein Modul immer neu, auch wenn der Quelltext dieses Moduls nicht geändert wurde. Dies ist die Voreinstellung, damit lassen sich Module meistens erfolgreich erstellen.</para>

<para
>Mit der Option <option
>build-when-unchanged</option
> gleich <replaceable
>false</replaceable
> wird ein Modul nur dann neu erstellt, wenn entweder der Quelltext geändert wurde oder das erneute Erstellen wahrscheinlich erforderlich ist. Mit dieser Einstellung sparen Sie Zeit, besonders wenn Sie &kdesrc-build; täglich oder noch häufiger ausführen.</para>

<important
><para
>Diese Funktion dient nur zur Optimierung. Wie viele Optimierungen kann es Probleme mit einer korrekten Installation geben. Änderungen in qt-copy oder kdelibs erfordern zum Beispiel das erneute Erstellen anderer Module, auch wenn deren Quelltext unverändert ist.</para
></important>
</entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit Hilfe dieser Option können Sie &subversion;-Quelltexte nacheinander herunterladen. Die Einstellung für diese Option sollte eine durch Leerzeichen getrennte Liste der herunterzuladenden Ordner sein. Zwar überschreibt diese Option die globale Version, es ist jedoch dennoch nicht sinnvoll, die Option global einzustellen. </para>

<para
>Beachten Sie, dass diese Einstellung bei Modulen aus &git;-Archiven wirkungslos ist. Der Grund dafür liegt in der Arbeitsweise des &git;-Quelltext- Verwaltungssystems.</para>

<para
>Ein Beispiel finden Sie unter <xref linkend="checking-out-parts"/>.</para
></entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Wird den globalen Optionen angefügt (nicht für qt-copy anzuwenden)</entry>
<entry
><para
>Mit Hilfe dieser Option können Sie die Parameter festlegen, die &cmake; für das jeweilige Modul übergeben werden. Wenn Sie diese Option global einstellen, wird sie für alle Module angewandt. Wenn Optionen für einzelne Module angegeben sind, werden sie nach den globalen Optionen eingefügt. Dadurch können &cmake;-Optionen für alle Module im globalen Abschnitt eingegeben werden.</para>

<para
>Diese Option wird nicht für qt-copy angewendet, da &cmake; dafür nicht benutzt wird. Verwenden Sie statt dessen die Option <link linkend="conf-configure-flags"
>configure-flags</link
>.</para>

<para
>Da diese Optionen direkt ohne weitere Bearbeitung an &cmake; übergeben werden, müssen Sie in der gleichen Form wie für &cmake; eingetragen werden. Zum Beispiel: </para>

<screen
>cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo
</screen>

<para
>Solange alle anderen Optionen richtig gesetzt sind, wird diese Option nicht benötigt und kann leer bleiben. &kdesrc-build; setzt alle <emphasis
>erforderlichen</emphasis
> Parameter für &cmake; automatisch auf den richtigen Wert.</para
></entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
>Wenn Sie diese Option auf <replaceable
>false</replaceable
> setzen, wird die farbige Ausgabe von &kdesrc-build; unterbunden. Die Voreinstellung ist <replaceable
>true</replaceable
>. Beachten Sie, dass &kdesrc-build; die Farbcodes nur auf ein Terminal ausgibt (wie beispielsweise xterm, &konsole; oder die normale &Linux;-Konsole). </entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit Hilfe dieser Option können Sie die Parameter festlegen, die dem Skript ./configure für das jeweilige Modul übergeben werden. Wenn Sie diese Option global einstellen, wird sie für alle Module angewandt. <emphasis
>Diese Option funktioniert nur für qt-copy</emphasis
>.</para>

<para
>Die Einstellungen für KDE 4 Module werden mit <link linkend="conf-cmake-options"
>cmake-options</link
> vorgenommen. </para>
</entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Wird der globalen Option angefügt</entry>
<entry
><para
>Mit dieser Option können Sie die Parameter für das Erstellen der Module festlegen.Diese Option wird hier angegeben und nicht einfach an <command
>configure-flags</command
> oder an <link linkend="conf-cmake-options"
>cmake-options</link
> mit angehängt, weil sie auch die Umgebungsvariable <envar
>CXXFLAGS</envar
> während des Kompilierens setzt.</para>

<para
>Beachten Sie, dass in &kde; 4 für jedes Modul, das &cmake; verwendet, die Option CMAKE_BUILD_TYPE auf den Wert  <quote
>none</quote
> eingestellt werden muss. Dazu dient die Option <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit dieser Option wird der Ordnername eines Moduls auf der Festplatte eingestellt. Das Modul extragear/network zum Beispiel kann mit dieser Option in extragear-network umbenannt werden. Das Trennzeichen für Ordner sollte nicht im Namen benutzt werden, dadurch gibt es Probleme mit den Optionen <link linkend="conf-build-dir"
>build-dir</link
> und <link linkend="conf-source-dir"
>source-dir</link
>. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
>Wenn Sie &ssh; zum Herunterladen der &subversion;-Quelltexte verwenden (zum Beispiel mit dem Protokoll svn+ssh), wird &kdesrc-build; überprüfen, dass Ihr SSH-Agent auch einige &ssh;-Identitäten verwalten kann. Auf diese Weise soll &ssh; daran gehindert werden, Sie andauernd zur Passworteingabe aufzufordern. Sie können diese Prüfung unterbinden, indem Sie die Option <option
>disable-agent-check</option
> auf <replaceable
>true</replaceable
> einstellen. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Verwenden Sie diese Option, um bestimmte Ordner aus einem Modul nicht zu erstellen. Die Namen dieser Ordner werden durch Leerzeichen getrennt.</para>

<para
>Beachten Sie, dass die Quellen zu den übersprungenen Programmen dennoch heruntergeladen werden. Um auch dies zu unterbinden, können Sie die Option <link linkend="conf-checkout-only"
>checkout-only</link
> verwenden. Geben Sie mit dieser Option nur die Ordner an, die Sie herunterladen möchten.</para>

<para
>Um zum Beispiel &juk; und &kscd; aus dem Modul kdemultimedia nicht zu erstellen, fügen Sie  <quote
>do-not-compile juk kscd</quote
> zu den Einstellungen für kdemultimedia hinzu.</para>

<para
>Ein Beispiel finden Sie unter <xref linkend="not-compiling"/>.</para>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Mit dieser Option können Sie die E-Mail-Adresse festlegen, die &kdesrc-build; als Absender verwenden soll, falls das Senden einer E-Mail nötig sein sollte. Sie können diese Option vernachlässigen, wenn Sie keine Funktionen benutzen, die E-Mails senden. (Diese Funktionen sind in der Voreinstellung deaktiviert.) </para>

<para
>Derzeit benötigt nur <link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
> diese Option.</para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Mit dieser Option können Sie die E-Mail-Adresse festlegen, an die eine Nachricht gesendet werden soll, falls sich ein Modul nicht kompilieren lässt. &kdesrc-build; wartet ab, bis alle Module bearbeitet wurden und sendet dann einen Sammelbericht über die fehlgeschlagenen Module per E-Mail. Es wird nur eine E-Mail gesendet, falls das Erstellen eines Moduls fehlschlägt. </para>

<para
>Bitte beachten Sie die Option <link linkend="conf-email-address"
>email-address</link
>, mit der die Absenderadresse für diese Funktion eingestellt wird. Als Voreinstellung ist keine Adresse eingetragen. </para>
</entry>
</row>

<row>
<entry
>inst-apps</entry>
<entry
></entry>
<entry
>Diese Option wurde in Version 1.10 entfernt. </entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Diese Option legt fest, dass ein Paket nach erfolgreichem Kompilieren installiert werden soll. Dies ist in der Voreinstellung eingeschaltet. Wenn Sie dieses Verhalten nicht wünschen, stellen Sie die Option in der <link linkend="configure-data"
>Einrichtungsdatei</link
> auf <replaceable
>false</replaceable
>. Sie können analog auch den Befehlszeilen-Parameter <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
> verwenden. </entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit dieser Option wird der Zielordner festgelegt, in den &kde; nach dem Kompilieren installiert wird. Die Voreinstellung ist <filename class="directory"
>~/kde</filename
>. Wenn Sie hier einen Ordner einstellen, für den Systemverwalter-Rechte benötigt werden, sollten Sie auch die Anmerkungen zur Option <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> lesen.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Mit dieser Option kann ausgewählt werden, welche Sprachpakete heruntergeladen und kompiliert werden. So kann &kde; mit Übersetzungen in Ihrer Sprache ausgeführt werden.</para>

<para
>Geben Sie alle Sprachen, die installiert werden sollen, in einer durch Leerzeichen getrennten Liste an. Für jede gewünschte Sprache ist der Sprachencode dafür einzutragen, den Sie auf der Seite <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
> finden. </para>

<para
>Es muss nur eine Sprache ausgewählt werden. Als Voreinstellung wird kein Sprachenpaket heruntergeladen. &kde; wird in amerikanischem Englisch angezeigt.</para>

<para
>Um zum Beispiel die französische Sprache zu installieren, wird für diese Option <userinput
><option
>kde-languages</option
> <replaceable
>fr</replaceable
></userinput
> eingetragen. Nach der Installation muss diese Sprache dann in den &systemsettings; als erste Sprache ausgewählt werden.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit dieser Option wird die Umgebungsvariable <envar
>LD_LIBRARY_PATH</envar
> für den Kompiliervorgang gesetzt. Sie können die Option für jedes Modul separat einstellen. In der Voreinstellung ist sie nicht gesetzt, aber die Pfade <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib</filename
> und <filename class="directory"
><envar
>$</envar
>QTDIR/lib</filename
> werden automatisch hinzugefügt. Sie können für Pfadangaben auch die Tilde (~) benutzen. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Diese Option wird zum Ändern des Ordners für Protokoll-Dateien des Skripts verwendet. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Geben Sie für diese Variable eine Liste mit Befehlen ein. Mehrere Befehle werden durch Leerzeichen getrennt. Die hier eingegebenen Befehle werden vor jedem Aufruf von <userinput
><command
>make</command
> <option
>install</option
></userinput
> ausgeführt. Dies ist hilfreich, wenn Sie für die Installation einiger Pakete Systemverwalter-Rechte benötigen und daher zum Beispiel &sudo; aufrufen müssen. Bitte seien Sie umsichtig im Umgang mit Systemverwalter-Rechten.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit Hilfe dieser Variablen können Sie Befehlszeilen-Parameter an <command
>make</command
> übergeben. Das kann beispielsweise bei Verwendung von <ulink url="http://distcc.samba.org/"
><application
>distcc</application
></ulink
> oder auf Systemen mit mehr als einem Prozessor nützlich sein.  </entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Stellen Sie diese Option auf <replaceable
>true</replaceable
>, um zu verhindern, dass ein Modul kompiliert wird. Es wird dennoch weiterhin aktualisiert, wenn Quellen aus dem &subversion;-Archiv heruntergeladen werden. Diese Option entspricht dem Befehlszeilen-Parameter <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Stellen Sie diese Option auf <replaceable
>true</replaceable
>, um zu verhindern, dass &kdesrc-build; ein Modul aktualisiert (und auch nicht kompiliert und installiert). Wenn Sie diese Option so verwenden, entspricht das im Grunde dem Auskommentieren - es wird völlig übergangen. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option können Sie den in &kdesrc-build; voreingestellten Pfad zu einem Modul übergehen. Das kann zum Beispiel verwendet werden, um für ein Modul einen besonderen Zweig oder eine als Tag vorhandene Version herunterzuladen. Bei der Suche nach dem richtigen Pfad kann Ihnen das <ulink url="http://websvn.kde.org/"
>&kde; WebSVN</ulink
> behilflich sein.</para>

<para
>Beachten Sie: &kdesrc-build; setzt den Pfad nach dem folgenden Schema zusammen: <filename class="directory"
><varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
></filename
>. </para>

<para
>Die Voreinstellung ist entweder <filename class="directory"
>trunk/<varname
>$module</varname
></filename
> oder <filename class="directory"
>trunk/KDE/<varname
>$module</varname
></filename
>, abhängig vom Namen des Moduls.</para>

<tip
><para
>Verwenden Sie stattdessen die Optionen <link linkend="conf-branch"
>branch</link
> oder <link linkend="conf-tag"
>tag</link
>, sofern möglich. </para
></tip>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
>Diese Option können Sie auf einen Wert zwischen 20 und 0 einstellen. Je höher die Zahl, desto niedriger ist die Laufzeit-Priorität für &kdesrc-build;, &ie; bei einer höheren Zahl ist das Programm „netter“. Die Voreinstellung ist 10. </entry>
</row>

<row id="conf-no-svn">
<entry
>no-svn</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Steht diese Option auf <replaceable
>true</replaceable
>, aktualisiert &kdesrc-build; nicht automatisch den Quelltext für dieses Modul, erstellt aber trotzdem das Modul, sofern dies nicht durch eine andere Option verhindert wird.</entry>
</row>

<row>
<entry
>no-rebuild-on-fail</entry>
<entry
></entry>
<entry
>Diese Option wurde in Version 1.10 entfernt, da dieses Verhalten wegen Fehlerbehebungen im zugrunde liegenden Erstellungssystem nicht mehr erforderlich ist.</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Wenn Sie diese Option einstellen, wird &kdesrc-build; den eingestellten Wert <emphasis
>unverändert</emphasis
> als Adresse an &subversion; übergeben. Sie können diese Option grundsätzlich verwenden, um eine bestimmte Programmversion herunterzuladen. Dann kann &kdesrc-build; allerdings nichts mit der Option <link linkend="conf-branch"
>branch</link
> anfangen. </entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit dieser Option wird festgelegt, in welchen Ordner die erstellten Module installiert werden. Als Voreinstellung wird <option
><link linkend="conf-kdedir"
>kdedir</link
></option
> verwendet. Mit dieser Option können Sie Module in einen anderen Ordner als die Bibliotheken der KDE-Plattform installieren. Damit benutzen Sie &kdesrc-build; nur zum Erstellen einzelner Programme, </entry>
</row>

<row id="conf-purge-old-logs">
<entry
>--purge-old-logs</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Diese Einstellung bestimmt, ob alte Protokollordner automatisch gelöscht werden. Der Standardwert ist <replaceable
>false</replaceable
>.</para>

<para
>Auch wenn diese Option nicht auf <replaceable
>true</replaceable
>gesetzt ist, können die alten Protokollordner mit diesem Befehl gelöscht werden:</para>

<command
>kdesrc-build --no-src --no-build --purge-old-logs <replaceable
>kdelibs</replaceable
></command>

<para
>In der oben genannten Befehlszeile kann jeder beliebige Modulname verwendet werden, nicht nur kdelibs.</para>
</entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Diese Option setzt die Umgebungsvariable <envar
>QTDIR</envar
> für den Kompiliervorgang. Sie können die Einstellung nicht für einzelne Module überschreiben. Wenn Sie diese Option nicht setzen, lautet die Voreinstellung <filename class="directory"
><symbol
>${source-dir}</symbol
>/build/qt-copy</filename
>, damit wird die mit &kde; ausgelieferte Version von qt-copy verwendet. Sie können die Tilde (~) verwenden. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Wenn Sie wenig Festplattenspeicher zur Verfügung haben, können Sie mit Hilfe dieser Option alle Kompilier-Ordner oder zusätzlich auch den Quelltext-Ordner nach der erfolgreichen Installation löschen lassen. </para>
<para
>Die möglichen Einstellungen für diese Option sind: <itemizedlist>
<listitem
><para
>none - Nichts wird gelöscht (dies ist die Voreinstellung).</para
></listitem>
<listitem
><para
>builddir - Kompilier-Ordner werden gelöscht, aber keine Quelltext-Ordner.</para
></listitem>
<listitem
><para
>all - Sowohl Kompilier- als auch Quelltext-Ordner werden gelöscht.</para
></listitem>
</itemizedlist>
</para>

<para
>Beachten Sie: Die Verwendung dieser Option kann negative Auswirkungen auf Ihre Internet-Bandbreite und die Gesamtdauer einer &kde;-Installation haben, weil &kdesrc-build; nicht mehr inkrementell kompilieren kann und die Pakete unter Umständen immer wieder neu herunterladen muss. Dies ist insbesondere der Fall, wenn Sie die Option auf <replaceable
>all</replaceable
> einstellen.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Diese Option wurde mit der Version 1.10 eingeführt. Damit wird das &git;-Archiv angegeben, aus dem der Quelltext heruntergeladen wird. Für &Qt; und qt-copy ist diese Option nötig, ebenso die verschiedenen &kde;-Module, deren Quelltext sich mittlerweile in &git;-Archiven befindet. </para
></entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Wird diese Option auf einen Wert größer 0 gesetzt, aktualisiert &kdesrc-build; das Modul auf genau diese &subversion;-Revision, auch wenn zusätzlich Optionen wie <link linkend="conf-branch"
>branch</link
> verwendet werden. Hat das Modul bereits diese Revision, wird es nicht weiter aktualisiert, bis diese Option geändert oder aus der Einrichtungsdatei entfernt worden ist.</entry>
</row>

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Ist diese Option auf <replaceable
>true</replaceable
> gesetzt, dann werden für das Modul auch die Tests erstellt und beim Erstellen mit ausgeführt. &kdesrc-build; zeigt dann einen einfachen Bericht über das Testergebnis an. Die hilft Entwicklern und anderen zu überprüfen, ob das System richtig eingerichtet ist.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Diese Option erwartet eine Liste mit durch Leerzeichen getrennten Werten. Der erste Wert ist die zu setzende Umgebungsvariable, die restlichen Werte sind der Inhalt der Variable. Wenn Sie beispielsweise die Umgebungsvariable <envar
>RONALD</envar
> auf McDonald setzen möchten, würden Sie diese Einstellung verwenden:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Das besondere an dieser Option ist, dass Sie sie mehrfach verwenden können, ohne dass die jeweils vorige set-env-Option im gleichen Abschnitt der <link linkend="configure-data"
>Einrichtungsdatei</link
> überschrieben wird. Auf diese Weise können Sie pro Modul und auch global mehrere Umgebungsvariablen setzen.</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Diese Option legt den Ordner auf Ihrer Festplatte fest, in dem die &kde;-&subversion;-Quellen gespeichert werden sollen. Wenn Sie die Option nicht setzen, lautet die Voreinstellung <filename class="directory"
>~/kdesrc</filename
>. Sie können für diese Option die Tilde (~) als Abkürzung für Ihren persönlichen Ordner benutzen. </entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Setzen Sie diese Option auf <replaceable
>true</replaceable
>, wenn &kdesrc-build; beendet werden soll, sobald beim Kompilieren oder Installieren ein Fehler auftritt. Diese Einstellung ist in der Voreinstellung ausgeschaltet. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option können Sie den zu verwendenden &subversion;-Server festlegen. Die Voreinstellung ist der Server für anonymes &subversion; <filename
>svn://anonsvn.kde.org/</filename
>.</para>
<note
><para
>KDE-Entwickler sollten hier das &subversion;-Archiv benutzen, das Ihnen mit dem Entwickler-Zugang mitgeteilt wurde, nicht das anonyme Archiv. </para
></note>
</entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Benutzen Sie diese Option, um eine bestimmte Version eines Moduls herunterzuladen.</para>
<para
><emphasis
>Hinweis:</emphasis
> Im Regelfall ist es sinnvoller, diese Option <emphasis
>nicht</emphasis
> zu benutzen. Fertige &kde;-Versionen können üblicherweise als Tar-Archiv von der <ulink url="ftp://ftp.kde.org/"
>&kde;-FTP-Seite</ulink
> oder <ulink url="http://download.kde.org/download.php"
>einem der Softwarespiegelserver</ulink
> heruntergeladen werden.</para>
</entry>
</row>

<row>
<entry
>use-cmake</entry>
<entry
></entry>
<entry
>Diese Option wurde in &kdesrc-build; Version 1.4 entfernt, da alle &kde; 4 Module &cmake; erfordern. Die Verwendung von &cmake; für andere Module ist nicht möglich. </entry>
</row>

<row id="conf-use-idle-io-priority">
<entry
>use-idle-io-priority</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
>Mit dieser Option, die es in &kdesrc-build; seit der Version 1.12 gibt, wird die Auslastung der Ein-Ausgabe zum Beispiel zur Festplatte verringert. Damit kann das Verhalten des Systems auf Benutzeraktionen spürbar verbessert werden, die Laufzeit von &kdesrc-build; wird nur unwesentlich verlängert. In der Standardeinstellung ist diese Option deaktiviert. Setzen Sie diese Option auf <replaceable
>true</replaceable
>, um die Ein-/Ausgabe zur Festplatte weniger auszunutzen. </entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Diese Option wurde entfernt, sie ist wegen des verbesserten Erstellungssystem für &Qt; nicht mehr erforderlich. </entry>
</row>

<row>
<entry
>use-stable-kde</entry>
<entry
></entry>
<entry
><para
>Diese Option wurde in Version 1.10 entfernt. Diese Version unterstützt nur noch KDE 4, damit ist diese Option wirkungslos. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

<chapter id="cmdline">
<title
>Befehlszeilen-Parameter und Umgebungsvariablen</title>

<sect1 id="supported-envvars">
<title
>Unterstützte Umgebungsvariablen</title>

<para
>&kdesrc-build; verwendet keine Umgebungsvariablen. Falls Sie welche für den Kompilier- oder Installationsvorgang benötigen, lesen Sie bitte die Hinweise für die Option <link linkend="conf-set-env"
>set-env</link
>. </para>

</sect1>

<sect1 id="supported-cmdline-params">
<title
>Unterstützte Befehlszeilenparameter</title>

<para
>Das Skript kennt die folgenden Befehlszeilen-Parameter: </para>

<variablelist>

<varlistentry id="cmdline-async">
<term
><parameter
>--async</parameter
></term>
<listitem
><para
>Aktualisiert den Quelltext und kompiliert gleichzeitig im <link linkend="conf-async"
>asynchronen Modus</link
>. Dies ist die Voreinstellung, daher muss diese Option nur angegeben werden, wenn sie in der Einrichtungsdatei abgeschaltet wurde. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-help">
<term
><parameter
>--help</parameter
></term>
<listitem
><para
>Zeigt eine kurze Hilfe für dieses Skript an. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><parameter
>--version</parameter
></term>
<listitem
><para
>Zeigt die Programmversion an. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><parameter
>--author</parameter
></term>
<listitem
><para
>Zeigt Kontaktinformationen zum Autor des Skripts an. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><parameter
>--color</parameter
></term>
<listitem
><para
>Aktiviert die farbige Darstellung der Ausgabe. Dies ist die Voreinstellung für interaktive Terminals. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>wert</replaceable
></parameter
></term>
<listitem
><para
>Dieser Wert bestimmt die Priorität der CPU des Rechners, die von &kdesrc-build; angefordert wird und sollte einen Wert zwischen 0 und 20 haben. 0 entspricht der höchsten Priorität und am wenigsten <quote
>nett</quote
>, 20 entspricht der niedrigsten Priorität. Als Standard benutzt &kdesrc-build; den Wert 10. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><parameter
>--no-async</parameter
></term>
<listitem
><para
>Deaktiviert den <link linkend="conf-async"
>asynchronen Modus</link
>. So werden erst alle Module aktualisiert, ehe mit dem Erstellen begonnen wird. Insgesamt dauert damit die Ausführung länger, wenn aber IPC-Fehler bei der Ausführung von &kdesrc-build; auftreten, verwenden Sie diese Option und berichten den <ulink url="http://bugs.kde.org/"
>Fehler</ulink
>.  </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><parameter
>--no-color</parameter
></term>
<listitem
><para
>Deaktiviert die farbige Darstellung der Ausgaben. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (oder <parameter
>-p</parameter
>)</term>
<listitem
><para
>&kdesrc-build; simuliert das Aktualisieren der Quelltexte und das Erstellen, aber ohne diese Aktionen tatsächlich auszuführen. Stattdessen werden alle simulierten Aktionen, d. h. die auszuführenden Befehle und Aktionen protokolliert.</para>

<para
>Hinweis: Einfache Befehle, die nur Informationen wie zum Beispiel Informationen über Dateien einlesen, können immer noch ausgeführt werden, damit das Protokoll auch zutreffend wird. Die Ausführung von Befehlen, die nur Daten lesen, ist zum Beispiel nötig, um zu prüfen, ob der Quelltext heruntergeladen oder aktualisiert werden muss.  </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><parameter
>--quiet</parameter
> (oder <parameter
>-q</parameter
>)</term>
<listitem
><para
>Reduziert die Ausgaben auf der Konsole auf grundlegende Informationen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><parameter
>--really-quiet</parameter
></term>
<listitem
><para
>Nur Warnungen und Fehler ausgeben. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><parameter
>--verbose</parameter
> (oder <parameter
>-v</parameter
>)</term>
<listitem
><para
>Es werden ausführliche Ausgaben erzeugt, Sie können den genauen Ablauf verfolgen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (oder <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Aktualisiert nur den Quelltext. Die Option <parameter
>--svn-only</parameter
> wird nur noch unterstützt, damit auch ältere Skripte noch funktionieren. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><parameter
>--build-only</parameter
></term>
<listitem
><para
>Führt nur den Kompiliervorgang durch. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><parameter
>--ignore-modules</parameter
></term>
<listitem
><para
>Alle auf diese Option folgenden Module auf der Befehlszeile werden nicht aktualisiert oder erstellt. Diese Option ist dann sinnvoll, wenn fast alle Module in Ihrer <link linkend="configure-data"
>Einstellungsdatei</link
> erstellt werden sollen und nur einige wenige ausgelassen werden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (or <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Überspringt das Aktualisieren der Quelltexte vom &subversion;-Server. Der Parameter <parameter
>--no-svn</parameter
> wird nur noch zur Kompatibilität mit älteren Versionen des Skripts unterstützt. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><parameter
>--no-build</parameter
></term>
<listitem
><para
>Den Kompiliervorgang überspringen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><parameter
>--no-install</parameter
></term>
<listitem
><para
>Pakete nicht automatisch installieren, nachdem sie kompiliert wurden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build-when-unchanged">
<term
><parameter
>--no-build-when-unchanged</parameter
></term>
<term
><parameter
>--force-build</parameter
></term>
<listitem
><para
>Mit dieser Option wird das Überspringen von Modulen, eine Optimierung, die mit  <link linkend="conf-build-when-unchanged"
>build-when-unchanged</link
> festgelegt wird, ausdrücklich verhindert. Diese Option ist dann sinnvoll, wenn das &kdesrc-build; Module erstellen soll, weil Sie Änderungen vorgenommen haben, die &kdesrc-build; nicht erkennt.</para>

<para
><parameter
>--force-build</parameter
> hat genau die gleiche Funktion, diese Option lässt sich vielleicht leichter merken.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><parameter
>--debug</parameter
></term>
<listitem
><para
>Aktiviert den Modus zur Fehlersuche. Dies bedeutet, dass alle Ausgaben auf der Standardausgabe ausgegeben und zusätzlich im Protokoll abgelegt werden. Desweiteren sind die meisten Funktionen wesentlich <quote
>gesprächiger</quote
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><parameter
>--no-rebuild-on-fail</parameter
></term>
<listitem
><para
>Es wird nicht versucht, ein Modul nach einem Fehler erneut zu kompilieren. Es werden grundsätzlich keine Module neu kompiliert, bei denen es bereits einen Fehler beim Kompilieren gegeben hat. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><parameter
>--refresh-build</parameter
></term>
<listitem
><para
>Aktualisiert das Erstellungssystem und beginnt den Kompiliervorgang von vorne. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><parameter
>--reconfigure</parameter
></term>
<listitem
><para
>Führt die Befehle <command
>cmake</command
> (für &kde;-Module) oder <command
>configure</command
> (für &Qt;) nochmal aus, ohne den Erstellungsordner zu löschen. Diese Option ist normalerweise nicht erforderlich, da &kdesrc-build; erkennt, wenn wichtige Optionen geändert wurden, und dann das Erstellen erneut startet. Diese Option ist in <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
> automatisch enthalten. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><parameter
>--resume-from</parameter
></term>
<listitem
><para
>Mit dieser Option wird das Erstellen mit dem angegebenen Modul fortgesetzt, das als nächste Option auf der Befehlszeile angegebenen ist. Diese Option schließt automatisch <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
> ein. Sie sollten keine weiteren Modul-Namen auf der Befehlszeile übergeben. </para>
<para
>Siehe auch <xref linkend="cmdline-resume-after"/> und <xref linkend="resuming-failed"/>. Diese Befehlszeilenoption sollten Sie benutzen, wenn Sie den Fehler beim Erstellen beseitigt haben und mit &kdesrc-build; das Erstellen fortsetzen möchten.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-after">
<term
><parameter
>--resume-after</parameter
></term>
<listitem
><para
>Mit dieser Option wird das Erstellen mit dem als nächste Option auf der Befehlszeile angegebenen Modul fortgesetzt. Diese Option schließt automatisch <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
> ein. Sie sollten keine weiteren Modul-Namen auf der Befehlszeile übergeben. </para>
<para
>Siehe auch <xref linkend="cmdline-resume-after"/> und <xref linkend="resuming-failed"/>. Diese Befehlszeilenoption sollten Sie benutzen, wenn Sie den Fehler beim Erstellen beseitigt und auch das betreffende Modul manuell erstellt und installiert haben und mit &kdesrc-build; das Erstellen mit dem nächsten Modul fortsetzen möchten.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><parameter
>--rc-file</parameter
></term>
<listitem
><para
>Der auf diese Option folgende Parameter ist die Einrichtungsdatei, aus der die Optionen eingelesen werden sollen. Die Voreinstellung für diesen Parameter ist <filename
>kdesrc-buildrc</filename
>. Diese Datei wird im aktuellen Ordner gesucht. Ist diese Datei nicht vorhanden wird die Datei <filename
>~/.kdesrc-buildrc</filename
> gelesen. Siehe auch <xref linkend="kdesrc-buildrc"/>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><parameter
>--run</parameter
></term>
<listitem
><para
>Diese Option interpretiert den nächsten Parameter auf der Befehlszeile als Programm, das auszuführen ist. &kdesrc-build; beendet erst das Einlesen der Einrichtungsdatei, aktualisiert die Umgebungsvariablen und führt dann das Programm aus.</para>

<para
>Damit lässt sich keine neue Shell mit den Umgebungsvariablen von &kdesrc-build; starten, da interaktive Shells normalerweise mindestens einen Teil der Umgebungsvariablen wie <envar
>PATH</envar
> und <envar
>KDEDIRS</envar
> beim Startvorgang zurücksetzen. </para>

<tip
><para
>Möchten Sie die von &kdesrc-build; benutzten Umgebungsvariablen sehen, geben Sie den Befehl <command
>printenv</command
> ein.</para>
<informalexample>
<screen
>$ <command
>kdesrc-build</command
> <parameter
>--run</parameter
> <parameter
>printenv</parameter>
KDE_SESSION_VERSION=4
SDL_AUDIODRIVER=alsa
LANGUAGE=
XCURSOR_THEME=Oxygen_Blue
LESS=-R -M --shift 5
QMAIL_CONTROLDIR=/var/qmail/control
... etc.
</screen>
</informalexample
></tip>
</listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><parameter
>--prefix=&lt;/pfad/zu/kde&gt;</parameter
></term>
<listitem
><para
>Ermöglicht Ihnen, den Ordner zu wählen, in den &kde; installiert wird. Diese Option schließt automatisch <link linkend="cmdline-reconfigure"
><parameter
>--reconfigure</parameter
></link
> ein, aber die Option <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
> kann immer noch erforderlich sein. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>Mit dieser Option wird &kdesrc-build; eine vorgegebene Revisionsnummer für jedes Modul herunterladen. Damit werden alle Einstellungen der  Optionen <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> oder <link linkend="conf-revision"
>revision</link
> für diese Module überschrieben.</para>

<para
>Diese Option sollten Sie nicht mehr verwenden, Sie wird nur noch unterstützt, damit ältere Skripte noch funktionieren </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><parameter
>--build-system-only</parameter
></term>
<listitem
><para
>Mit dieser Option bricht &kdesrc-build; das Erstellen eines Moduls direkt vor der Ausführung des Befehls <command
>make</command
> ab. Diese option wird nur zur Kompatibilität mit älteren Versionen des Skripts unterstützt. Beim aktuellen Erstellungssystem für &kde; ist diese  Option nicht mehr nötig. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><parameter
>--install</parameter
></term>
<listitem
><para
>Wenn dies der einzige Befehlszeilen-Parameter ist, wird versucht, alle Module zu installieren, die in der Datei <filename
>log/latest/build-status</filename
> aufgelistet sind. Wenn Sie nach <option
>--install</option
> weitere Parameter angeben, werden diese als Module interpretiert, die installiert werden sollen, auch wenn diese Module beim letzten Mal nicht erstellt werden konnten. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-purge-old-logs"
><term
><parameter
>--purge-old-logs</parameter
></term>
<listitem
><para
>Mit dieser Einstellung löscht &kdesrc-build; nicht mehr benötigte Protokollordner nach dem Erstellen. Damit wird Platz auf der Festplatte gespart. Es werden alle Protokollordner gelöscht, die keine Verknüpfung von <filename
>log/latest</filename
> enthalten. Dies ist in der Voreinstellung nicht eingeschaltet. Weitere Informationen um diese Einstellung als Standard zu verwenden, finden Sie unter der Option <link linkend="conf-purge-old-logs"
>purge-old-logs</link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Mit dieser Option geben Sie &kdesrc-build; an, für ein Modul immer das &subversion;-Archiv statt des komprimierten Archivs herunterzuladen. </para>

<note
><para
>Komprimierte Archive sind <emphasis
>tatsächlich</emphasis
> &subversion;-Archive. Diese Option ist normalerweise nicht erforderlich, sie sollte nur bei Problemen mit dem Herunterladen benutzt werden.</para
></note>
</listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><parameter
>--&lt;option-name&gt;=</parameter
></term>
<listitem
><para
>Dies können Sie verwenden, um eine Option in Ihrer <link linkend="configure-data"
>Einrichtungsdatei</link
> für einzelne Module zu überschreiben. Beispiel: <userinput
><parameter
>--log-dir=<filename class="directory"
><replaceable
>/pfad/zu/ordner</replaceable
></filename
></parameter
></userinput
> würde die Option <link linkend="conf-log-dir"
>log-dir</link
> überschreiben. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><parameter
>--&lt;modul-name&gt;,&lt;option-name&gt;=</parameter
></term>
<listitem
><para
>Mit dieser Option können Einstellungen aus der <link linkend="configure-data"
>Einrichtungsdatei</link
> für ein einzelnes Module überschrieben werden. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Alle weiteren Parameter werden als Modul-Namen interpretiert, die aktualisiert oder kompiliert werden sollen. Verwechseln Sie Kompilieren nicht mit Installieren. </para>

</sect1>

</chapter>

<chapter id="using-kdesrc-build">
<title
>&kdesrc-build; verwenden</title>

<sect1 id="using-kdesrc-build-preface">
<title
>Einleitung</title>

<para
>Nachdem Sie das <xref linkend="getting-started"/> gelesen haben, können Sie &kdesrc-build; im Terminal mit dieser Eingabe starten:</para>

<screen
><prompt
>&percnt;</prompt
> <command
><userinput
>kdesrc-build</userinput
></command
>
</screen>

<para
>&kdesrc-build; lädt dann die Quelltexte für &kde; herunter und konfiguriert, kompiliert und installiert das &kde;-System. </para>

<para
>In den folgenden Kapiteln erfahren Sie, wie &kdesrc-build; diese Aufgabe ausführt und welche weiteren Hilfen geboten werden.</para>

</sect1>

<sect1 id="basic-features">
<title
>Grundfunktionen von &kdesrc-build;</title>

<sect2 id="using-qt-copy">
<title
>Unterstützung für qt-copy</title>
<para
>Als Hilfe für die Benutzer unterstützt &kdesrc-build; das Erstellen der &Qt;-Bibliothek, die von den &kde;-Programmen benutzt wird. Dabei handelt es sich um ein besonderes Modul mit dem Namen qt-copy.</para>

<note
><para
>&Qt; wird in einen eigenen Archiv auf <ulink url="http://qt.gitorious.org/qt"
>http://qt.gitorious.org/qt</ulink
> unabhängig von der &kde;-Software entwickelt.</para
></note>

<para
>Um &Qt; zu erstellen, müssen Sie den Pfad <link linkend="conf-qtdir"
>qtdir</link
> für den Ordner einstellen, in den Sie &Qt; installieren möchten. Dies wird im Abschnitt <xref linkend="configure-data"/> beschrieben.</para>

<para
>Stellen Sie sicher dass das Modul qt-copy in Ihrer Datei <filename
>.kdesrc-buildrc</filename
> enthalten ist und vor allen anderen Modulen steht. Wenn Sie die mitgelieferte Beispieldatei benutzen, müssen Sie nur das Kommentarzeichen vor dem Eintrag für das Modul qt-copy entfernen.</para>

<para
>Nun sollten Sie überprüfen, ob die Optionen <link linkend="conf-repository"
>repository</link
> und <link linkend="conf-branch"
>branch</link
> richtig eingestellt sind.</para>

<orderedlist>
<listitem
><para
>Als erstes haben Sie die Möglichkeit, qt-copy mit einer Gruppe von empfohlenen Fehlerkorrekturen und Optimierungen zu erstellen. In früheren Versionen von &kdesrc-build; wurde dies mit der Option apply-patches festgelegt. Diese Qt-Version wird in einen eigenen Archiv auf <ulink url="http://gitorious.org/+kde-developers/qt/kde-qt"
>http://gitorious.org/+kde-developers/qt/kde-qt</ulink
> entwickelt. Möchten Sie qt-copy mit diesen Korrekturen wie die meisten &kde;-Entwickler erstellen, geben Sie für die Option repository <userinput
>git://gitorious.org/+kde-developers/qt/kde-qt.git</userinput
> an.</para>
</listitem>

<listitem
><para
>Um andernfalls die Standardversion von &Qt; zu erstellen, geben Sie für das Archiv <userinput
>git://gitorious.org/qt/qt.git</userinput
> an.</para
></listitem>
</orderedlist>

<para
>In beiden Fällen sollten Sie die Option „branch“ auf <userinput
>master</userinput
> setzen, es sei denn, Sie möchten eine anderen Zweig (branch) erstellen.</para>

<note
><para
>Unter bestimmten Bedingungen funktioniert das zugrunde liegende Quelltext-Verwaltungssystem nicht richtig bei der Ausführung von &kdesrc-build;, aber ohne Probleme, wenn die gleichen Aktionen von der Befehlszeile aufgerufen werden. Dieser Fehler wird noch untersucht.</para
></note>

</sect2>

<sect2 id="kdesrc-build-std-flags">
<title
>Standard-Parameter von &kdesrc-build;</title>
<para
>&kdesrc-build; fügt einige Standardpfade zur der Entwicklungsumgebung hinzu: </para>

<itemizedlist>
<listitem
><para
>Der Pfad zu den &kde;- und &Qt;-Bibliotheken wird automatisch zur Variablen <envar
>LD_LIBRARY_PATH</envar
> hinzugefügt. Es ist nicht erforderlich, &libpath; zu bearbeiten und den Pfad dort einzutragen. </para
></listitem>

<listitem
><para
>Der Pfad zu den &kde;- und &Qt;-Hilfsprogrammen für die Entwicklung wird automatisch zur Variablen <envar
>PATH</envar
> hinzugefügt. Es ist nicht erforderlich, &binpath; zu bearbeiten und den Pfad dort einzutragen. </para
></listitem>

<listitem
><para
>Der Pfad zum Programm <application
>pkg-config</application
> von &kde; wird automatisch zur Variablen <envar
>PKG_CONFIG_PATH</envar
> hinzugefügt. Es ist nicht erforderlich, &set-env; zu bearbeiten und den Pfad dort einzutragen. </para
></listitem>

<listitem
><para
>Die Einstellung für &kdedir; wird automatisch beim Erstellen zur Umgebungsvariablen <envar
>KDEDIR</envar
> hinzugefügt. Die Variable <envar
>KDEDIRS</envar
> wird nicht verändert. </para
></listitem>

<listitem
><para
>Die Einstellung für &qtdir; wird automatisch beim Erstellen zur Umgebungsvariablen <envar
>QTDIR</envar
> hinzugefügt. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Ändern der Priorität von &kdesrc-build; beim Erstellen</title>
<para
>Programme können auf Betriebssystemen wie &Linux; und &BSD; mit unterschiedlichen Prioritäten ausgeführt werden. Damit werden den verschiedenen Programmen je nach Wichtigkeit vom System unterschiedliche Anteile an der Prozessorlaufzeit zugewiesen. </para>

<para
>&kdesrc-build; wird normalerweise mit einer niedrigen Priorität ausgeführt, so dass die Ausführung der anderen laufenden Programme auf dem System nicht behindert wird. Mit dieser Technik verwendet &kdesrc-build; CPU-Zeit, wenn sie verfügbar ist. </para>

<para
>&kdesrc-build; wird aber noch mit einer genügend hohen Priorität gestartet, dass es vorrangig vor normalen Wartungsprogrammen oder Programmen wie <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
> ausgeführt wird. </para>

<para
>Um &kdesrc-build; immer mit niedrigerer oder höherer Priorität auszuführen, muss die Einstellung für &niceness; in der <link linkend="configure-data"
>Einrichtungsdatei</link
> geändert werden. Dabei bedeutet ein höherer Wert für &niceness; eine niedrigere Priorität und umgekehrt. Der Wert für &niceness; kann zwischen 0 - höchste Priorität - und 20 - niedrigste Priorität liegen.</para>

<para
>Mit der <link linkend="cmdline"
>Befehlszeilenoption</link
> &cmd-nice; kann &kdesrc-build; vorübergehend mit geänderter Priorität ausgeführt werden. Für diesen Befehl werden die gleichen Werte wie für &niceness; verwendet.</para>

<note
><para
>Programme können vom Systemverwalter sogar mit einem negativen Nice-Wert und damit sehr hoher Priorität ausgeführt werden. &kdesrc-build; mit einer &niceness; von 0 laufen zu lassen, spart nicht merklich Zeit, kann aber dazu führen, dass andere Programme auf dem Rechner nur noch träge reagieren. </para
></note>

<informalexample>
<para
>Um &kdesrc-build; mit einem Nice-Wert von 15 (kleiner als normal) auszuführen. geben Sie folgendes ein:</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--nice=<replaceable
>15</replaceable
></option
></userinput
>
</screen>

<para
>Alternativ ändern Sie den Wert dauerhaft in der <link linkend="configure-data"
>Einrichtungsdatei</link
>:</para>

<screen
>&niceness; <replaceable
>15</replaceable
>
</screen>
</informalexample>

<tip>
<para
>Die Option <link linkend="conf-niceness"
>niceness</link
> beeinflusst nur die Auslastung des Prozessors Ihres Rechners. Ein weiterer wichtiger Einfluß der Leistungsfähigkeit eines Rechners ist die Auslastung der Dateneingabe oder -Ausgabe (<acronym
>I/O</acronym
>) durch ein Programm. Um festzulegen, wieviel dieser Ein-/Ausgabe (<acronym
>I/O</acronym
>) ein Programm benutzen darf, kann in modernen &Linux;-Systemen das Werkzeug  <application
>ionice</application
> benutzt werden. &kdesrc-build; unterstützt <application
>ionice</application
> mit der Option <link linkend="conf-use-idle-io-priority"
>use-idle-io-priority</link
> seit der &kdesrc-build;-Version 1.12. <application
>ionice</application
> kann aber nur ein- oder ausgeschaltet werden. </para>
</tip>

</sect2>

<sect2 id="root-installation">
<title
>Installation als Systemverwalter</title>
<para
>&kdesrc-build; kann auch mit der Berechtigung des Systemverwalters ausgeführt werden, zum Beispiel für eine nicht empfohlene Installation in den Systemordnern. Es gibt aber einige Module wie besonders kdebase, die Programme installieren, die mit erweiterten Berechtigungen ausgeführt werden müssen. Dazu müssen diese Programme aber auch mit erweiterten Berechtigungen installiert werden. </para>

<para
>&kdesrc-build; könnte einfach mit der Berechtigung des Systemverwalters ausgeführt werden, aber davon wird abgeraten, da das Programm für diesen Anwendungsfall nicht getestet wurde. Wenn immer möglich, sollte ein Programm mit begrenzten Berechtigungen ausgeführt werden.</para>

<para
>Dazu gibt es in &kdesrc-build; die Option &make-install-prefix;. Mit dieser Option wird ein Befehl angegeben, der die Installation mit der Berechtigung eines anderen Benutzers ausführt. Es wird empfohlen, für diese Option den Befehl &sudo; zu benutzen, damit kann die Installation als Systemverwalter ausgeführt werden. </para>

<informalexample>
<para
>Um zum Beispiel alle Module mit &sudo; zu installieren, geben Sie folgendes ein:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Weitere Optionen
end global
</screen>

<para
>Um &make-install-prefix; nur für ein einzelnes Modul zu benutzen, geben Sie folgendes ein: </para>

<screen
>module <replaceable
>kdemultimedia</replaceable>
  &make-install-prefix; <replaceable
>sudo</replaceable>
end module
</screen>
</informalexample>

</sect2>

<sect2 id="build-progress">
<title
>Fortschrittsanzeige beim Erstellen eines Moduls anzeigen</title>
<para
>Diese Funktion wird immer automatisch aktiviert. Sie zeigt den geschätzten Fortschritt für das Erstellen eines Moduls an. Damit ist erkennbar, wie lange das Erstellen eines Moduls noch dauert. </para>

</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Weitergehende Funktionen</title>

<sect2 id="partial-builds">
<title
>Teile eines Moduls erstellen</title>
<para
>Es ist möglich, nur Teile eines einzelnen &kde;-Moduls zu erstellen, zum Beispiel nur ein Programm aus einem Modul. Das ist mit &kdesrc-build; einfach durchzuführen, es gibt dafür mehrere Möglichkeiten. </para>

<sect3 id="checking-out-parts">
<title
>Teile eines Moduls herunterladen</title>

<para
>Mit dieser Methode wird Zeit beim Herunterladen und Speicherplatz auf der Festplatte eingespart. &kdesrc-build; lädt nur die angegebenen Teile eines Moduls herunter. Dazu wird die Option &checkout-only; mit einer Liste der herunterzuladenden Ordner für ein Modul verwendet. </para>

<tip
><para
>Wenn Sie nicht genau wissen, welche Programme ein Modul enthält, sollten Sie zuerst die Ordner im Modul mit <ulink url="http://websvn.kde.org/branches/KDE/4.5/"
>WebSVN</ulink
> ansehen. </para
></tip>

<informalexample>
<para
>Um nur &kuser; und <application
>KSystemLog</application
> aus dem Modul kdeadmin herunterzuladen, benutzen Sie &checkout-only; wie im folgenden Beispiel:</para>

<screen
>module <replaceable
>kdeadmin</replaceable>
  &checkout-only; <replaceable
>kuser ksystemlog</replaceable>
end module
</screen>

</informalexample>

<important
><para
>Die Ordner werden in der gleichen Reihenfolge wie in der Liste kompiliert. Wenn für das Kompilieren eines Ordners vorher andere Teile des Moduls kompiliert werden müssen, sind alle erforderlichen Ordner zusammen in die Zeile &checkout-only; einzutragen, und zwar in der richtigen Reihenfolge entsprechend den Abhängigkeiten.</para>

<para
>Manchmal benötigt ein Programm andere Ordner, aber es ist nicht direkt erkennbar welche erforderlich sind. In diesem Fall ist es am einfachsten, einen Ordner nach dem anderen hinzuzufügen bis das Erstellen gelingt. Diese Option funktioniert nur, wenn das Erstellungssystem des Moduls dies unterstützt. Daher ist die Option nur für Module sinnvoll, die aus einer Sammlung von einzelnen Programmen bestehen.</para>
</important>

<para
>Ein letzter Hinweis zu dieser Option: Wenn der Wert der Option geändert wird, sollte mit <userinput
><command
>kdesrc-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>module</replaceable
></option
></userinput
> sichergestellt werden, dass das Modul korrekt neu konfiguriert wird. &kdesrc-build; entfernt keine vorhandenen Dateien, wenn einige Ordner aus der Option &checkout-only; gelöscht oder diese Option für ein bereits heruntergeladenes Modul eingefügt wird. </para>

</sect3>

<sect3 id="not-compiling">
<title
>Ordner beim Erstellen auslassen</title>
<para
>Anstatt die Menge der herunterzuladenden Quelltexte zu beschränken, kann alles heruntergeladen werden und einige wenige Ordner werden beim Kompilieren ausgelassen. Diese Vorgehensweise kann zum Beispiel benutzt werden, wenn bei einem Ordner immer Fehler auftreten, dieser Ordner aber für die übrigen Programme im Modul nicht erforderlich ist. </para>

<para
>Dazu wird die Option &do-not-compile; verwendet, Sie funktioniert ähnlich wie die gerade beschriebene Option &checkout-only; und enthält ebenfalls eine Liste der Ordner, die nicht kompiliert werden sollen.</para>

<important
><para
>Wie &checkout-only; erfordert auch diese Option, dass das Erstellungssystem nach den Änderungen für das Modul erneut ausgeführt wird. Dies erreichen Sie mit dem Befehl <userinput
><command
>kdesrc-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>module</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>Um den Ordner <filename class="directory"
>python</filename
> beim Erstellen des Moduls kdebindings auszulassen, geben Sie folgendes ein:</para>

<screen
>module <replaceable
>kdebindings</replaceable>
  &do-not-compile; <replaceable
>python</replaceable>
end module
</screen>

</informalexample>

<note
><para
>Diese Option hängt von einigen Standardkonventionen ab, die in den meisten &kde;-Modulen benutzt werden. Daher kann diese Option für einige Programme nicht funktionieren.</para
></note>

</sect3>

</sect2>

<sect2 id="using-branches">
<title
>Zweige (Branches) und Tags mit &kdesrc-build; verwenden</title>

<sect3 id="branches-and-tags">
<title
>Was sind eigentlich Zweige (Branches) und Tags?</title>

<para
>&subversion; verwaltet den Verlauf der Änderungen am &kde;-Quelltext. Im &kde;-System werden mit dieser Funktion Zweige für die Entwicklung und Tags des Archivs für eine Veröffentlichung erstellt. </para>

<para
>Die &kmail;-Entwickler können zum Beispiel an neuen Funktionen in einem eigenen Zweig arbeiten, ohne Fehler in die von den meisten Entwicklern benutzten Hauptversion einzubringen. Im getrennten Zweig kann die Software unabhängig von der ebenfalls weiterentwickelten Hauptversion /trunk verbessert werden. </para>

<para
>Ein Tag ist ein Abbild des Quelltextarchivs zu einem bestimmten Zeitpunkt. Die &kde;-Systemverwalter verwenden Tags , um eine neue Version des Quelltextes für eine Veröffentlichung zu kennzeichnen. Die Softwareentwicklung kann dann in der Hauptversion /trunk weitergehen. </para>

<para
>In &subversion; gibt es keinen Unterschied zwischen Zweigen, Tags oder Trunk im Quelltext. Diese Bezeichnungen sind nur eine Konvention der Entwickler. Damit ist es schwierig, Zweige und Tags in &kdesrc-build; richtig zu verarbeiten. </para>

</sect3>

<sect3 id="branch-support">
<title
>Zweige (Branches) und Tags verwenden</title>

<para
>Zweige und Tags werden mit einigen Optionen angegeben, von einer generellen Angabe für eine Version bis zu bestimmten &url;s zum Herunterladen für erfahrene Benutzer. </para>

<para
>Am einfachsten ist es, die Optionen &branch; und &tag; zu verwenden. Dazu wird die Option mit dem Namen des gewünschten Zweigs oder Tags für ein Modul angegeben. &kdesrc-build; ermittelt dann den passenden Pfad im &kde;-Archiv. Für die meisten &kde;.-Module funktioniert das ohne Probleme.</para>

<informalexample>
<para
>Mit diesem Eintrag wird das Modul kdelibs aus &kde; 4.5 - 4.5-Zweig genannt - heruntergeladen: </para>

<screen
>module kdelibs
  branch <replaceable
>4.5</replaceable>
  # weitere Optionen...
end module
</screen>

<para
>Mit diesem Eintrag wird das Modul kdemultimedia aus &kde; 4.5.1 heruntergeladen:</para>

<screen
>module kdemultimedia
  tag <replaceable
>4.5.1</replaceable>
  # weitere Optionen...
end module
</screen>

</informalexample>

<tip
><para
>Für die Option branch kann ein globaler Wert eingestellt werden. Denken Sie aber daran, für alle Module einen zutreffenden Zweig (branch) einzustellen, die diesen globalen Wert nicht verwenden sollen. </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Erweiterte Optionen für Zweige (branch)</title>

<para
>&kdesrc-build; bietet zwei Optionen für Situationen, in denen mit &branch; und &tag; der falsche Pfad benutzt wird: &module-base-path; und &override-url;. </para>

<itemizedlist>
<listitem
><para
>Mit &module-base-path; kann &kdesrc-build; den fehlenden Teil für den Pfad eines Moduls einfügen. Im &kde;-Archiv haben alle Pfade die Form <filename class="directory"
>svnRoot/module-base-path/<replaceable
>module-name</replaceable
></filename
>. Normalerweise ist &kdesrc-build; dazu in der Lage, den passenden mittleren Teil des Pfades selbst zu bestimmen. Funktioniert dies nicht, ist &module-base-path; wie im folgenden Beispiel zu verwenden: </para>

<informalexample>
<screen
>module kdesupport
    # kdesupport supports various tags to easily organize the required
    # software for a given KDE Platform release.
    module-base-path tags/kdesupport-for-4.5
end module
</screen>

<para
>Mit dieser Option lädt &kdesrc-build; in diesem Beispiel kdesupport von <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>tags/kdesupport-for-4.5</replaceable
></filename
> herunter. </para>
</informalexample>
<tip
><para
>In früheren Versionen von &kdesrc-build; wurde die Option &module-base-path; anders verwendet. Stellen Sie Probleme mit einer alten Definition für diese Option fest, überprüfen Sie ob der tatsächliche Pfad in der von &kdesrc-build; erwarteten Form vorliegt, indem Sie die Option <link linkend="cmdline-pretend"
>--pretend</link
> benutzen. </para
></tip>
</listitem>

<listitem
><para
>Die Option &override-url; erfordert die genaue Angabe des Pfades zum Modul im Archiv. Damit wird es &kdesrc-build; ermöglicht, Module zu laden, die mit den anderen Optionen nicht eingegeben werden können. Zurzeit sollte die Option &module-base-path; für alle Subversion-Archive funktionieren. </para>

<important
><para
>&kdesrc-build; ändert oder bearbeitet den angegebenen Wert für die Option &override-url; nicht. Wenn die Einstellung &svn-server; geändert wird, müssen auch die Pfade in &override-url; entsprechend angepasst werden. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Arbeitsweise von &kdesrc-build; zum erfolgreichen Erstellen</title>

<sect3 id="automatic-rebuilds">
<title
>Automatisch das Erstellen neu ausführen</title>

<para
>&kdesrc-build; enthielt in früheren Versionen Funktionen, um ein Module nach einem Fehler automatisch wieder neu zu erstellen. Dieses Verhalten war häufig wegen Fehlern im alten Erstellungssystem erfolgreich. Mit dem Wechsel zu &cmake; sind diese Fehler beseitigt, daher versucht &kdesrc-build; nur noch einmal, ein Modul zu erstellen. Trotzdem gibt es noch Situationen, in denen &kdesrc-build; automatisch aus diesen Gründen ein Modul erneut erstellt:</para>

<itemizedlist>

<listitem
><para
>Wenn Sie für ein Modul <link linkend="conf-configure-flags"
>configure-flags</link
> oder <link linkend="conf-cmake-options"
>cmake-options</link
> geändert haben, erkannt &kdesrc-build; dies und führt automatisch erneut „configure“ oder „cmake“ für dieses Modul aus.</para
></listitem>

<listitem
><para
>Wenn der Erstellungsordner nicht vorhanden ist - auch wenn er nicht von &kdesrc-build; entfernt wurde - erstellt das Skript ihn automatisch neu. Damit ist es möglich, einen vollständigen  <link linkend="cmdline-refresh-build"
>--refresh-build</link
> nur für ein bestimmtes Modul und nicht für alle anderen Module auszuführen.</para
></listitem>

</itemizedlist>

</sect3>

<sect3 id="manual-rebuilds">
<title
>Module manuell neu erstellen</title>
<para
>Wenn die Optionen oder der Quelltext eines Moduls in einer Weise geändert wurden, die von &kdesrc-build; nicht erkannt wird, muss ein Modul manuell neu erstellt werden.</para>

<para
>Dazu wird der Befehl <userinput
><command
>kdesrc-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>module</replaceable
></option
></userinput
> ausgeführt. </para>

<para
>Wenn dies erst bei der nächsten normalen Ausführung von &kdesrc-build; automatisch erfolgen soll, kann eine Datei <filename
>.refresh-me</filename
> in den Erstellungsordner eines Moduls geschrieben werden. So wird &kdesrc-build; bei der nächsten Ausführung das Modul neu erstellen und nicht wie normalerweise nur inkrementell.</para>

<tip>
<para
>In der Voreinstellung ist der Erstellungsordner <filename class="directory"
>~/kdesrc/build/<replaceable
>module</replaceable
>/</filename
>. Haben Sie die Einstellung für die Option &build-dir; geändert, verwenden Sie diese Einstellung anstelle von <filename class="directory"
>~/kdesrc/build</filename
>.</para>
</tip>

<informalexample>
<para
>Neu erstellen mit <filename
>.refresh-me</filename
> für das Modul <replaceable
>kdelibs</replaceable
>:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>touch</command
> <filename class="directory"
>~/kdesrc/build/<replaceable
>kdelibs</replaceable
>.refresh-me</filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Einstellungen für Umgebungsvariablen ändern</title>
<para
>Normalerweise benutzt &kdesrc-build; die Umgebungsvariablen, die beim Start des Skripts gesetzt sind, um den Quelltext zu aktualisieren und zu kompilieren. Das funktioniert ohne Probleme, wenn Sie &kdesrc-build; von der Befehlszeile ausführen.</para>

<para
>Manchmal möchten Sie die Umgebungsvariablen ändern, für die keine Optionen in &kdesrc-build; vorhanden sind. Wenn Sie zum Beispiel &kdesrc-build; als &cron;-Job regelmäßig ausführen möchten, können Sie mit der Option &set-env; alle dafür nötigen Umgebungsvariablen setzen.</para>

<para
>Anders als alle anderen Optionen kann diese Option mehrfach verwendet werden. Sie erfordert zwei durch Leerzeichen getrennte Einträge. Der erste Eintrag ist der Name der Umgebungsvariablen und der zweite der einzustellende Wert.</para>

<informalexample>
<para
>Setzt <userinput
><envar
>DISTRO</envar
>=<replaceable
>BSD</replaceable
></userinput
> für alle Module:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Das Erstellen fortsetzen</title>

<sect3 id="resuming-failed">
<title
>Ein abgebrochenes oder fehlgeschlagenes Erstellen fortsetzen</title>

<para
>&kdesrc-build; kann das Erstellen mit einem bestimmten Modul fortsetzen. Diese Funktion kann mit den Optionen &cmd-resume-from; und &cmd-resume-after; benutzt werden, wenn bei einigen Modulen Fehler aufgetreten sind, oder das Kompilieren abgebrochen wurde.</para>

<note
><para
>Benutzen Sie diese beiden Optionen, wird das Aktualisieren des Quelltextes übersprungen.</para
> </note>

<informalexample>
<para
>Das Erstellen mit kdebase fortsetzen:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-from=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<informalexample>
<para
>Das Erstellen mit dem Modul nach kdebase fortsetzen (für den Fall, dass Sie den Fehler in kdebase manuell beseitigt und dieses Modul selbst installiert haben):</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-after=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

</sect3>

<sect3 id="ignoring-modules">
<title
>Module vom Erstellen ausschließen</title>

<para
>Ähnlich wie das Erstellen eines Moduls <link linkend="resuming-failed"
>fortgesetzt</link
> wird, kann statt dessen das Aktualisieren und Erstellen für alles ausgeführt werden, wobei einige Module ausgelassen werden.</para>

<para
>Verwenden Sie dazu die Option &cmd-ignore-modules;. Damit werden alle mit dieser Option angegebenen Module nicht aktualisiert oder erstellt.</para>

<informalexample>
<para
>Mit dieser Eingabe werden extragear/multimedia und kdereview beim Erstellen ausgelassen:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdereview</replaceable
></userinput
>
</screen>
</informalexample>

</sect3>
</sect2>

<sect2 id="changing-env-from-cmd-line">
<title
>Optionen auf der Befehlszeile ändern</title>

<sect3 id="changing-global-opts">
<title
>Globale Optionen ändern</title>
<para
>Die Einstellungen aus der <link linkend="configure-data"
>Einrichtungsdatei</link
> können auf der Befehlszeile geändert werden. Damit werden die globalen Einstellungen nur für die Ausführung dieses Befehls überschrieben.</para>

<para
>In &kdesrc-build; können interne Optionen mit Namen wie <replaceable
>option-name</replaceable
> durch Eingabe eines Arguments auf der Befehlszeile in der Form <userinput
><option
>--<replaceable
>option-name</replaceable
>=value</option
></userinput
> geändert werden. &kdesrc-build; sucht den angegebenen Namen in der internen Liste der Optionen. Wird der Name nicht gefunden, so wird eine Warnung ausgegeben, andernfalls wird der angegeben Wert der Option übernommen und der Wert aus der Einrichtungsdatei überschrieben.</para>

<informalexample>
<para
>Einstellung der Option &source-dir; auf <filename
>/dev/null</filename
> zum Testen:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>source-dir</replaceable
>=<replaceable
>/dev/null</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

<sect3 id="changing-module-opts">
<title
>Änderung der Optionen für Module</title>
<para
>Sie können Optionen nur für bestimmte Module ändern. Die Syntax ist ähnlich: --<replaceable
>module</replaceable
>,<replaceable
>option-name</replaceable
>=<replaceable
>value</replaceable
>. </para>

<para
>Diese Änderung überschreibt jede Einstellung für das Modul aus der <link linkend="configure-data"
>Einstellungsdatei</link
> und wird nur bei Eingabe auf der Befehlszeile benutzt.</para>

<informalexample>
<para
>Mit dieser Eingabe wird ein anderer Ordner zum Erstellen des Moduls kdeedu verwendet:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--<replaceable
>kdeedu</replaceable
>,<replaceable
>build-dir</replaceable
>=<replaceable
>temp-build</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

</sect2>

</sect1>

<sect1 id="developer-features">
<title
>Funktionen für &kde;-Entwickler</title>

<sect2 id="ssh-agent-reminder">
<title
>Überprüfung des &ssh;-Agenten</title>
<para
>&kdesrc-build; kann überprüfen, ob &kde;-Entwickler mit &ssh;-Zugriff auf das &kde;-Quelltextarchiv nicht aus Versehen den Dienst &ssh;-Agent deaktiviert haben. In diesem Fall würde &kdesrc-build; auf die Eingabe des &ssh;-Passwort des Entwicklers warten und die Ausführung anhalten. Daher wird als Standard vor dem Aktualisieren der Quelltexte überprüft, ob der Dienst &ssh;-Agent läuft. </para>

<note
><para
>Dies ist nur für &kde;-Entwickler mit &ssh;-Zugriff auf das Archiv erforderlich, über anonymes SVN kann der Quelltext ohne Passwort heruntergeladen werden. </para
></note>

<para
>Diese Prüfung kann für die Fälle abgeschaltet werden, in denen &kdesrc-build; irrtümlicherweise diesen Dienst falsch erkennt. Um die Überprüfung des &ssh;-Agenten abzuschalten, setzen Sie die Option <option
>disable-agent-check</option
> auf <replaceable
>true</replaceable
>.</para>

<informalexample>
<para
>Überprüfung des &ssh;-Agenten abschalten:</para>
<screen
>global
  disable-agent-check true
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Weitere Funktionen von &kdesrc-build;</title>

<sect2 id="changing-verbosity">
<title
>Ausgabe des Skripts &kdesrc-build; einstellen</title>
<para
>&kdesrc-build; hat mehrere Optionen, um den Umfang der vom Skript generierten Ausgaben einzustellen. Fehler werden in jedem Fall angezeigt.</para>

<itemizedlist>
<listitem
><para
>Mit der Option <option
>--quiet</option
> (Kurzform <option
>-q</option
>) werden nur wichtige Meldungen, Warnungen und Fehler angezeigt. Wenn verfügbar, wird auch der Fortschritt beim Erstellen ausgegeben.</para
></listitem>

<listitem
><para
>Mit der Option <option
>--really-quiet</option
> (keine Kurzform) werden nur wichtige Warnungen oder Fehler angezeigt.</para
></listitem>

<listitem
><para
>Mit der Option <option
>--verbose</option
> (Kurzform <option
>-v</option
>) wird eine sehr detaillierte Ausgabe eingestellt.</para
></listitem>

<listitem
><para
>Die Option <option
>--debug</option
> ist nur für die Fehlersuche erforderlich, damit verhält sich &kdesrc-build; als wenn die Option <option
>--verbose</option
> aktiviert ist. Zusätzlich werden alle Meldungen auf der Konsole und viele Informationen über die ausgeführten Funktionen ausgegeben.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesrc-build-color">
<title
>Farbige Ausgaben</title>
<para
>Bei der Ausführung von &kdesrc-build; in der &konsole; oder einem anderen Terminal wird die Ausgabe nomalerweise als farbiger Text dargestellt.</para>

<para
>Dies kann mit der Option <option
>--no-color</option
> auf der Befehlszeile ausgeschaltet werden oder indem in der <link linkend="configure-data"
>Einrichtungsdatei</link
> die Option &colorful-output; gleich <replaceable
>false</replaceable
> gesetzt wird. </para>

<informalexample>
<para
>Farbige Ausgabe in der Einrichtungsdatei abschalten:</para>
<screen
>global
  colorful-output false
end global
</screen>
</informalexample>

</sect2>

<sect2 id="email-reports">
<title
>E-Mail-Benachrichtigung über Fehler beim Erstellen </title>
<para
>&kdesrc-build; kann E-Mails an eine beliebige Adresse senden, wenn das Erstellen eines Moduls fehlgeschlagen ist. Geben Sie dazu E-Mail-Adressen für den Absender und den Empfänger der Fehlerberichte an.</para>

<para
>&kdesrc-build; stellt dann am Ende der Ausführung eine E-Mail zusammen, sofern das Erstellen eines Modules fehlgeschlagen ist. Diese E-Mail enthält ein gekürztes Fehlerprotokoll für jedes Modul. Es wird nur eine E-Mail verschickt, auch wenn Fehler in mehreren Modulen aufgetreten sind. </para>

<para
>Diese Funktion ist als Voreinstellung ausgeschaltet. Um sie zu aktivieren, muss sowohl die Option &email-address; als auch &email-on-compile-error; gesetzt werden. Die Option <option
>email-address</option
> enthält die Absenderadresse und die Option <option
>email-on-compile-error</option
> die Empfängeradresse. </para>

<tip>
<para
>&kdesrc-build; benutzt das Standard-Perlmodul Mail::Mailer zum Versenden von E-Mails. Diese Modul ist in Perl 5.8 enthalten und kann für Perl 5.6 installiert werden. Das Modul Mail::Mailer kann <application
>Sendmail</application
> (einschließlich <application
>Sendmail</application
>-kompatibler E-Mail-Dienste), Transport über <acronym
>SMTP</acronym
> und <application
>qmail</application
> verwenden. </para>
</tip>

<informalexample>
<para
>Versenden einer E-Mail von foo@example.com an bar@example.com bei einem Fehler beim Erstellen:</para>

<screen
>global
  email-address          foo@example.com    # From: address for any kdesrc-build e-mail
  email-on-compile-error bar@example.com    # To: address for build failure e-mail
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Ordner nach dem Erstellen löschen</title>
<para
>Sie haben wenig Festplattenspeicherplatz, möchten aber trotzdem die Entwicklerversion von &kde; herunterladen? &kdesrc-build; kann dabei helfen, Speicher auf der Festplatte beim Erstellen von &kde; aus dem &subversion;-Archiv einzusparen.</para>

<note
><para
>Beachten Sie, dass das Erstellen von &kde; viel Speicherplatz benötigt. Dafür gibt es mehrere Ursachen:</para
></note>

<orderedlist>
<listitem
><para
>Der aktuelle Quelltext beansprucht viel Speicherplatz, alle Standardmodule zusammen etwa 1,6 Gigabyte. Diesen Wert können Sie dadurch verringern, dass nur die tatsächlich erforderlichen Module heruntergeladen werden. &kdesrc-build; löscht keinen Quelltext von der Festplatte, auch wenn ein Modul aus der <link linkend="configure-data"
>Einrichtungsdatei</link
> entfernt wird. Unbenutzter Quelltext muss manuell gelöscht werden. Es sollten aber keine Quelltexte gelöscht werden, wenn &kdesrc-build; noch läuft.</para>

<para
>Wenn Sie &Qt; bereits über Ihre Distribution installiert haben, können Sie vielleicht auf das Modul qt-copy verzichten und damit etwa 200 MB Quelltext einsparen.</para>

<para
>Ein Hinweis zur Arbeitsweise von &subversion;: Es gibt immer zwei Dateien auf der Festplatte für jede aus dem Archiv heruntergeladene Datei. Mit &kdesrc-build; ist es zurzeit nicht möglich, den von nicht verwendetem Quelltext belegten Speicherplatz frei zu machen. </para>
</listitem>

<listitem>
<para
>&kdesrc-build; erstellt einen eigenen Ordner zum Erstellen der Programme aus den Quelltexten. Manchmal muss &kdesrc-build; einen Quelltextordner kopieren, um einen Erstellungsordner vorzutäuschen. In diesem Fall werden symbolische Verknüpfungen verwendet. Der Erstellungsordner ist typischerweise erheblich größer als der Quelltextordner. Für kdebase werden im Erstellungsordner etwa 1050 Megabyte benötigt, für den Quelltext jedoch nur 550 Megabyte.</para>

<para
>Der Ordner zum Kompilieren der Software wird aber nicht mehr benötigt, wenn das Modul erfolgreich erstellt und installiert worden ist. &kdesrc-build; kann automatisch den Erstellungsordner löschen, nachdem das Modul installiert wurde, ein Beispiel dazu wird weiter unten gezeigt. Damit ist es aber mit &kdesrc-build; nicht mehr möglich, nur die Änderungen in einem Modul zu kompilieren und damit Zeit einzusparen.</para>
</listitem>

<listitem
><para
>Außerdem ist noch Speicherplatz auf der Festplatte für den Installationsordner von &kde; erforderlich. Dieser Ordner verbraucht weniger Platz als der Erstellungsordner, genaue Angaben sind aber nicht möglich. </para
></listitem>
</orderedlist>

<para
>Wie kann der erforderliche Speicherplatz für &kde; verringert werden? Eine Möglichkeit ist die Verwendung der richtigen Kompiler-Schalter - Optimierung des Speicherbedarfs anstelle der Ausführungsgeschwindigkeit. Die andere Möglichkeit ist das Entfernen der Debugging-Informationen aus dem kompilierten &kde;, das spart viel Speicherplatz. </para>

<warning
><para
>Bedenken Sie vor dem Entfernen der Debugging-Informationen: Entwicklersoftware kann viel häufiger abstürzen als eine stabile Version. Ohne Debugging-Informationen ist es kaum möglich, Fehlerberichte zu schreiben, die alle zur Behebung benötigten Informationen enthalten. Dazu müssen Sie unter Umständen ein Modul mit Debugging-Informationen neu kompilieren, um den Entwicklern ausreichende Informationen zur Behebung des Fehlers zu liefern. Bedenken Sie dies, wenn Sie Debugging-Informationen entfernen wollen. </para
></warning>

<informalexample>
<para
>Löschen des Erstellungsordners nach der Installation eines Moduls. Der Quelltextordner bleibt erhalten und das Debuggen ist eingeschaltet:</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Build-Ordner nach der Installation löschen
end global
</screen>

<para
>Löschen des Erstellungsordners nach der Installation, ohne Debugging-Informationen, mit Optimierung für die Dateigröße:</para>

<screen
>global
  cxxflags             -Os             # Optimimierung für Dateigröße
  configure-flags      --disable-debug
  remove-after-install builddir        # Build-Ordner nach der Installation löschen
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>&cmake;, das System zum Erstellen von &kde; 4</title>

<sect1 id="kde-cmake-intro">
<title
>Einführung zu &cmake;</title>

<para
>Im März 2006 wurde &cmake; als neues System zum Erstellen von &kde; 4 ausgewählt. Damit wurde das autotools-basierte System abgelöst, das in &kde; von Anfang an verwendet wurde.</para>

<para
>Eine Einführung zu &cmake; finden Sie auf der <ulink url="http://techbase.kde.org/Development/Tutorials/CMake"
>&kde; TechBase</ulink
>. Anstatt <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, <command
>configure</command
> und &make; wird nur noch &cmake; und dann &make; eingegeben. </para>

<para
>Einige Funktionen von &kdesrc-build; waren tatsächlich Funktionen des Erstellungssystems, wie <link linkend="conf-configure-flags"
>configure-flags</link
> und <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Alle diese Funktionen sind auch weiterhin verfügbar, wenn sie durch &cmake; unterstützt werden. Als Ersatz für die Option „configure-flags“ gibt es in &cmake; <link linkend="conf-cmake-options"
>cmake-options</link
> und die Option <link linkend="conf-do-not-compile"
>do-not-compile</link
> wird auch seit &kdesrc-build; Version 1.6.3 unterstützt. </para>

</sect1>
</chapter>

<chapter id="credits-and-licenses">
<title
>Danksagungen und Lizenz</title>

<para
>Übersetzung: Thomas Reitelbach<email
>tr@erdfunkstelle.de</email
></para
> 
&underFDL; </chapter>

</book>
