<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
  <!--
    Documentation for kdesrc-build.
    Copyright (c) 2005-2008, 2010-2020 Michael Pyne <mpyne@kde.org>

    Copyright (c) 2005 Carlos Leonhard Woelz <carloswoelz@imap-mail.com>
    Copyright (c) 2009 Burkhard Lück <lueck@hube-lueck.de>
    Copyright (c) 2007, 2011 Federico Zenith <federico.zenith@members.fsf.org>
    Copyright (c) 2009-2011 Yuri Chornoivan <yurchor@ukr.net>
    ... and possibly others. Check the git source repository for specifics.

    Permission is granted to copy, distribute and/or modify this document under
    the terms of the GNU Free Documentation License, Version 1.2 or any later
    version published by the Free Software Foundation; with no Invariant
    Sections, no Front-Cover Texts, and no Back-Cover Texts.

    A copy of the license is included in COPYING.DOC. The license will be
    included in the generated documentation as well.
   -->
  <!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 ninja '<application
>Ninja</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 id="kdesrc-build" lang="&language;">

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

<authorgroup id="authors">
    <author
>&Michael.Pyne; &Michael.Pyne.mail;</author>
    <author
><personname
><firstname
>Carlos</firstname
><surname
>Woelz</surname
></personname
> <email
>carloswoelz@imap-mail.com</email
> </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>
<year
>2011</year>
<year
>2012</year>
<year
>2013</year>
<year
>2014</year>
<year
>2015</year>
<year
>2016</year>
<year
>2017</year>
<year
>2018</year>
<year
>2019</year>
<holder
>Michael Pyne</holder>
</copyright>

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

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2018-01-20</date>
<releaseinfo
>&kdesrc-build; 17.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
>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>

<sect1 id="brief-intro">
<title
>Eine kurze Einführung zu &kdesrc-build;</title>

<sect2 id="whatis-kdesrc-build">
<title
>Was ist &kdesrc-build;?</title>

<para
>&kdesrc-build; ist ein Skript zur Installation und Aktualisierung von <ulink url="https://www.kde.org/"
>&kde;</ulink
>-Software aus den <ulink url="https://git-scm.com/"
>&git;</ulink
>- und <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
>-Quellcode-Repositories Es ist insbesondere für das Testen und die Entwicklung von &kde;-Software gedacht, sowohl für Benutzer, die Fehlerkorrekturen testen als auch für Entwickler, die an neuen Funktionen arbeiten. </para>

<para
>Das Skript &kdesrc-build; kann so eingestellt werden, dass ein einzelnes Modul, eine vollständige &plasma;-Arbeitsfläche mit &kde;-Anwendungen oder eine beliebige Auswahl erstellt wird. </para>

<para
>Informationen zum Start finden Sie unter <xref linkend="getting-started"/> oder im Folgenden mit für weiteren Details darüber, wie &kdesrc-build; funktioniert und was in dieser Dokumentation behandelt wird. </para>
</sect2>

<sect2 id="operation-in-a-nutshell">
<title
>Arbeitsweise von &kdesrc-build; <quote
>kurz zusammengefasst</quote
></title>

<para
>&kdesrc-build; arbeitet mit Werkzeugen, die ein Benutzer auf der Befehlszeile zur Verfügung hat, und benutzt dieselbe Schnittstelle. Bei der Ausführung von &kdesrc-build; werden folgende Arbeitsschritte durchgeführt: </para>

<orderedlist>
<listitem
><para
>&kdesrc-build; liest die auf der <link linkend="cmdline"
>Befehlszeile</link
> angegebenen Optionen und die <link linkend="configure-data"
>Einrichtungsdatei</link
> ein. Damit wird festgelegt, welche Module erstellt werden, wo sie installiert werden &etc;</para
></listitem>

<listitem
><para
>&kdesrc-build; aktualisiert den Quelltext für jedes <link linkend="module-concept"
>Modul</link
>, bis alle Module auf den neuesten Stand gebracht sind. Fehler bei der Aktualisierung führen nicht zum Abbruch des Skripts &ndash; am Ende dieser Phase werden Sie benachrichtigt, bei welchen Modulen die Aktualisierung nicht erfolgreich durchgeführt werden konnte.</para
></listitem>

<listitem
><para
>Module, die erfolgreich aktualisiert wurden, werden gebaut, die Tests werden ausgeführt und dann werden sie installiert. Um den gesamten Zeitaufwand zu reduzieren, beginnt &kdesrc-build; standardmäßig mit der Erstellung, sobald das erste Modul die Aktualisierung abgeschlossen hat. und lässt die übrigen Aktualisierungen im Hintergrund weiterlaufen. </para
></listitem>
</orderedlist>

<tip
><para
>Eine <emphasis
>umfassende</emphasis
> Übersicht, wie &kde;-Module aufgebaut sind, finden Sie einschließlich informativer Diagramme im Online Artikel <ulink url="https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for- cats"
> über die &kde;Anwendung &krita;</ulink
>. Der Arbeitsablauf in diesem Artikel wird von &kdesrc-build; für alle &kde; Module automatisiert durchgeführt.</para>
</tip>

</sect2>
</sect1>

<sect1 id="intro-toc">
<title
>Übersicht der Dokumentation</title>

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

<itemizedlist>
<listitem
><para
>Ein <link linkend="getting-started"
>Überblick</link
> über die erforderlichen Schritte für einen erfolgreichen Start.</para
></listitem>
<listitem
><para
>Wichtige <link linkend="features"
>Leistungsmerkmale</link
>.</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
>Außerdem wird erläutert, welche zusätzlichen Programme benutzt werden müssen, um alle nicht automatisch von &kdesrc-build; ausgeführten Aktionen auszuführen. </para>

</sect1>
</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 Struktur der Quelltexte im &kde;-Archiv 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="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source"
>Selbst kompilieren</ulink
> im <ulink url="https://community.kde.org/"
>Wiki der &kde;-Gemeinschaft</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 auch einstellen, dass die Installation in ein systemweites Verzeichnis erfolgt (&eg; <filename class="directory"
>/usr/src/local</filename
>). In dieser Dokumentation wird diese Installationsart nicht behandelt. </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 fast vollständige Liste finden Sie auf der Seite <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source#Install_required_devel_packages"
>&kde; Community Wiki Build Requirements</ulink
>. </para>

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

<listitem
><para
>Sie benötigen &cmake;, diese Software wird von &kde; verwendet, um die Einstellungen für den Quellcode und die Generierung der spezifischen Erstellungsbefehle für Ihr System zu erzeugen. Die benötigte Version hängt davon ab, welche Versionen von &kde; Software Sie erstellen möchten, aber bei modernen Distributionen sollte das &cmake; in Ihrer Distribution ausreichend sein. </para
></listitem>

<listitem
><para
>Sie müssen auch die Dienstprogramme zum Herunterladen der &kde;-Quelltexte installieren. &ie; mindestens folgende Programme installiert haben:</para>

<itemizedlist>
<listitem
><para
>Das <ulink url="https://git-scm.com/"
>Quelltextverwaltungssystem Git</ulink
>, das für alle &kde;- <ulink url=" https://commits.kde.org/"
>Quelltexte</ulink
> benutzt wird.</para
></listitem>

<listitem
><para
>Die Quelltext-Versionsverwaltung <ulink url="http://bazaar.canonical.com/"
>Bazaar</ulink
> wird für ein einziges Modul (libdbusmenu-qt) gebraucht, das für die &kde;-Bibliotheken benötigt wird. Die meisten Benutzer können diese Bibliothek von Ihrer Distribution installieren. Trotzdem unterstützt &kdesrc-build; das Erstellen dieser Bibliothek aus dem Quelltext. Aber um ibdbusmenu-qt zu erstellen, muss Bazaar installiert sein.</para
></listitem>
</itemizedlist
></listitem>

<listitem
><para
>Die Skriptsprache Perl wird für &kdesrc-build;, einige &kde;-Repositories und &Qt; benötigt, falls Sie &Qt; selbst kompilieren möchten.</para>

<para
>Die Version von Perl in Ihrer Distribution sollte geeignet sein, es muss mindestens Perl 5.14 sein, aber Sie benötigen auch einige zusätzliche Module (&kdesrc-build; gibt eine Warnung aus, wenn diese nicht vorhanden sind):</para>

<itemizedlist>
    <listitem
><para
>IO::Socket::SSL</para
></listitem>
    <listitem
><para
>JSON::PP oder JSON::XS</para
></listitem>
    <listitem
><para
>YAML::PP, YAML::XS oder YAML::Syck</para
></listitem>
</itemizedlist>
</listitem>

<listitem
><para
>Sie benötigen eine vollständige C++-Entwicklungsumgebung (Compiler, Standard-Bibliothek, Laufzeitumgebung) und alle erforderlichen Entwicklungspakete. Die minimal benötigten Versionen variieren je nach &kde;-Modul: die &kde; Frameworks 5 unterstützt auch ältere Compiler, während &kde; Plasma 5 und &kde; Anwendungen tendenziell neuere Compiler erfordern.</para>
<para
>Die Compiler GCC 4.8 oder Clang 4 sind das empfohlene Minimum. Viele Distributionen unterstützen die einfache Installation dieser Werkzeuge mit einem <quote
>build-essentials</quote
>-Paket, einer Option zur Installation von "build dependencies" mit &Qt;, oder ähnliche Funktionen. Das KDE Community Wiki hat eine Seite <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source/.Install_the_dependencies"
>, die die empfohlenen Pakete für die wichtigsten Distributionen</ulink
> aufführt. </para>
</listitem>

<listitem
><para
>Sie benötigen ein Build-Tool, das die Kompilierungsschritte tatsächlich durchführt, wie sievon &cmake; generiert wurden. GNU Make wird empfohlen und sollte über Ihre Paketverwaltung verfügbar sein. &cmake; unterstützt auch andere Optionen, wie z.B. das &ninja; Build-Tool, das von &kdesrc-build; verwendet werden kann, indem die Option <link linkend="conf-custom-build-command"
>custom-build-command</link
> in der Einrichtungsdatei angegeben wird. </para
></listitem>

<listitem
><para
>Schließlich benötigen Sie die passenden &Qt;-Bibliotheken einschließlich der Entwicklungspakete für die Version von &kde;-Software, die Sie bauen möchten. &kdesrc-build; unterstützt offiziell nicht die Erstellung von &Qt; 5 (der aktuellen Hauptversion).Es wird daher empfohlen, die Entwicklungspakete Ihrer Distribution zu verwenden oder die KDE-Community-Wiki-Seite auf <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source/OwnQt5"
>Qt 5 selbst bauen</ulink
> zu lesen. </para
></listitem>
</itemizedlist>

<note
><para
>Die meisten Betriebssystem-Distributionen enthalten Methoden, die erforderlichen Entwicklungswerkzeuge einfach zu installieren. Sehen Sie im Community-Wiki <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source#Install_required_devel_packages"
>Erforderliche Entwicklungspakete</ulink
> nach, ob hier bereits Anleitungen vorliegen.</para
></note>

<important
><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 <emphasis
>und</emphasis
> die Entwicklungs-Pakete. </para
></important>

</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
>Die &kde;-Entwickler nehmen häufige Änderungen an &kdesrc-build; vor, um es auf dem Stand für die Fortschritten in der &kde;-Entwicklung halten, einschließlich Verbesserungen der empfohlenen &kdesrc-build;-Einrichtung, hinzugefügter Module, Verbesserung von &cmake; &etc;.</para>

<para
>Daher wird empfohlen &kdesrc-build; direkt aus dem Quelltextarchiv herunterzuladen und regelmäßig zu aktualisieren.</para>

<para
>Sie können &kdesrc-build; direkt aus dem Quelltextarchiv herunterladen, indem Sie folgenden Befehl in einer Konsole eingeben:</para>
<programlisting
><prompt
>$ </prompt
><userinput
><command
>git <option
>clone</option
> <option
>https://invent.kde.org/sdk/kdesrc-build.git</option
> <option
><filename class="directory"
><replaceable
>~/kdesrc-build</replaceable
></filename
></option
></command
></userinput
>
</programlisting>

<para
>Ersetzen Sie <option
><replaceable
>~/kdesrc-build</replaceable
></option
> durch den Ordner, in den Sie das Skript installieren möchten. </para>

<para
>Später können Sie &kdesrc-build; mit folgendem Befehl aktualisieren:</para>
<programlisting
><prompt
>$ </prompt
><userinput
><command
>cd <option
><filename class="directory"
><replaceable
>~/kdesrc-build</replaceable
></filename
></option
></command
></userinput>
<prompt
>$ </prompt
><userinput
><command
>git <option
>pull</option
></command
></userinput
>
</programlisting>

<tip
><para
>Es ist empfehlenswert, das Installationsverzeichnis von &kdesrc-build; zu Ihrer Umgebungsvariable <envar
>PATH</envar
> hinzuzufügen, damit Sie &kdesrc-build; ausführen können, ohne den Pfad jedes Mal vollständig angeben zu müssen.</para
></tip>
</sect3>

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

<para
>&kdesrc-build; verwendet eine <link linkend="configure-data"
>Einrichtungsdatei</link
> im Ordner <filename
>~/.kdesrc-buildrc</filename
>, um zu steuern welche Module erstellt werden, wo sie installiert werden usw.</para>

<para
>Sie können das in &kdesrc-build; enthaltene Programm <application
>kdesrc-build-setup</application
> benutzen, um eine einfache Einrichtungsdatei für &kdesrc-build; zu erzeugen. Bearbeiten Sie dann die Datei <filename
>~/.kdesrc-buildrc</filename
> und passen sie an Ihre Wünsche an.</para>

<para
>Das Programm <application
>kdesrc-build-setup</application
> wird in einem Terminal ausgeführt und verwendet keine grafische Bedienungsoberfläche, genauso wie &kdesrc-build;. Daher können Sie es auch auf einem System ohne Grafik benutzen.</para>

<sect4 id="setup-rcfile-manually">
<title
>Manuelle Einstellung der Einrichtungsdatei</title>

<para
>Sie können Ihre Einrichtungsdatei auch manuell einstellen, indem Sie die mitgelieferte Beispielkonfigurationsdatei <filename
>kdesrc-buildrc-kf5-sample</filename
> nach <filename
>~/.kdesrc-buildrc</filename
> kopieren und dann die Datei bearbeiten. <xref linkend="kdesrc-buildrc"/> ist dafür eine nützliche Referenz, insbesondere deren <link linkend="conf-options-table"
>Tabelle der Optionen</link
>. </para>

<para
>&kdesrc-build; enthält viele empfohlene Einrichtungsdateien zur Unterstützung von &kde;-Frameworks 5, &plasma; 5, und anderen &kde;-Anwendungen. Das Programm <application
>kdesrc-build-setup</application
> benutzt diese Dateien, um die Einrichtungsdatei zu erstellen. Hier finden Sie Informationen darüber, wie Sie Ihre <xref linkend="kdesrc-buildrc-including"/> eigenen Einrichtungsdateien aus einer angepassten Datei <filename
>~/.kdesrc-buildrc</filename
> erstellen.</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>
</sect4>
</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-kf5-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 ausreichend, um &kde; zu erstellen. Folgende Einstellungen bieten sich zu Anpassung an: </para>

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

<listitem
><para
><link linkend="conf-branch-group"
>branch-group</link
> kann verwendet werden, um den passenden Entwicklungszweig für die &kde;-Module als Ganzes zu wählen. Es gibt viele unterstützte Build-Einstellungen, aber Sie werden wahrscheinlich <option
>kf5-qt5</option
> benutzen, damit &kdesrc-build; den neuesten Quelltext auf der Basis von &Qt; 5 und &kde; Frameworks 5 herunterlädt.</para>

<tip
><para
>&kdesrc-build; verwendet eine Standard-Branch-Gruppe, wenn Sie keine auswählen, aber diese Vorgabe wird sich im Laufe der Zeit ändern, daher ist eine Auswahl besser, damit sich die Branch-Gruppe sich nicht unerwartet ändert.</para
></tip>
</listitem>

<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>: Der Ordner,den &kdesrc-build;  zum Herunterladen des Quellcodes, zum Ausführen des Build-Prozesses und zum Speichern von Protokollen verwendet. Der Standardwert ist <filename class="directory"
>~/kdesrc</filename
>.</para
></listitem>

<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
>: Optionen, die an &cmake;  übergeben werden, wenn jedes Modul gebaut wird. Typischerweise wird dies verwendet, um zwischen <quote
>debug</quote
>- oder <quote
>release</quote
>- Builds zu wechseln, optionale Funktionen zu aktivieren oder zu deaktivieren oder Informationen über den Speicherort der benötigten Bibliotheken an den dem Build-Prozess  zu übergeben. </para
></listitem>

<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>: Optionen, die bei der Ausführung von <application
>make</application
> verwendet werden, um jedes Modul zu bauen, sobald &cmake; das Build-System eingerichtet hat. </para>

<para
>Die am häufigsten verwendete Option ist <option
>-j<replaceable
>N</replaceable
></option
>, wobei <replaceable
>N</replaceable
> durch die maximale Anzahl der Kompiliervorgänge, die Sie zulassen möchten ersetzt werden sollte. Eine höhere Zahl bis zu der Anzahl der logischen CPUs in Ihrem System führt zu schnelleren Builds, benötigt aber  mehr Systemressourcen. </para>

<tip
><para
>&kdesrc-build; setzt die Option <option
><link linkend="conf-num-cores"
>num-Kerne</link
></option
> auf die erkannte Anzahl der verfügbaren Prozessorkerne. Sie können diesen Wert in Ihrer eigenen Einrichtungsdatei verwenden, damit Sie ihn nicht manuell einstellen zu müssen. </para
></tip>

<example id="make-options-example">
<title
>Einrichtung von Make, um alle verfügbaren CPUs mit Ausnahmen zu benutzen</title>
<screen
>global
    # Diese Umgebungsvariable wird automatisch von make benutzt, einschließlich
    # der make-Befehle, die nicht direkt von by kdesrc-build ausgeführt werden wie das Einrichten für Qt
    set-env MAKEFLAGS -j<literal
>${num-cores}</literal>
    &hellip;
end global

&hellip;

module-set <replaceable
>big-module-set</replaceable>
    repository kde-projects
    use-modules <replaceable
>calligra</replaceable>
    make-options -j2 # Reduzierte Anzahl der Erstellungsvorgänge nur für diese Module
end module-set
</screen>
</example>

<note
><para
>Einige sehr große Git-Repositorys können Ihr System überfordern, wenn Sie versuchen, mit zu vielen Erstellungsvorgängen gleichzeitig zu kompilieren, insbesondere Repositories wie die &Qt;-WebKit- und &Qt;-WebEngine. Um die Bedienbarkeit des System aufrechtzuerhalten, müssen Sie möglicherweise die Anzahl der Erstellungsvorgänge für bestimmte Module reduzieren.</para>
<para
><xref linkend="make-options-example"/> Ein Beispiel, wie dies ausgeführt werden sollte.</para>
</note>

</listitem>
</itemizedlist>

<para
>Sie möchten wahrscheinlich verschiedene Module zum Erstellen auswählen, dies wird in <xref linkend="selecting-modules"/> beschrieben.</para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Das Skript &kdesrc-build; verwenden</title>
<para
>Nachdem Sie die Einrichtungsdaten festgelegt haben, können Sie nun das Skript zu starten. Auch wenn Sie noch einige Anpassungen vornehmen oder andere Dinge lesen möchten, sollten Sie zumindest die &kde;-Projekt-Metadaten laden.</para>

<sect2 id="loading-kdesrc-build-metadata">
<title
>Projekt-Metadaten laden</title>

<para
>Melden Sie sich in einem Terminal-Fenster als der Benutzer an, den Sie zum Kompilieren und Installieren der &kde;-Software verwenden möchten, und führen Sie das Skript aus: </para>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--metadata-only</option
></userinput
>
</screen>

<para
>Dieser Befehl richtet den Quelltextordner ein und stellt eine Verbindung zu den &git;-Repositories von KDE her, um die Datenbank der &kde;-git-Repositories und die Datenbank mit den Metadaten der Abhängigkeiten herunterzuladen, ohne weitere Änderungen vorzunehmen. Es ist sinnvoll, dies getrennt auszuführen, da diese Metadaten für andere &kdesrc-build;-Befehle benötigt werden. </para>

</sect2>

<sect2 id="pretend-mode">
<title
>Vorschau auf das, was beim Ausführen von kdesrc-build passiert</title>

<para
>Mit den installierten Projekt-Metadaten ist es möglich, eine Vorschau darauf zu erhalten, was &kdesrc-build; beim Start ausführen wird. Dies kann mit der <option
><link linkend="cmdline-pretend"
>--pretend</link
></option
> Befehlszeilenoption erfolgen.</para>

<screen
><prompt
>&percnt; </prompt
><command
>./kdesrc-build</command
> <option
>--pretend</option
>
</screen>

<para
>Sie sollten eine Meldung sehen, dass einige Pakete erfolgreich gebaut wurden, obwohl eigentlich nichts gebaut wurde. Wenn es keine signifikanten Probleme gab, können Sie mit der eigentlichen Ausführung des Skripts fortfahren.</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--stop-on-failure</option
></userinput
>
</screen>

<para
>Dieser Befehl lädt den entsprechenden Quellcode herunter und baut und installiert jedes Modul der Reihe nach, hält aber an, wenn ein Modul aufgrund der Option <option
>--stop-on-failure</option
> nicht gebaut werden kann. Danach sollten Sie eine Ausgabe ähnlich der in <xref linkend="example-build-sequence"/> sehen:</para>

<example id="example-build-sequence">
<title
>Beispielausgabe der Ausführung von kdesrc-build</title>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
></userinput>
Updating kde-build-metadata (to branch master)
Updating sysadmin-repo-metadata (to branch master)

Building libdbusmenu-qt (1/200)
        No changes to libdbusmenu-qt source, proceeding to build.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building taglib (2/200)
        Updating taglib (to branch master)
        Source update complete for taglib: 68 files affected.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building extra-cmake-modules from &lt;module-set at line 32&gt; (3/200)
        Updating extra-cmake-modules (to branch master)
        Source update complete for extra-cmake-modules: 2 files affected.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

        ...

Building kdevelop from kdev (200/200)
        Updating kdevelop (to branch master)
        Source update complete for kdevelop: 29 files affected.
        Compiling... succeeded (after 1 minute, and 34 seconds)
        Installing.. succeeded (after 2 seconds)

&lt;&lt;&lt;  PACKAGES SUCCESSFULLY BUILT  &gt;&gt;&gt;
Built 200 modules

Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07
</screen>
</example>
</sect2>

<sect2 id="fixing-build-failures">
<title
>Fehler beim Erstellen beheben</title>

<para
>Wenn Sie viele Module herunterladen und erstellen wollen, kann es vorkommen, das bei der ersten Kompilierung von &kde;-Software 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>

<tip
><para
>Um die Ursache des Fehlers beim Erstellen eines Moduls zu finden, suchen Sie vom Ende der Datei rückwärts, ohne zwischen Groß-/Kleinschreibung zu unterscheiden, nach dem Wort <literal
>error</literal
>. Blättern Sie bei einem Treffer nach oben, um auch eventuell kurz davor aufgetretenen Fehlermeldungen zu sehen. Die erste Fehlermeldung in dieser Gruppe zeigt normalerweise die Ursache an.</para
></tip>

<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, so dass &kdesrc-build; das Modul wieder auf fehlende Pakete überprüft. </para>

<para
>Wenn Kompilierfehler wie zum Beispiel ein Syntaxfehler, <quote
>falscher Prototyp</quote
>, <quote
>unbekannter Typ</quote
> oder ähnlich aufgetreten sind, liegt 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;-Software finden Sie auf der Seite <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source"
> Build from Source</ulink
>. </para>

<para
>Andererseits, wenn alles ohne Probleme erstellt wurde, sollten Sie eine neue &kde;-Installation auf Ihrem Rechner haben. Jetzt müssen Sie es nur noch ausführen, wie im nächsten Abschnitt <xref linkend="environment"/>. beschrieben wird.</para>

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

</sect1>

<sect1 id="building-specific-modules">
<title
>Erstellen eines Moduls</title>

<para
>Anstatt immer alle Module zu bauen, möchten Sie vielleicht nur ein einzelnes Modul oder eine andere kleine Teilmenge bauen. Anstatt Ihre Einrichtungsdatei zu bearbeiten, können Sie einfach die Namen der zu erstellenden Module oder Modulgruppen auf der Befehlszeile übergeben.</para>

<example id="example-subset-build">
<title
>Beispielausgabe vom Erstellen eines einzelnen Moduls</title>
<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--include-dependencies</option
> <replaceable
>dolphin</replaceable
></userinput>
Updating kde-build-metadata (to branch master)
Updating sysadmin-repo-metadata (to branch master)

Building extra-cmake-modules from frameworks-set (1/79)
        Updating extra-cmake-modules (to branch master)
        No changes to extra-cmake-modules source, proceeding to build.
        Running cmake...
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building phonon from phonon (2/79)
        Updating phonon (to branch master)
        No changes to phonon source, proceeding to build.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building attica from frameworks-set (3/79)
        Updating attica (to branch master)
        No changes to attica source, proceeding to build.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

        ...

Building dolphin from base-apps (79/79)
        Updating dolphin (to branch master)
        No changes to dolphin source, proceeding to build.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

&lt;&lt;&lt;  PACKAGES SUCCESSFULLY BUILT  &gt;&gt;&gt;
Built 79 modules

Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07
</screen>
</example>

<para
>In diesem Fall wurde zwar nur die Anwendung <replaceable
>dolphin</replaceable
> angegeben, aber wegen der Option <link linkend="conf-include-dependencies"
><option
>--include-dependencies</option
></link
> werden auch Abhängigkeiten für <replaceable
>dolphin</replaceable
> eingeschlossen. </para>

<note
><para
>Die Auflösung der Abhängigkeit funktionierte in diesem Fall nur, weil <replaceable
>dolphin</replaceable
> in einem Modulsatz auf der Basis von <literal
>kde-projects</literal
>, in diesem Beispiel <literal
>base-apps</literal
> angegeben wurde. Siehe <xref linkend="module-sets-kde"/>. </para
></note>

</sect1>

<sect1 id="environment">
<title
>Einrichten der &kde;-Umgebung zur Ausführung des &plasma;-Desktop</title>

<para
>Im Folgenden wird davon ausgegangen, dass Sie einen eigenen Benutzer zum Kompilieren und Installieren von &plasma; verwendet haben. Des weiteren wird davon ausgegangen, dass Sie bereits eine &plasma;Version installiert haben. Wenn dies der Fall ist, muss das neue &plasma; Vorrang vor der alten Version erhalten. Sie müssen Sie die Umgebungsvariablen in Ihren Anmeldungsskripten ändern, damit die neu installierte Arbeitsumgebung benutzt wird. </para>

<sect2 id="session-driver">
<title
>Automatische Installation eines Anmeldungstreibers</title>

<para
>Seit Version 1.16 versucht &kdesrc-build; einen passenden Treiber für die Anmeldung installieren. Damit können Sie sich an dem mit &kdesrc-build; erstellten &kde;-Arbeitsumgebung anmelden. Dieses Verhalten kann mit der Option <option
><link linkend="conf-install-session-driver"
>install-session-driver</link
></option
> in der Einrichtungsdatei eingestellt werden.</para>

<note
><para
>Eine Sitzung wird nicht eingerichtet, wenn &kdesrc-build; im Simulationsmodus läuft.</para
></note>

<para
>Mit diesem Treiber wird ein benutzerdefinierter Sitzungstyp für <quote
><literal
>xsession</literal
></quote
> eingerichtet. Dieser Sitzungstyp sollte als Standard mit der Anmeldung über &kdm; funktionieren. In &kdm; wird die neue Sitzung als benutzerdefinierte Sitzung angezeigt. Bei anderen Anmeldungsverwaltungen wie <application
>LightDM</application
> und <application
>gdm</application
> müssen möglicherweise zusätzliche Dateien installiert werden, damit Anmeldung mit <literal
>xsession</literal
> aktiviert wird.</para>

<sect3 id="xsession-distribution-setup">
<title
>Unterstützung von xsession für Distributionen hinzufügen</title>

<para
>Für die Standard-Anmeldungsverwaltung einiger Distributionen müssen zusätzliche Pakete installiert werden, um die Anmeldung über <literal
>xsession</literal
> zu ermöglichen.</para>

<itemizedlist>
<listitem
><para
>Für die &Linux;-Distribution <ulink url="https://getfedora.org/"
>Fedora</ulink
> muss das Paket <literal
>xorg-x11-xinit-session</literal
> installiert werden, damit die benutzerdefinierte Anmeldung für <literal
>xsession</literal
> unterstützt wird.</para
></listitem>

<listitem
><para
><ulink url="https://www.debian.org/"
>Debian</ulink
> und &Linux;-Distribution auf der Basis von Debian unterstützen benutzerdefinierte <literal
>xsession</literal
>-Anmeldungen. Dafür muss aber die Option <option
><userinput
>allow-user-xsession</userinput
></option
>  in der Datei <filename
>/etc/X11/Xsession.options</filename
> eingestellt sein. Weitere Informationen dazu finden Sie im Debian-Handbuch im Abschnitt über die <ulink url="https://www.debian.org/doc/manuals/debian-reference/ch07.en.html#_customizing_the_x_session_classic_method"
>Anpassung der X-Sitzung</ulink
>.</para
></listitem>

<listitem
><para
>Für andere Distributionen lesen Sie <xref linkend="xsession-manual-setup"/>.</para
></listitem>
</itemizedlist>

</sect3>

<sect3 id="xsession-manual-setup">
<title
>Unterstützung von xsession für manuell hinzufügen</title>

<para
>Finden Sie keine Anleitungen für Ihre Distribution in <xref linkend="xsession-distribution-setup"/>, können Sie manuell einen <quote
>eigenen Eintrag für die „xsession“-Anmeldung</quote
> in der Liste von Sitzungstypen für Ihre Distribution mit dem folgenden Vorgehen eintragen:</para>

<procedure id="proc-adding-xsession-type">
<title
>Fügen Sie einen Sitzungsanmeldungstyp für „.xsession“ hinzu.</title>

<note
><para
>Um diese Prozedur auszuführen, brauchen Sie wahrscheinlich Systemverwalterrechte. </para
></note>

<step performance="required">
<para
>Erstellen Sie die Datei <filename
>/usr/share/xsessions/kdesrc-build.desktop</filename
>.</para>
</step>

<step performance="required">
<para
>Stellen Sie sicher, dass die gerade neu erstellte Datei folgenden Text enthält:</para>
<literallayout
><userinput>
Type=XSession
Exec=<co id="session-homedir"/><replaceable
>$HOME</replaceable
>/.xsession
Name=KDE Plasma Desktop (unstable; kdesrc-build)
</userinput
></literallayout>

<calloutlist>
<callout arearefs="session-homedir"
><para
>Der Eintrag <replaceable
>$HOME</replaceable
> muss durch den absoluten Pfad zur Ihrem persönlichen Ordner ersetzt werden. zum Beispiel <filename class="directory"
>/home/<replaceable
>user</replaceable
></filename
>. Die Spezifikation für Desktop-Einträge erlaubt keine benutzergenerierten Dateien. </para
></callout>

</calloutlist>
</step>

<step performance="optional"
><para
>Wenn die Anmeldungsverwaltung neu gestartet wurde, zeigt sie den neuen Sitzungstyp <quote
>KDE Plasma Desktop (unstable; kdesrc-build)</quote
> in der Liste der vorhandenen Sitzungen an. Mit diesem Eintrag wird die von &kdesrc-build; installierte <filename
>.xsession</filename
>-Datei bei der Anmeldung gestartet.</para>

<note
><para
>Am einfachen ist es, den Rechner und damit auch die Anmeldungsverwaltung neu zu starten, wenn die Anmeldungsverwaltung den Ordner <filename class="directory"
>/usr/share/xsessions</filename
> nicht auf Aktualisierungen überwacht.</para
></note>

</step>

</procedure>

</sect3>

</sect2>

<sect2 id="old-profile-instructions">
<title
>Manuelle Einrichtung der Umgebung</title>
<para
>Diese Dokumentation enthielt Anleitungen, welche Umgebungsvariablen gesetzt werden müssen, um die neu erstellte Arbeitsumgebung zu starten. Diese Anleitungen finden Sie jetzt im Anhang <xref linkend="old-profile-setup"/>.</para>

<para
>Beabsichtigten Sie, Ihre eigene Anmeldungsverwaltung einzurichten, finden Sie Informationen dazu in diesem Anhang oder lesen Sie die Datei <filename
>sample-kde-env-master.sh</filename
>, die im Quelltextpaket von &kdesrc-build; enthalten ist.</para>

</sect2>

</sect1>

<sect1 id="kde-modules-and-selection">
<title
>Auswahl und Organisation der Module </title>

<sect2 id="kde-layers">
<title
>Organisation der KDE-Software</title>

<para
>Die &kde;-Software ist in verschiedene Komponenten aufgeteilt, die meisten können mit &kdesrc-build; erstellt werden. das Verständnis dieser Organisation hilft dabei, die gewünschten Module zum Erstellen richtig auszuwählen. </para>

<orderedlist>
<listitem
><para
>Auf der untersten Ebene befindet sich die &Qt;-Bibliothek, eine sehr leistungsfähige <quote
>Bibliothek</quote
> für mehrere Plattformen. &kde; basiert auf &Qt;, ebenso wie einige Bibliotheken außerhalb von &kde;, die aber für &kde; erforderlich sind. Mit &kdesrc-build; können Sie &Qt; erstellen oder die bereits auf Ihrem System installierte Version verwenden, wenn Sie aktuell genug ist.</para
></listitem>

<listitem
><para
>Auf &Qt; bauen weitere Bibliotheken auf, die für das Funktionen der &kde;-Software erforderlich sind. Einige dieser Bibliotheken sind wegen des breiten Anwendungsbereichs nicht Bestandteil von &kde;, aber trotzdem zwingend für die &kde;-Plattform nötig. Diese Bibliotheken sind im Modul <literal
>kdesupport</literal
> zusammengefasst, gehören aber nicht zu den <quote
>Frameworks</quote
>-Bibliotheken.</para>
</listitem>

<listitem
><para
>Zu diesen wichtigen Bibliotheken gehören die <ulink url="https://community.kde.org/Frameworks"
>&kde;-Frameworks</ulink
>, manchmal abgekürzt als KF5, die wesentliche Bibliotheken für den &kde; Plasma-Desktop, &kde;-Anwendungen und andere Software von Drittanbietern. </para
> </listitem>

<listitem
><para
>Auf diesen Frameworks-Bibliotheken als Basis kommt dann Folgendes:</para>
    <itemizedlist>
        <listitem
><para
>Programme <quote
>anderer Anbieter</quote
>. Diese Programme benutzen die &kde;-Frameworks oder benötigen &kde;-Plasma zur Ausführung, werden aber nicht vom &kde;-Projekt entwickelt und haben auch keine Verbindung dazu.</para
></listitem>

        <listitem
><para
>Plasma, eine vollständige <quote
>Arbeitsflächen</quote
>-Umgebung. Das sehen Benutzer normalerweise, wenn Sie sich für &kde; anmelden.</para
></listitem>

        <listitem
><para
>Die &kde; Anwendungen. Dies ist eine Sammlung von nützlicher Software,die in der Plattform und der &plasma; -Arbeitsfläche in einzelnen Modulgruppen enthalten ist, darunter Dienstprogramme wie &dolphin;, Spiele wie <application
>KSudoku</application
> und Produktivitätssoftware, die von &kde; wie z. B. &kontact;.</para
></listitem>

        <listitem
><para
>Schließlich gibt es noch Softwaresammlung, die auch in Modulen zusammengefasst sind, deren Entwicklung durch die &kde;-Infrastruktur (wie Übersetzung, Versionsverwaltung, Fehlerverfolgung &etc;) unterstützt wird. Diese Programme werden aber unabhängig von den Anwendungen und Plasma  veröffentlicht und sind nicht Bestandteil der Softwaresammlung. Diese Module zusammen werden <quote
>Extragear</quote
> genannt. </para
></listitem>
    </itemizedlist>
</listitem>
</orderedlist>
</sect2>

<sect2 id="selecting-modules">
<title
>Auswahl der Module zum Erstellen</title>

<para
>Die Auswahl der der zu erstellenden Module wird durch die <link linkend="kdesrc-buildrc"
>Einrichtungsdatei</link
> gesteuert. Darin folgt nach dem Abschnitt <literal
>global</literal
> eine Liste der zu erstellenden Module, eingefasst durch die Zeilen „module“ ... „end module“. Ein Beispiel für einen Moduleintrag finden Sie in <xref linkend="conf-module-example"/>.</para>

<example id="conf-module-example">
<title
>Beispieleintrag für ein Modul in der Einrichtungsdatei</title>
<programlisting
>module <replaceable
>kdesrc-build-git</replaceable>
    # Optionen für dieses Modul werden hier eingetragen, zum Beispiel:
    <link linkend="conf-repository"
>repository</link
> kde:kdesrc-build
    <link linkend="conf-make-options"
>make-options</link
> -j4 # Startet vier Compilerläufe gleichzeitig
end module
</programlisting>
</example>

<note
><para
>n der Praxis wird dieses Module meist nicht direkt verwendet. Stattdessen werden die meisten Module über Modulgruppen angegeben, wie unten beschrieben.</para
></note>

<para
>Wenn Sie nur <literal
>module</literal
>-Einträge verwenden, baut &kdesrc-build; diese in der von Ihnen angegebenen Reihenfolge und versucht nicht, andere Repositories herunterzuladen, außer denen, die Sie direkt angeben. </para>

</sect2>

<sect2 id="module-sets">
<title
>Modulgruppen</title>

<para
>Der &kde;-Quellcode ist in eine große Anzahl von relativ kleinen Git-Repositories aufgeteilt. Um die Verwaltung der großen Anzahl von Repositories zu erleichtern, die an einer sinnvollen &kde;-basierten Installation dazugehören, unterstützt &kdesrc-build; die Gruppierung mehrerer Module und behandelt sie als <quote
>Modulgruppen</quote
>. </para>

<sect3 id="module-set-concept">
<title
>Das grundlegende Konzept der Modulgruppen</title>

<para
>Durch Verwendung von Modulgruppen können Sie schnell viele Git-Module deklarieren, die heruntergeladen und erstellt werden sollen, ohne jedes Modul einzeln eintragen zu müssen. Mit der Option <link linkend="conf-repository"
>repository</link
> wird automatisch ermittelt, wo jedes einzelne Modul heruntergeladen werden kann und jede weitere Option der Modulgruppe wird auch für jedes auf diese Weise erzeugte Modul kopiert und angewendet.</para>

<example id="example-using-module-sets">
<title
>Modulgruppen verwenden</title>
<programlisting
>global
    <option
><link linkend="conf-git-repository-base"
>git-repository-base</link
></option
> <replaceable
>kde-git</replaceable
> <replaceable
>kde:</replaceable>
end global

module <replaceable
>qt</replaceable>
    # Optionen entfernt, um das Beispiel kurz zu halten
end module

module-set <replaceable
>kde-support-libs</replaceable>
    <option
><link linkend="conf-repository"
>repository</link
></option
> <replaceable
>kde-git</replaceable>
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>automoc</replaceable
> <replaceable
>attica</replaceable
> <replaceable
>akonadi</replaceable>
end module-set

# Andere Module soweit erforderlich ..
module <replaceable
>kdesupport</replaceable>
end module
</programlisting>
</example>

<para
>In <xref linkend="example-using-module-sets"/> wird ein Beispiel einer einfachen Modulgruppe gezeigt. Wenn &kdesrc-build; eine Modulgruppe bearbeitet, wird für jedes in der Option <option
>use-modules</option
> angegebene Modul eine einzelne Moduldefinition aus dem Wert der Option <option
>repository</option
> der Modulgruppe und dem angegebenen Namen des Moduls erstellt.</para>

<para
>Zusätzlich können noch weitere Optionen für eine Modulgruppe gesetzt werden. Diese Optionen werden dann automatisch in jede einzelne Moduldefinition kopiert. Mit Modulgruppen ist es einfach, viele Git-Module zu deklarieren, die alle auf der gleichen Archiv-URL basieren. Zusätzlich ist es auch möglich, für Modulgruppen Aliasnamen wie im Beispiel zu benutzen. Mit einem Alias können Sie eine gesamte Modulgruppe auf der Befehlszeile angeben.</para>

</sect3>
<sect3 id="module-sets-kde">
<title
>Besondere Unterstützung für KDE-Modulgruppen</title>

<para
>Die bisher beschriebene Unterstützung für Modulgruppen gilt allgemein für alle Git-basierten Module. Für die &kde;-Repositories enthält &kdesrc-build; zusätzliche Funktionen, um die Arbeit für Benutzer und Entwickler zu erleichtern. Diese Unterstützung wird durch die Angabe von <literal
>kde-projects</literal
> für die Option <option
>repository</option
> für diese Modulgruppen aktiviert. </para>

<para
>&kdesrc-build; erstellt normalerweise nur die Module in der Reihenfolge, wie Sie in Ihrer Einrichtungsdatei angegeben sind. Aber mit einer Modulgruppe <literal
>kde-projects</literal
> kann &kdesrc-build; die Auflösung von Abhängigkeiten von &kde;-spezifischen Modulen durchführen und darüber hinaus automatisch Module in den Build einbeziehen, auch wenn diese nur indirekt angegeben sind.</para>

<example id="example-using-kde-module-sets">
<title
>„kde-projects“-Modulgruppen verwenden</title>
<programlisting
># Nur juk aus kde/kdemultimedia/juk)
module-set <replaceable
>juk-set</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>juk</replaceable>
end module-set

# Alle Module in kde/multimedia/*, einschließlich juk,
# aber keine anderen Abhängigkeiten
module-set <replaceable
>multimedia-set</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>kde/multimedia</replaceable>
end module-set

# Alle Module in kde/multimedia/* und alle kde-projects-
# Abhängigkeiten für kde/kdemultimedia
module-set <replaceable
>multimedia-deps-set</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>kde/multimedia</replaceable>
    <option
>include-dependencies</option
> <replaceable
>true</replaceable>
end module-set

# Alle Module, die aus diesen drei Modulgruppen generiert wurden, erhalten automatisch
# die richtige Reihenfolge der Abhängigkeiten, unabhängig von den Einstellungen für include-dependencies
</programlisting>
</example>

<tip
><para
>Diese Modulgruppen <literal
>kde-projects</literal
> sind die wichtigste Methode, die Module zum Erstellen zu deklarieren.</para
></tip>

<para
>Alle Modulgruppen verwenden die Optionen <link linkend="conf-repository"
>repository</link
> und <link linkend="conf-use-modules"
>use-modules</link
>. Die Modulgruppe <link linkend="kde-projects-module-sets"
><literal
>kde-projects</literal
></link
> habt einen vordefinierten  Wert für die Option <option
>repository</option
>, aber andere Arten von Modulgruppen verwenden ebenfalls die Option <link linkend="conf-git-repository-base"
>git-repository-base</link
>. </para>
</sect3>

</sect2>

<sect2 id="kde-projects-module-sets">
<title
>Die offizielle &kde;-Moduldatenbank</title>

<para
>Die Git-Repositories von &kde; ermöglichen die Gruppierung verwandter Git-Module z. B. kdegraphics. Git erkennt diese Gruppierungen nicht, aber &kdesrc-build; kann diese Gruppen durch <link linkend="module-sets"
>Modulgruppen</link
> mit einer Option <option
>repository</option
> vom Wert <quote
><literal
>kde-projects</literal
></quote
> korrekt verarbeiten.</para>

<para
>&kdesrc-build; erkennt, dass das <literal
>kde-projects</literal
>-Repositories besonders bearbeitet werden müssen und passt den Erstellungsprozess dafür an. Unter anderem werden folgende Schritte ausgeführt:</para>

<itemizedlist>

<listitem
><para
>Herunterladen der neuesten Moduldatenbank vom <ulink url=" https://commits.kde.org/"
>&kde;-Git-Archiv</ulink
>.</para
></listitem>

<listitem
><para
>Suche nach einem Modul mit dem in der Option <option
>use-modules</option
> angegebenen Namen in dieser Datenbank.</para
></listitem>

<listitem
><para
>Für jedes gefundene Modul sucht &kdesrc-build; das entsprechende Repository in der Datenbank, basierend auf der Einstellung <link linkend="conf-branch-group"
>Branch-group</link
>. Wenn ein Repository existiert und der Branch aktiv ist, verwendet ihn &kdesrc-build; automatisch, um den Quellcode herunterzuladen oder zu aktualisieren. </para
></listitem>

</itemizedlist>

<note
><para
>In der aktuellen Datenbank bestehen einige Modulgruppen nicht nur aus einer Sammlung von Modulen, sondern deklarieren <emphasis
>auch</emphasis
> ein eigenes &git;-Archiv. In diesem Fall wird aktuell des &git;-Archiv der Gruppe anstelle der darin enthaltenen Archive verarbeitet. </para
></note>

<para
>Das folgende Beispiel zeigt, wie die &kde;-Moduldatenbank verwendet werden kann, um die Phonon-Multimediabibliothek zu installieren.</para>

<informalexample>
<programlisting
>module-set <replaceable
>media-support</replaceable>
    # Als Option muss kde-projects angegeben werden, damit die Moduldatenbank verwendet wird.
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Diese Option bestimmt, nach welchem Modul in der Datenbank gesucht wird.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>phonon/phonon</replaceable
> <replaceable
>phonon-gstreamer</replaceable
> <replaceable
>phonon-vlc</replaceable>
end module-set
</programlisting>
</informalexample>

<tip
><para
>Hier wird <literal
>phonon/phonon</literal
> mit der aktuellen Projektdatenbank verwendet, um zwischen der Gruppe von Projekten mit dem Namen <quote
>phonon</quote
> und einzelnen Projekten mit diesem Namen zu unterscheiden. In der aktuellen Version von &kdesrc-build; wird die erste Variante benutzt, aber dann werden viel mehr Bacḱends als nötig erstellt.</para
></tip>

<para
>Das folgende Beispiel ist wahrscheinlich realistischer und zeigt eine Funktion, die nur für die &kde;-Moduldatenbank verfügbar ist: Erstellen aller &kde;-Grafikprogramme mit einer Deklaration.</para>

<informalexample>
<programlisting
>module-set <replaceable
>kdegraphics</replaceable>
    # Als option muss kde-projects für die Moduldatenbank verwendet werden.
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Diese Option legt fest, welche Module in der Datenbank gesucht werden sollen.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <literal
>kdegraphics/libs</literal
> <literal
>kdegraphics/*</literal>
end module-set
</programlisting>
</informalexample>

<para
>Hier werden zwei wichtige Fähigkeiten gezeigt:</para>

<orderedlist>

<listitem
><para
>Mit &kdesrc-build; können Sie Module angeben, die von einem angegebenen Modul abstammen, ohne das übergeordnete Modul selbst zu erstellen, indem Sie die Syntax <userinput
><replaceable
>module-name</replaceable
>/*</userinput
> verwenden. In diesem Beispiel ist das sogar erforderlich, das das Modul kdegraphics als inaktiv markiert ist, so dass es nicht unbeabsichtigt mit allen darin enthaltenen Module erstellt wird. Mit der Angabe von untergeordneten Modulen, kann &kdesrc-build; dieses deaktivierte Modul übergehen. </para
></listitem>

<listitem
><para
>&kdesrc-build; fügt außerdem auch mehrfach angegebene Module nur einmal in die Erstellungsliste ein. Dadurch kann <literal
>kdegraphics/libs</literal
> manuall als erstes Modul zum Erstellen vor <literal
>kdegraphics</literal
> angegeben werden, ohne dass <literal
>kdegraphics/libs</literal
> zweimal erstellt wird. Dies war früher für die korrekte Behandlung von Abhängigkeiten erforderlich und bleibt heute eine Ausweichmöglichkeit für den Fall, dass in der &kde;-Projektdatenbank Metadaten zu Abhängigkeiten fehlen. </para
></listitem>
</orderedlist>
</sect2>

<sect2 id="ignoring-project-modules">
<title
>&kde;-Projektmodule ausfiltern</title>

<para
>Vielleicht möchten Sie alle Programme in einer &kde;-Modulgruppe mit <emphasis
>Ausnahme</emphasis
> eines bestimmten Programms erstellen.</para>

<para
>In der Gruppe <literal
>kdeutils</literal
> gibt es zum Beispiel ein Programm mit dem Namen <application
>kremotecontrol</application
>. Hat Ihr Rechner nicht die passende Hardware, um Signale von Fernsteuerungen zu empfangen, werden Sie möglicherweise darauf verzichten wollen, jedesmal <application
>kremotecontrol</application
> herunterzuladen, zu erstellen und zu installieren, wenn Sie <literal
>kdeutils</literal
> aktualisieren.</para>

<para
>Dies erreichen Sie durch die Option <link linkend="conf-ignore-modules"
>ignore-modules</link
>. Auf der Befehlszeile bewirkt die Option <link linkend="ignoring-modules"
>&cmd-ignore-modules;</link
> dasselbe, ist aber praktischer, um ein Modul nur einmal herauszufiltern. </para>

<example id="example-ignoring-a-module">
<title
>Beispiel für das Ignorieren eines &kde;-Projektmoduls aus einer Gruppe</title>
<programlisting
>module-set <replaceable
>utils</replaceable>
    <option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

    # Diese Option bestimmt, nach welchem Modul in der Datenbank gesucht wird.
    <option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>kdeutils</replaceable>

    # Diese Option legt fest, welche der mit use-modules oben gewählten Module ausgelassen wird.
    <option
><link linkend="conf-ignore-modules"
>ignore-modules</link
></option
> <replaceable
>kremotecontrol</replaceable>
 end module-set

module-set <replaceable
>graphics</replaceable>
<option
><link linkend="conf-repository"
>repository</link
></option
> <literal
>kde-projects</literal>

# Diese Option bestimmt, nach welchem Modul in der Datenbank gesucht wird.
<option
><link linkend="conf-use-modules"
>use-modules</link
></option
> <replaceable
>extragear/graphics</replaceable>

# Diese Option legt fest, welche der mit use-modules oben gewählten Module ausgelassen wird.
# In diesem Fall werden *sowohl* extragear/graphics/kipi-plugins und
# extragear/graphics/kipi-plugins/kipi-plugins-docs ignoriert
<option
><link linkend="conf-ignore-modules"
>ignore-modules</link
></option
> <replaceable
>extragear/graphics/kipi-plugins</replaceable>
end module-set
</programlisting>
</example>

</sect2>

</sect1>

<sect1 id="quick-start-conclusion">
<title
>Zusammenfassung</title>
<para
>Dies sind die wichtigsten Funktionen und Konzepte, die für den Einstieg in &kdesrc-build;</para>

<para
>Weitere Informationen finden Sie in dieser Dokumentation. Insbesondere die <link linkend="supported-cmdline-params"
>Liste der Befehlszeilenoptionen</link
> und die <link linkend="conf-options-table"
>Tabelle der Optionen für Einrichtungsdateien</link
> sind nützliche Referenzen.</para>

<para
>Die &kde;-Gemeinschaft unterhält außerdem <ulink url="https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source"
>eine Online-Wiki-Referenz, wie wie man den Quellcode baut</ulink
>, darin finden Sie auch Hinweise  und weitere Anleitungen zu &kdesrc-build;.</para>

</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
>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. Wenn Sie jedoch noch nie &kdesrc-build; ausgeführt haben, sollten Sie zuerst &kdesrc-build; mit der Option <command
>kdesrc-build <option
><link linkend="cmdline-metadata-only"
>--metadata-only</link
></option
></command
> ausführen, damit <option
>--pretend</option
> funktioniert. <tip
><para
>Für noch ausführlichere Ausgaben von &kdesrc-build; verwenden Sie die Option <option
>--debug</option
>. </para
></tip>

</para
></listitem>

<listitem
><para
>&kdesrc-build; kann mit Unterstützung der &kde;-FTP-Server einige Subversion-Module beschleunigt herunterladen. Wenn für diese Module bereits komprimierte Pakete auf der Webseite vorhanden sind, werden diese geladen und ausgepackt. </para>

<tip
><para
>Allgemein sind keine besonderen Vorbereitungen nötig, um das erste Herunterladen eines Git-Moduls durchzuführen, da in jedem Fall das gesamte Gut-Archiv heruntergeladen werden muss. Daher ist für den Server eindeutig klar, was gesendet werden muss.</para
></tip>

<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
>Ausgezeichnete Unterstützung für das Erstellen der &Qt;-Bibliothek, wenn eine &kde;-Software, die Sie erstellen möchten, eine aktuelle Version von &Qt; benötigt, die in Ihrer Distribution nicht vorhanden ist. </para
></listitem>

<listitem
><para
>&kdesrc-build; erfordert keine grafische Bedienungsoberfläche (<acronym
>GUI</acronym
>), Sie können &kde;-Software 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. Hinweis: Dies gilt nicht, wenn benutzerdefinierte Entwicklungs-Werkzeuge z. B. mit <link linkend="conf-cmake-toolchain"
>cmake-toolchain</link
> verwendet werden. </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 wechseln, 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
>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
>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, sodass &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, sodass am Rechner auch dann noch gearbeitet werden kann, wenn gerade &kdesrc-build; ausgeführt wird. </para
></listitem>

<listitem
><para
>Unterstützt &kde;'s <link linkend="using-branches"
>Tags und Zweige (branches)</link
> </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; 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
>Die voreingestellten Optionen sind gut geeignet für die Installation von &kde; aus dem anonymen Quelltext-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</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
>Erzwingt ein vollständig neues Erstellen durch Ausführung von &kdesrc-build; mit der Option <option
>--refresh-build</option
>. </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. Des weiteren wird mit jedem Skript-Durchlauf ein symbolischer Link namens latest erzeugt, der auf das jeweils letzte Protokoll verweist. </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. </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 zweiten mal 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, und alle Optionen und Einstellungs-Parameter, die für diese Module verwendet werden sollen. </para>

<sect2 id="kdesrc-buildrc-layout">
<title
>Layout der Einrichtungsdatei</title>

<sect3 id="kdesrc-buildrc-layout-global">
<title
>Globale Einstellungen</title>

<para
>In der Einrichtungsdatei werden zuerst die globalen Einstellungen wie folgt festgelegt: </para>

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

</sect3>
<sect3 id="kdesrc-buildrc-layout-modules">
<title
>Einstellungen für Module</title>

<para
>Danach folgen eine oder mehrere Modul-Abschnitte, die in einer der beiden folgenden Formen angegeben werden: </para>

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

<listitem>
<programlisting
>module-set <replaceable
>module-set-name</replaceable>
  repository <userinput
>kde-projects</userinput
> or <userinput
><replaceable
>git://host.org/path/to/repo.git</replaceable
></userinput>
  use-modules <replaceable
>module-names</replaceable>

# Andere Optionen können auch gesetzt werden
<replaceable
>option-name option-value</replaceable>
<replaceable
>[...]</replaceable>
end module-set
</programlisting>
</listitem>
</itemizedlist>

<important
><para
>Beachten Sie, das die zweite Form „module-set“ <emphasis
>nur mit Git-basierten Modulen</emphasis
> funktioniert.</para
></important>

<para
>Für Subversion-Module muss <replaceable
>modul-name</replaceable
> ein Modulname aus dem &kde;-&subversion;-Archiv sein (zum Beispiel kdeartwork oder kde-wallpapers). Dies können Sie umgehen, wenn Sie die <link linkend="conf-override-url"
>&subversion;-URL direkt eingeben</link
>. </para>

<para
>Für Git-Module ist im Prinzip jeder beliebige Name zulässig, solange er in der Einrichtungsdatei eindeutig ist und nur einmal vorkommt. Beachten Sie, dass die Namen der Quelltext- und Erstellungssystem auf dem Modulnamen basieren, solange Sie nicht die Option <link linkend="conf-dest-dir"
>dest-dir</link
> benutzen. </para>

<para
>Bei Git-<emphasis
>Modulgruppen</emphasis
> jedoch muss die Option <replaceable
>module-names</replaceable
> den tatsächlichen Git-Modulen in der ausgewählten Option <option
>repository</option
> entsprechen. Weitere Informationen finden Sie in den Abschnitten <link linkend="conf-git-repository-base"
>git-repository-base</link
> oder <link linkend="conf-use-modules"
>use-modules</link
>. </para>

</sect3>

<sect3 id="kdesrc-buildrc-option-values">
<title
>Verarbeitung von Options-Werten</title>

<para
>Generell wird der gesamte Inhalt einer Zeile nach <replaceable
>option-name</replaceable
> als <replaceable
>option-value</replaceable
> verwendet.</para>

<para
>&kdesrc-build; ersetzt eine Folge von <userinput
>${<replaceable
>Name-der-Option</replaceable
>}</userinput
> durch den Wert dieser Option aus der globalen Einrichtung. Damit können Sie den Wert vorhandener Optionen referenzieren, einschließlich Optionen, die bereits durch &kdesrc-build; festgelegt sind.</para>

<para
>Ein Beispiel dazu finden Sie unter <xref linkend="make-options-example"/>.</para>

</sect3>

<sect3 id="kdesrc-buildrc-options-groups">
<title
><quote
>options</quote
>-Module</title>

<para
>Es gibt einen abschließenden Eintrag <literal
>options</literal
>-Gruppen für die Einrichtungsdatei, der immer dann eingesetzt werden kann, wenn auch <literal
>module</literal
> oder <literal
>module-set</literal
> verwendet werden kann.</para>

<programlisting
>options <replaceable
>module-name</replaceable>
<replaceable
>option-name option-value</replaceable>
<replaceable
>[...]</replaceable>
end options
</programlisting>

<para
>Für eine <literal
>options</literal
>-Gruppe können wie in einer Modul-Deklaration Optionen angegeben werden. Die <literal
>options</literal
>-Gruppe wird für ein vorhandenes Modul definiert. Alle auf diese Weise gesetzten Optionen <emphasis
>überschreiben</emphasis
> die Optionen, die für das zugehörige Modul definiert wurden.</para>

<important
><para
>Der zugehörige Modulname <emphasis
>muss</emphasis
> dem in der Deklaration von <literal
>options</literal
> angegebenen Namen entsprechen. Achten Sie daher besonders auf die Schreibweise.</para
></important>

<para
>Dies ermöglicht die Deklaration einer gesamten Modulgruppe <literal
>module-set</literal
>, in der die gleichen Optionen für alle Module benutzt werden, aber mit der <literal
>options</literal
>-Gruppe Änderungen für einzelne Module eingestellt werden.</para>

<para
><literal
>options</literal
>-Gruppen können auch für benannte Modulgruppen gelten. Dies ermöglicht es erfahrenen Benutzern, eine gemeinsame Einrichtungsdatei mit Deklarationen für <literal
>module-set</literal
> als Basis zu verwenden und dann Änderungen an den Optionen vornehmen, die von diesen Modulgruppen in Einrichtungsdateien verwendet werden, die den <literal
><link linkend="kdesrc-buildrc-including"
>include</link
></literal
>-Befehl verwenden, um auf die Basiskonfiguration zu verweisen.</para>

<example id="ex-options-group">
<title
>Beispiel für die Anwendung von „options“</title>

<para
>In diesem Beispiel sollen alle Module aus der Softwaregruppe &kde;.Multimedia erstellt werden. Für das Programm &kmix; soll jedoch eine unterschiedliche Version verwendet werden, um vielleicht eine Fehlerkorrektur zu testen. Dies funktioniert wie folgt:</para>

<programlisting
>module-set <replaceable
>kde-multimedia-set</replaceable>
  repository <userinput
>kde-projects</userinput>
  use-modules <replaceable
>kde/kdemultimedia</replaceable>
  branch <replaceable
>master</replaceable>
end module-set

# kmix ist in der Gruppe kde/kdemultimedia enthalten, auch wenn kmix bisher noch
# in dieser Datei genannt wurde, kann &kdesrc-build; die Änderung erkennen.
options <replaceable
>kmix</replaceable>
  branch <replaceable
>KDE/4.12</replaceable>
end options
</programlisting>

<para
>Wird nun &kdesrc-build; ausgeführt, werden alle &kde;-Multimediaprogramme aus dem Zweig <quote
>master</quote
> des Quelltextarchivs erstellt, nur &kmix; vom älteren Zweig <quote
>KDE/4.12</quote
>. Durch die Benutzung von <literal
>options</literal
> müssen Sie nicht alle <emphasis
>anderen</emphasis
> &kde;-Multimediaprogramme einzeln auflisten, um für sie den richtigen Zweig einzustellen.</para>

</example>

<note>
<para
>Beachten Sie, dass diese Option nur in &kdesrc-build; ab Version 1.16 oder in der Entwicklerversion von &kdesrc-build; nach dem 12.01.2014 vorhanden ist.</para
></note>

</sect3>

</sect2>

<sect2 id="kdesrc-buildrc-including">
<title
>Andere Einrichtungsdateien einschließen</title>

<para
>In einer Einrichtungsdatei können Sie eine Referenz auf andere Dateien mit dem Schlüsselwort <literal
>include</literal
> und dem Namen einer Datei benutzen. Das führt zum gleichen Ergebnis, als wenn die eingeschlossene Datei an dieser Stelle eingefügt wäre. </para>

<informalexample
><para
>Sie können zum Beispiel folgende Einstellung benutzen:</para>
<programlisting
>global
    include <replaceable
>~/common-kdesrc-build-options</replaceable>

    # Spezielle Optionen hier einfügen.

end global
</programlisting>
</informalexample>

<note
><para
>Wenn Sie nicht den vollständigen Pfad zur einzuschließenden Datei angegeben haben, dann wird die Datei vom Ordner mit der Quelldatei aus gesucht. Die Suche wird auch rekursiv ausgeführt.</para
></note>

</sect2>

<sect2 id="kdesrc-buildrc-common">
<title
>Häufig verwendete Einstellungsoptionen</title>

<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-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-branch"
>branch</link
>: Zum Herunterladen aus einem bestimmten Zweig (branch) anstelle von /trunk für &subversion; oder <literal
>master</literal
> für Git.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
>: Legen fest, welche Parameter zur Konfiguration von &Qt; benutzt werden soll.</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-make-options"
>make-options</link
>: Übergibt bestimmte Optionen an das Programm &make;, wie zum Beispiel die Anzahl der benutzten CPUs.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>: Legt den Pfad zu &Qt; fest.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>: Ändert den Pfad für heruntergeladene Quellen.</para
></listitem>
</itemizedlist>

</sect2>
</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
>Bemerkungen</entry>
</row>
</thead>

<tbody>

<row>
<entry
>apidox</entry>
<entry
></entry>
<entry
><para
>Mit dieser Option wurde die API-Dokumentation der KDE-Module erstellt. Diese Option wurde in &kdesrc-build; 1.6.3 entfernt. Die API-Dokumentation finden Sie im Internet auf <ulink url="https://api.kde.org/"
>kde.org</ulink
>. Zusätzlich kann die API-Dokumentation für KDE mit dem Skript <command
>kdedoxygen.sh</command
> aus dem Modul kde-dev-scripts lokal erstellt werden. Weitere Informationen dazu finden Sie auf der <ulink url="https://techbase.kde.org/Development/Tools/apidox"
>KDE TechBase</ulink
>.</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"/> 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 <userinput
>false</userinput
> 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
>master</replaceable
> (bei &git;-Modulen) oder <replaceable
>trunk</replaceable
> (bei &subversion;), in denen die &kde;-Entwicklung stattfindet, heruntergeladen werden sollen.</para>

<para
>Um beispielsweise &kde; 4.6 herunterzuladen, stellen Sie die Option auf <replaceable
>4.6</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>

<note
><para
>Für die meisten &kde;-Module sollten Sie vermutlich stattdessen die Option <link linkend="conf-branch-group"
>branch-group</link
> benutzen und diesen Option nur ausnahmsweise verwenden.</para
></note>

</entry>
</row>

<row id="conf-branch-group">
<entry
>branch-group</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>

<para
>Stellen Sie diese Option auf eine allgemeine Gruppe ein, aus der Sie Module auswählen möchten.</para>

<para
>Für unterstützte &git;-Modularten bestimmt &kdesrc-build; automatisch den aktuell zu verwendenden Zweig auf der Grundlage der Regeln, die von den &kde;-Entwicklern festgelegt wurden. Diese Regeln finden Sie im Quelltextarchiv <literal
>kde-build-metadata</literal
> in Ihrem Quelltextordner. Wenn der Zweig bestimmt ist, wird dieser benutzt, als wenn Sie ihn selbst mit der Option <link linkend="conf-branch"
>branch</link
> festgelegt hätten. </para>

<para
>Dies ist besonders hilfreich, wenn Sie nur die Aktualisierungen an einigen normalen Entwicklungen verfolgen möchten, ohne sich dabei um alle Änderungen an Zweignamen kümmern zu müssen.</para>

<para
>Zum 11.08.2013 gibt es folgende aktuelle Zweiggruppen:</para>

<itemizedlist>

<listitem
><para
><literal
>stable-qt4</literal
>, für die Verfolgung von Fehlerkorrekturen an den &kde;-Bibliotheken und -Programmen auf der Basis von &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>latest-qt4</literal
>, für die Verfolgung von Entwicklung und neuer Funktionen an den &kde;-Bibliotheken und -Programmen auf der Basis von &Qt; 4.</para
></listitem>

<listitem
><para
><literal
>kf5-qt5</literal
>, für die Verfolgung der <quote
>bleeding-edge</quote
> Entwicklung des zukünftigen &Qt; 5-basierten &kde; Frameworks 5, &plasma; Workspace 2, &etc;</para
></listitem>

</itemizedlist>

<para
>Bedenken Sie, wenn Sie <emphasis
>selbst</emphasis
> einen <literal
>branch</literal
> auswählen, wird dadurch diese Einstellung überschrieben. Dasselbe trifft auf andere zweigspezifische Auswahloptionen wie zum Beispiel <link linkend="conf-tag"
>tag</link
> zu.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.16-pre2 hinzugefügt.</para>

<note
><para
>Diese Option trifft nur auf die &git;-Module <literal
>kde-projects</literal
> zu, der häufigste Fall. Siehe auch <xref linkend="kde-projects-module-sets"/>. </para
></note>

</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 <userinput
>true</userinput
> 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 <userinput
>false</userinput
> 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 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-generator">
<entry
>cmake-generator</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Verwenden Sie diese Option, um anzugeben, welches Generierungs-Programm mit &cmake; verwendet werden soll. Derzeit werden sowohl <literal
>Ninja</literal
> und <literal
>Unix Makefiles</literal
> als auch darauf basierende Generierungs-Programme wie <literal
>Eclipse CDT4 - Ninja </literal
> unterstützt. Ungültige nicht unterstützte Werte werden ignoriert und nicht beachtet. Ist diese Option nicht gesetzt, wird <literal
>Unix Makefiles</literal
> standardmäßig verwendet. </para>

<para
>Wenn ein gültiges Generierungs-Programm auch über <link linkend="conf-cmake-options"
>cmake-options</link
> angegeben wird, überschreibt das den Wert für <literal
>cmake-generator</literal
>.</para
></entry>
</row>

<row id="conf-cmake-toolchain">
<entry
>cmake-toolchain</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Mit dieser Option wird eine Datei mit Entwicklungs-Werkzeugen für &cmake; angegeben. </para>
<para
>Wenn gültige Entwicklungs-Werkzeuge eingerichtet sind, wird &kdesrc-build; <emphasis
> Umgebungsvariablen nicht mehr automatisch setzen</emphasis
>. Sie können mit &set-env;, &binpath; und &libpath; die Umgebung manuell einrichten, wenn Ihre Entwicklungs-Werkzeuge nicht sofort mit &kdesrc-build; funktionieren. Weitere Informationen finden Sie im Abschnitt <link linkend="kdesrc-build-std-flags"
>Übersicht der Standard-Parameter von &kdesrc-build;</link
>. </para>
<para
>Wenn ein gültiges Entwicklungs-Werkzeug auch über <link linkend="conf-cmake-options"
>cmake-options</link
> angegeben wird, überschreibt das den Wert für <literal
>cmake-toolchain</literal
>.</para
></entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Wird den globalen Optionen für das Standard-Erstellungssystem angefügt, überschreibt die globale Einstellung für andere Erstellungssysteme.</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 angewendet, da &cmake; dafür nicht benutzt wird. Verwenden Sie stattdessen die Option <link linkend="conf-configure-flags"
>configure-flags</link
>.</para>

<para
>Wenn ein gültiges Generierungs-Programm unter den aufgelisteten Optionen angegeben ist, überschreibt das den Wert von <link linkend="conf-cmake-generator"
>cmake-generator</link
>. Ungültige, nicht unterstützte Generierungs-Programme werden ignoriert und nicht an &cmake; übergeben. </para>

<para
>Wenn ein gültiges Entwicklungs-Werkzeuge unter den aufgelisteten Optionen angegeben ist, überschreibt das den Wert von <link linkend="conf-cmake-toolchain"
>cmake-toolchain</link
>. Ungültige Entwicklungs-Werkzeuge werden ignoriert und nicht an &cmake; übergeben. </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 <userinput
>false</userinput
> 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-compile-commands-export">
<entry
>compile-commands-export</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>
<para
>Ermöglicht die Erzeugung einer Datei <literal
>compile_commands.json</literal
> über CMake im Erstellungsordner. Diese Option ist standardmäßig auf <replaceable
>true</replaceable
>, setzen Sie sie auf <userinput
>false</userinput
>, um dieses Verhalten zu deaktivieren. </para>
</entry>
</row>

<row id="conf-compile-commands-linking">
<entry
>compile-commands-linking</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>
<para
>Ermöglicht das Erstellen von symbolischen Verknüpfungen von <literal
>compile_commands.json</literal
>, die über CMake innerhalb des Erstellungsordners erzeugt werden, auf den passende Quellcodeordner. Diese Option ist standardmäßig auf <replaceable
>false</replaceable
> gesetzt, setzen Sie sie auf <userinput
>true</userinput
>, um die automatische Erstellung von symbolischen Verknüpfungen zu aktivieren. </para>
</entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Wird den globalen Optionen für das Standard-Erstellungssystem angefügt, überschreibt die globale Einstellung für andere Erstellungssysteme.</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</emphasis
>.</para>

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

<row id="conf-custom-build-command">
<entry
>custom-build-command</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung (Option für das Erstellen)</entry>
<entry>
    <para
>Diese Option kann verwendet werden, um zum Beispiel einen anderen Befehl als <command
>make</command
> für die Ausführung des Erstellungsprozesses zu verwenden. Normalerweise funktioniert &kdesrc-build; auch ohne die Option korrekt, aber es kann für alternative Erstellungssysteme nützlich sein. </para>

    <para
>Der Wert dieser Option wird üblich in der Befehlszeile ausgeführt und durch die Option <link linkend="conf-make-options"
>make-options</link
> wie sonst auch verändert. </para>
</entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Wird den globalen Optionen für das Standard-Erstellungssystem angefügt, überschreibt die globale Einstellung für andere Erstellungssysteme.</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  <userinput
>none</userinput
> 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 <userinput
>true</userinput
> 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
>Diese Option wurde in &kdesrc-build; 1.14 entfernt. </para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Diese Option wurde in &kdesrc-build; 1.14 entfernt. </para>
</entry>
</row>

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

<row id="conf-git-desired-protocol">
<entry
>git-desired-protocol</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Diese Option betrifft nur Module aus einem <link linkend="kde-projects-module-sets"
>&kde;-Projektarchiv</link
>.</para>

<para
>Mit dieser Option wird eingestellt, welches Netzwerkprotokoll bevorzugt zum Einspielen von Quelltext für diese Module verwendet werden soll. Normalerweise wird das sehr effiziente <literal
>git</literal
>-Protokoll benutzt, aber dies kann in manchen Netzwerken wie zum Beispiel Firmen-Intranets oder öffentliche Wi-Fi-Netze gesperrt sein. Als Alternative steht das viel besser unterstützte <literal
>https</literal
>-Protokoll für Internet-Webseiten zur Verfügung.</para>

<para
>Wenn sie eines dieser eingeschränkten Netzwerke benutzen, können Sie diese Option auf <userinput
>http</userinput
> setzen, damit das <literal
>https</literal
>-Protokoll bevorzugt wird.</para>

<tip
><para
>Sie müssen möglicherweise auch die Option  <link linkend="conf-http-proxy"
>http-proxy</link
> setzen, wenn ein HTTP-Proxy für den Netzwerkverkehr erforderlich ist.</para
></tip>

<para
>In allen anderen Fällen sollten Sie diese Option nicht benutzen, da das Standardprotokoll effektiver ist.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt. Vor 20.06 wurde diese Option verwendet, um die Fetch-URL anstelle der Push-URL zu einzustellen. Ab 20.06 wird <literal
>https</literal
> immer beim Aktualisieren von KDE-Projekten verwendet.</para>
</entry>
</row>

<row id="conf-git-repository-base">
<entry
>git-repository-base</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Diese seit Version 1.12.1 vorhandene Option kann dazu verwendet werden, um eine Abkürzung für eine bestimmte Basis-URL eines Git-Archivs zu definieren, die dann in der Deklaration von <link linkend="module-sets"
>Modulgruppen</link
> benutzt werden kann. Damit lassen sich dann schnell viele Git-Module zum Erstellen deklarieren.</para>

<para
>Sie müssen zwei durch Leerzeichen getrennte Werte angeben: Der Name der der Basis-URL zugewiesen wird und die tatsächliche Basis-URL selbst, wie zum Beispiel:</para>

<para>
<informalexample>
<programlisting
>global
   # andere Optionen

   # Der übliche Pfad für den anonymen Zugriff auf alle Git-Module auf dem Server.
   git-repository-base <replaceable
>kde-git</replaceable
> <replaceable
>kde:</replaceable>
end global

# Modul-Deklarationen

module-set
   # Nun können Sie den vorher definierten Alias benutzen, aber <emphasis
>nur</emphasis>
   # in einer Modulgruppe.
   repository <replaceable
>kde-git</replaceable>

   <link linkend="conf-use-modules"
>use-modules</link
> <replaceable
>module1.git</replaceable
> <replaceable
>module2.git</replaceable>
end module-set
</programlisting>
</informalexample>
</para>

<para
>Mit der Option <literal
>use-modules</literal
> einer Modulgruppe verhält sich &kdesrc-build; intern so, als ob folgende Optionen angegeben wären:</para>

<programlisting
>module module1
    repository kde:<replaceable
>module1.git</replaceable>
end module

module module2
    repository kde:<replaceable
>module2.git</replaceable>
end module
</programlisting>

<para
>Das oben benutzte Präfix <literal
>kde:</literal
> für &git;-Archive ist eine Kurzform, die von &kdesrc-build; automatisch eingerichtet wird. Weiter Informationen dazu finden Sie auf der TechBase-Seite <ulink url="https://techbase.kde.org/Development/Git/Configuration#URL_Renaming"
>URL Renaming</ulink
>. Im Gegensatz zu allen anderen Einstellungen kann diese Option auch mehrfach verwendet werden, um alle erforderlichen Alias zu erstellen.</para>

<tip
><para
>Diese Option ist für Modulgruppen nicht erforderlich. Die Option ist nützlich, um das gleiche Quelltextarchiv für viele verschiedene Modulgruppen zu benutzen.</para
></tip>
</entry>
</row>

<row id="conf-git-user">
<entry
>git-user</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>
<para
>Diese Option ist für &kde;-Entwickler vorgesehen. Ein hier eingetragener Wert wird automatisch für die Einstellung zur Identität für das &git;-Softwaresystem für  <emphasis
>neu heruntergeladene</emphasis
> &git;-Module einschließlich der Mehrheit der &kde;-Module.</para>

<para
>Insbesondere für den Benutzernamen und die E-Mail-Adresse eines jeden neuen &git;-Archiv werden die Werte dieser Option verwendet.</para>

<para
>Der Wert muss im Format <option
><replaceable
>User Name</replaceable
> &lt;<replaceable
>email@example.com</replaceable
>&gt;</option
> angeben werden.</para>

<para>
<informalexample>
<para
>Ein Entwickler mit dem Namen <quote
>Foo Barbaz</quote
> mit der E-Mail-Adresse <quote
>foo@abc.xyz</quote
> würde zum Beispiel folgendes verwenden:</para>

<screen
><symbol
>git-user</symbol
> <replaceable
>Foo Barbaz</replaceable
> &lt;<replaceable
>foo@abc.xyz</replaceable
>&gt;
</screen>
</informalexample>
</para>

<para
>Diese Option wurde in &kdesrc-build; 15.09 hinzugefügt. </para>
</entry>
</row>

<row id="conf-http-proxy">
<entry
>http-proxy</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>

<entry
><para
>Mit dieser Option wird eine URL eines Proxy-Servers angegeben, die für alle HTTP.Netzwerkverbindungen verwendet werden soll, um zum Beispiel Archive für eine neues Modul oder die <link linkend="kde-projects-module-sets"
>KDE-Projektdatenbank</link
> herunterzuladen.</para>

<para
>Zusätzlich versucht &kdesrc-build; sicherzustellen, dass alle verwendeten Hilfsprogramme auch diesen Proxy-Server benutzen. Dazu wird die Umgebungsvariable <envar
>http_proxy</envar
> auf den vorgegebenen Server eingestellt, <emphasis
>wenn die Variable bisher noch keinen Wert hatte</emphasis
>.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt.</para>
</entry>
</row>

<row id="conf-ignore-kde-structure">
<entry
>ignore-kde-structure</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>
<para
>Diese Option ist veraltet und wird in einer der nächsten Versionen wieder entfernt.</para>

<para
>Bitte benutzen Sie stattdessen die Option <option
><link linkend="conf-directory-layout"
>directory-layout</link
></option
>, die mehr Auswahl ermöglicht.</para>
</entry>
</row>

<row id="conf-directory-layout">
<entry
>directory-layout</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Diese Option wird verwendet, um die Ordnerstruktur für &kdesrc-build; zum Erstellen von Quell- und Build-Ordnern anzugeben.</para>
<para
>Aktuell gibt es drei mögliche Werte: <userinput
>metadata</userinput
>, <userinput
>invent</userinput
> und <userinput
>flat</userinput
></para>
<para
>Das Layout <userinput
>flat</userinput
> gruppiert alle Module direkt unter den Quell- und Build-Ordnern der obersten Ebene. Statt zum Beispiel <literal
>source/extragear/network/telepathy/ktp-text-ui</literal
> im Layout <userinput
>metadata</userinput
> wird dieses Modul im Layout <userinput
>flat</userinput
> unter <literal
>source/ktp-text-ui</literal
> angelegt. </para>
<para
>Mit dem Layout <userinput
>invent</userinput
> wird eine Ordnerhierarchie die die relativen Pfade der Repositories auf <ulink url="https://invent.kde.org/"
>invent.kde.org</ulink
> angelegt. Zum Beispiel statt <literal
>source/kde/applications/kate</literal
> im Layout <userinput
>metadata</userinput
> wird dieses Modul im Layout <userinput
>invent</userinput
> unter <literal
>source/utilities/kate</literal
> angelegt. Dieses Layout wirkt sich nur auf KDE-Projekte aus. Es ist eine gute Wahl für den Anfang mit &kdesrc-build;. </para>
<para
>Schließlich entspricht das Layout <userinput
>metadata</userinput
>dem früheren Standardverhalten. Dieses Layout organisiert die KDE-Projekte entsprechend den Projektpfaden, die in den Projekt-Metadaten für diese Module angegeben sind. Dies ist eine gute Wahl, wenn Sie ein Ordner-Layout wünschen, das mit bestimmten KDE-Prozessen zusammenarbeitet. Beachten Sie, dass dieser Pfad deshalb nicht immer stabil ist. Als Ergebnis kann es vorkommen, dass &kdesrc-build; eine alte Kopie des Repositorys verwirft und eine neue für ein Projekt aufgrund von Änderungen in den Projektmetadaten erstellt.</para>
<para
>Als Voreinstellung wird das Layout <userinput
>metadata</userinput
> für dieAbwärtskompatibilität für bestehende Benutzer von &kdesrc-build; verwendet.</para>
</entry>
</row>

<row id="conf-ignore-modules">
<entry
>ignore-modules</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>In dieser Option genannte Module, die von &kdesrc-build; wegen einer Option <link linkend="conf-use-modules"
>use-modules</link
> bearbeitet würden, werden statt dessen vollständig ausgelassen. Benutzen Sie diese Option, um das gesamte <link linkend="kde-projects-module-sets"
>KDE-Projekt</link
> mit Ausnahme von bestimmten Modulen zu erstellen.</para>

<para
>Als Wert der Option muss nicht zwingend der Name des Moduls direkt eingegeben werden. Jedes Modul, dessen vollständige  fortlaufend Teile des <link linkend="kde-projects-module-sets"
>&kde;-Projektmodulpfads</link
> auf eine dieser Optionswerte zutrifft, wird ignoriert. Daher können Sie mit dieser Methode mehrere Module ignorieren.</para>

<para
>Mit einer Option <replaceable
>libs</replaceable
> werden zum Beispiel sowohl <symbol
>kde/kdegraphics/libs</symbol
> als auch <symbol
>playground/libs</symbol
> ausgeschlossen, aber nicht <symbol
>kde/kdelibs</symbol
>, da mit dem vollständige Teil <quote
>kdelibs</quote
> verglichen wird.</para>

<tip
><para
>Weitere Informationen finden Sie unter <xref linkend="example-ignoring-a-module"/>.</para
></tip>

<para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt.</para>
</entry>
</row>

<row id="conf-include-dependencies">
<entry
>include-dependencies</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry>
<para
>Ist diese Option auf <userinput
>true</userinput
> gesetzt, werden auch alle bekannten Abhängigkeiten dieses Moduls erstellt, ohne dass Sie diese Abhängigkeiten - nicht einmal indirekt - angeben müssen.</para>

<note
><para
>Diese Option funktioniert nur mit <link linkend="kde-projects-module-sets"
><literal
>kde-project</literal
>-basierten Modulen</link
>. Dazu müssen die von den &kde;-Entwicklern betreuten Metadaten für die ausgewählte <link linkend="conf-branch-group"
>branch-group</link
> richtig eingestellt sein.</para
></note>

<para
>Diese Option ist standardmäßig aktiviert, um die Erstellung von Anwendungen zu unterstützen, die die neuere Versionen von &Qt; oder &plasma; als auf den normalen Betriebssystemen benötigen,</para>
</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 <userinput
>false</userinput
>. Sie können analog auch den Befehlszeilen-Parameter <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
> verwenden. </entry>
</row>

<row id="conf-install-environment-driver">
<entry
>install-environment-driver</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Standardmäßig wird mit &kdesrc-build; ein Shell-Skript installiert, das in den Profil-Einstellungs-Skripten eines Benutzers geladen werden kann, um die benötigten Umgebungsvariablen für die Ausführung der von &kdesrc-build; erstellten Plasma-Arbeitsfläche zu setzen.</para>

<para
>Dieser Treiber verändert die folgenden Dateien:</para>

<itemizedlist>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-master.sh</filename
> (normalerweise unter <filename
>~/.config/kde-env-master.sh</filename
>).</para
></listitem>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-user.sh</filename
> (normalerweise unter <filename
>~/.config/kde-env-user.sh</filename
>).</para
></listitem>
</itemizedlist>

<para
>Die Datei <filename
>kde-env-user.sh</filename
> ist optional. Sie ist für Benutzeranpassungen vorgesehen. siehe den Abschnitt <ulink url="https://userbase.kde.org/KDE_System_Administration/Environment_Variables#Troubleshooting_and_Debugging"
>Problembehebung und Fehlersuche</ulink
> der &kde; UserBase mit Beispielen für benutzerdefinierte Einstellungen. Diese Einstellungen können vom Benutzer auch an anderer Stelle  in den vorhandenen Skripten zur Einrichtung des Profils festgelegt werden.</para>

<para
>Sie können diese Funktion deaktivieren, indem Sie diese Option auf <replaceable
>false</replaceable
> setzen und die Option <link linkend="conf-install-session-driver"
>install-session-driver</link
> ebenfalls deaktivieren.</para>

<para
>Diese Option wurde in &kdesrc-build; 17.08 hinzugefügt.</para>

<tip
><para
>&kdesrc-build; überschreibt Ihre eigenen vorhandenen Dateien nicht, es sei denn, Sie geben die Befehlszeilenoption <option
><link linkend="cmdline-delete-my-settings"
>--delete-my-settings</link
></option
> an.</para
></tip>
</entry>
</row>

<row id="conf-install-session-driver">
<entry
>install-session-driver</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Ist diese Einstellung aktiviert, installiert &kdesrc-build; einen Treiber für die grafische Anmeldung, mit dem Sie sich für die durch &kdesrc-build; erstellte &kde;-Arbeitsumgebung anmelden können.</para>

<para
>Dieser Treiber verändert die folgenden Dateien:</para>

<itemizedlist>
<listitem
><para
><filename
>~/.xsession</filename
></para
></listitem>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-master.sh</filename
> (normalerweise unter <filename
>~/.config/kde-env-master.sh</filename
>).</para
></listitem>
<listitem
><para
><filename
>$XDG_CONFIG_HOME/kde-env-user.sh</filename
> (normalerweise unter <filename
>~/.config/kde-env-user.sh</filename
>).</para
></listitem>
</itemizedlist>

<para
>Wenn Sie eine eigenen Anmeldungsprozedur benutzen, können Sie diese Funktion abschalten, indem Sie die Option auf den Wert <replaceable
>false</replaceable
> setzen. Ist diese Option aktiviert, dann wird auch die Funktion <link linkend="conf-install-environment-driver"
>install-environment-driver</link
> verwendet.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt.</para>

<tip
><para
>&kdesrc-build; überschreibt Ihre eigenen vorhandenen Dateien nicht, es sei denn, Sie geben die Befehlszeilenoption <option
><link linkend="cmdline-delete-my-settings"
>--delete-my-settings</link
></option
> an.</para
></tip>
</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://l10n.kde.org/teams-list.php"
>http://l10n.kde.org/teams-list.php</ulink
>. </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 (Option für das Erstellen)</entry>
<entry
><para
>Mit Hilfe dieser Variablen können Sie Befehlszeilen-Parameter an <command
>make</command
> übergeben. Das kann beispielsweise bei Verwendung von <ulink url="https://github.com/distcc/distcc"
><application
>distcc</application
></ulink
> oder auf Systemen mit mehr als einem Prozessor nützlich sein. </para>
<para
>Nicht alle unterstützten Erstellungs-Systeme verwenden <command
>make</command
>. Für Systeme, die <command
>ninja</command
> für die Erstellung wie z.B. <link linkend="conf-override-build-system"
><application
>Meson</application
></link
> verwenden,  finden Sie im Abschnitt <link linkend="conf-ninja-options"
>ninja-Optionen</link
> Informationen zur Einstellung.</para>
</entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Stellen Sie diese Option auf <userinput
>true</userinput
>, 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 <userinput
>true</userinput
>, 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="https://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-ninja-options">
<entry
>ninja-options</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung (Option für das Erstellen)</entry>
<entry
><para
>Setzen Sie diese Variable, um Befehlszeilenoptionen an den Erstellungsbefehl <command
>ninja</command
> zu übergeben. Dies kann nützlich sein, um die Ausgabe<quote
>verbose</quote
> zu aktivieren oder manuell die Anzahl der parallelen Erstellungsvorgänge zu reduzieren, die <command
>ninja</command
> verwendet.</para>

<note
><para
>Diese Einstellung steuert nur ninja, wenn sie von &kdesrc-build; verwendet wird. Das &Qt;Modul <quote
>webengine</quote
> verwendet <command
>ninja</command
> indirekt, unterstützt dies aber offiziell nur, wenn es von <command
>make</command
> gebaut wird.In dieser Situation können Sie <literal
>NINJAFLAGS</literal
> angeben,  um <command
>make</command
> die entsprechenden Parameter zu übergeben, wenn es später <command
>ninja</command
> mit <link linkend="conf-make-options"
>make-options</link
> aufruft.</para>

<informalexample>
<programlisting
>options <replaceable
>qtwebengine</replaceable>
    # Beschränkt make und ninja auf maximal 6 getrennte Kompiliervorgänge auch
    # wenn mehr CPU-Leistung verfügbar ist, um die Auslastung des Speichers zu verringern
    <option
><link linkend="conf-make-options"
>make-options</link
></option
> -j<replaceable
>6</replaceable
> NINJAFLAGS=-j<replaceable
>6</replaceable>
end options
</programlisting>
</informalexample>
</note>
</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-num-cores">
<entry
>num-cores</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Diese Option wird durch &kdesrc-build; mit kdesrc-build-setup oder <command
>kdesrc-build --initial-setup</command
> auf die Anzahl der CPUs eingestellt, die mit dem externen Programm <application
>nproc</application
>) ermittelt wird. Kann &kdesrc-build; die Anzahl der CPUs nicht erkennen, wird ein Wert von 4 verwendet.</para>

<para
>Unter <xref linkend="make-options-example"/> finden Sie ein Beispiel für die Verwendung dieser Option. Diese Option wurde in Version 20.07 hinzugefügt.</para>
</entry>
</row>

<row id="conf-num-cores-low-mem">
<entry
>num-cores-low-mem</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Diese Option wird durch &kdesrc-build; mit kdesrc-build-setup oder <command
>kdesrc-build --initial-setup</command
> definiert, um die Anzahl der CPUs für Module wie <literal
>qtwebengine</literal
> mit hohem Speicherbedarf zu begrenzen, damit beim Erstellen der vorhandene Speicher nicht vollständig benutzt wird.</para>

<para
>Als typische Berechnung wird ein CPU-Kern für jeweils 2 Gigabyte (GiB) des gesamten Speichers benutzt. Es wird mindestens 1 Kern und nicht mehr als die mit der Option<option
><link linkend="conf-num-cores"
>num-cores</link
></option
> angegebenen Kerne verwendet.</para>

<para
>Obwohl diese Option für &Qt;-Modulen gedacht ist, können Sie sie für beliebige Module auf dieselbe Weise wie <option
>num-cores</option
> verwenden.</para>

<para
>Wenn &kdesrc-build; den verfügbaren Arbeitsspeicher nicht erkennen kann, wird dieser Wert auf 2 gesetzt.</para>

<para
>Diese Option wurde in Version 20.07 hinzugefügt.</para>
</entry>
</row>

<row id="conf-override-build-system">
<entry
>override-build-system</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>Dies ist eine fortgeschrittene Option, sie wurde in &kdesrc-build; 1.16 hinzugefügt.</para>

<para
>Normalerweise erkennt &kdesrc-build; das für ein heruntergeladenes Modul zu verwendende Erstellungssystem. Dies wird durch Suche nach besonderen  Dateien im Quelltextordner des Moduls erreicht.</para>

<para
>Einige Module können mehr als eine Datei enthalten, die Erstellungssysteme definieren. Dann funktioniert die automatische Erkennung nicht mehr korrekt. In diesem Fall kann das zu verwendende Erstellungssystem manuell vorgegeben werden.</para>

<para
>Folgende Typen von Erstellungssystemen können zurzeit eingestellt werden:</para>

<variablelist>
    <varlistentry>
        <term
>KDE</term>
        <listitem
><para
>Wird für die Erstellung von &kde;-Modulen verwendet. Tatsächlich kann damit jedes Modul erstellt werden, das &cmake; benutzt. Aber darauf kann man sich nicht verlassen.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>Qt</term>
        <listitem
><para
>Wird für die &Qt;-Bibliothek selbst verwendet.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>qmake</term>
        <listitem
><para
>Wird zur Erstellung von &Qt;-Modulen verwendet, die <literal
>.pro</literal
>-Dateien im Stil von <application
>qmake</application
> enthalten.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>generic</term>
        <listitem
><para
>Für die Erstellung von Modulen, die einfache Make-Dateien verwenden und keine spezielle Konfiguration benötigen.</para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>autotools</term>
        <listitem
><para
>Dies ist das Standard-Konfigurationssystem für viele frei und quelloffene Software, die nicht in eine der anderen Kategorien sind. </para
></listitem>
    </varlistentry>
    <varlistentry>
        <term
>meson</term>
        <listitem
><para
>Dies ist ein <ulink url="https://mesonbuild.com"
>relativ neues Werkzeug</ulink
> das als Ersatz für die Autotools an Popularität gewinnt und möglicherweise für einige nicht-&kde; Module nötig ist.</para
></listitem>
    </varlistentry>
</variablelist>

</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-persistent-data-file">
<entry
>persistent-data-file</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry
><para
>Benutzen Sie diese Option, um den Speicherort der ständigen Daten von &kdesrc-build; zu ändern. In der Voreinstellung werden diese Datei in der Datei <filename
>.kdesrc-build-data</filename
> im gleichen Ordner wie die verwendete Einrichtungsdatei gespeichert. Benutzen Sie mehrere unterschiedliche Konfigurationen im selben Ordner, dann können Sie mit dieser Option verhindern, dass die verschiedenen Konfigurationen zu Konflikten bei den ständigen Daten führen.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.15 hinzugefügt.</para>
</entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
><para
>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,</para>
<para
>Sie können <varname
>${MODULE}</varname
> or <varname
>$MODULE</varname
> im Pfad verwenden, um sie zum Namen des Moduls zu erweitern.</para>
</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 <userinput
>true</userinput
>.</para>
</entry>
</row>

<row id="conf-qmake-options">
<entry
>qmake-options</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>

<entry
><para
>Alle hier angegebenen Optionen werden bei Modulen, die das Erstellungssystem <symbol
>qmake</symbol
> verwenden, an den Befehl <command
>qmake</command
> weitergegeben, Sie können zum Beispiel die Option <userinput
>PREFIX=/pfad/zu/qt</userinput
> für qmake benutzen, um den Installationsordner zu überschreiben. </para>
<para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt.</para>
</entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung</entry>
<entry
>Mit dieser Option geben Sie einen Wert für die Umgebungsvariable <envar
>QTDIR</envar
> an. Wenn Sie diese Option nicht angeben, nimmt &kdesrc-build; an, dass &Qt; vom Betriebssystem bereitgestellt wird. </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 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
><para
>Wird diese Option auf einen Wert größer 0 gesetzt, aktualisiert &kdesrc-build; den Quelltext des Moduls auf genau diese 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.</para>

<note
><para
>Diese Option funktionierte nicht für Git-basierte Module einschließlich der Module aus dem <link linkend="kde-projects-module-sets"
>&kde;-Projektarchiv</link
> bis &kdesrc-build;-Version 1.16.</para
></note>

</entry>
</row>

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung (Option für das Erstellen)</entry>
<entry
>Ist diese Option auf <userinput
>true</userinput
> 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-ssh-identity-file">
<entry
>ssh-identity-file</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Mit dieser Option wird festgelegt, welche private SSH-Schlüsseldatei beim Befehl <command
>ssh-add</command
> verwendet wird, wenn &kdesrc-build; Quelltext aus einem Archiv herunterlädt, für das eine Authentifizierung erforderlich ist. Siehe auch <xref linkend="ssh-agent-reminder"/>.</para>

<para
>Diese Option wurde in Version 1.14.2 hinzugefügt.</para>
</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 <userinput
>true</userinput
>, 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 <ulink url="https://download.kde.org/download.php"
>einem der Softwarespiegelserver</ulink
> heruntergeladen werden.</para>

<note
><para
>Diese Option wird für Git-basierte Module seit &kdesrc-build; 1.16 unterstützt..</para
></note>
</entry>
</row>

<row id="conf-use-clean-install">
<entry
>use-clean-install</entry>
<entry
>Moduleinstellung überschreibt die globale Einstellung (Option für das Erstellen)</entry>
<entry
><para
>Setzen Sie diese Option auf <userinput
>true</userinput
>, damit &kdesrc-build; <command
>make uninstall</command
> direkt vor dem Befehl <command
>make install</command
> ausführt.</para>

<para
>Mit dieser Option wird sichergestellt, dass es keine alten Bibliotheksdateien, &cmake;-Metadaten &etc; mehr gibt, die in über längere Zeit aktualisierten &kde;-Installationen manchmal zu Problemen führen. Dies funktioniert jedoch nur für Erstellungssysteme, die den Befehl <command
>make uninstall</command
> unterstützen.</para>

<para
>Diese Option wurde in &kdesrc-build; 1.12 hinzugefügt, war aber bis Version 1.16 nicht dokumentiert.</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 <userinput
>true</userinput
>, um die Ein-/Ausgabe zur Festplatte weniger auszunutzen. </entry>
</row>

<row id="conf-use-modules">
<entry
>use-modules</entry>
<entry
>Kann nur in <link linkend="module-sets"
>Modulgruppen</link
> verwendet werden</entry>
<entry
><para
>Mit dieser Option, die in &kdesrc-build;-Version 1.12.1 eingeführt wurde, können mehrere verschiedenen Module mit einem Eintrag in der <link linkend="kdesrc-buildrc"
>Einrichtungsdatei</link
> angegeben werden.</para>

<para
>Diese Option <emphasis
>muss</emphasis
> innerhalb einer Option <literal
>module-set</literal
> verwendet werden. Jeder an diese Option übergebene Name wird intern in ein Modul umgewandelt. Dabei wird als Option <link linkend="conf-repository"
><option
>repository</option
></link
> das Archiv der Modulgruppe in Kombination mit dem Namen benutzt, um das tatsächliche Archiv festzulegen, von dem die Quelltexte heruntergeladen werden. Alle weiteren Optionen für eine Modulgruppe werden unverändert auch für die generierten Module benutzt.</para>

<para
>Die Reihenfolge der Module in dieser Option ist wichtig, da &kdesrc-build; die Module auch in dieser Reihenfolge aktualisiert, erstellt und installiert. Alle in einer Modulgruppe definierten Module werden von &kdesrc-build; verarbeitet, ehe das nächste Modul in der Modulgruppe bearbeitet wird.</para>

<para
>Wenn Sie die Einstellungen für ein generiertes Modul ändern möchten, deklarieren Sie das Modul nochmal nach der Definition über die Modulgruppe. Auch wenn Sie auf diese Weise die Optionen für ein Modul verändern, wird das Modul trotzdem aktualisiert und in der Reihenfolgen erstellt, die durch die Modulgruppe vorgegeben wird. Die Reihenfolge der Erstellung kann durch diese Option also nicht geändert werden. </para>

<important
><para
>Als Name des Moduls wird der an <option
>use-modules</option
> übergebene Name nur ohne die Erweiterung <literal
>.git</literal
> verwendet.</para
></important>

<para
>Siehe <xref linkend="module-sets"/> und <link linkend="conf-git-repository-base"
>git-repository-base</link
> mit einer Beschreibung der Anwendung und einem Beispiel.</para>
</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 id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Kann nicht überschrieben werden</entry>
<entry>
<para
>Diese Option ist veraltet und wird in einer der nächsten Versionen wieder entfernt.</para>

<para
>Bitte benutzen Sie stattdessen die Option <link linkend="conf-branch-group"
>branch-group</link
>, die mehr Auswahl ermöglicht.</para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

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

<sect1 id="cmdline-usage">
<title
>Anwendung auf der Befehlszeile</title>

<para
>&kdesrc-build; wurde für folgende Art der Ausführung entwickelt:</para>

<cmdsynopsis
><command
>kdesrc-build</command
> <arg rep="repeat"
><replaceable
>--options</replaceable
></arg
> <arg rep="repeat"
><replaceable
>zu erstellende module</replaceable
></arg
> </cmdsynopsis>

<para
>Werden auf der Befehlszeile keine Module zum Erstellen angegeben, dann erstellt &kdesrc-build; alle in der Einrichtungsdatei definierten Module in der Reihenfolge, in der sie in der Datei aufgeführt sind. Dieses Verhalten kann aber durch verschiedene Optionen in der Einrichtungsdatei geändert werden.</para>

<sect2 id="cmdline-usage-options">
<title
>Häufig verwendete Befehlszeilenargumente</title>

<para
>Eine vollständige Liste der Optionen für die Befehlszeile finden Sie in <xref linkend="supported-cmdline-params"/>. Die am häufigsten benutzten Optionen sind:</para>

<variablelist>
  <varlistentry>
    <term
><option
>--pretend</option
> (oder <option
>-p</option
>)</term>
    <listitem
><para
>Mit dieser Option zeigt &kdesrc-build; alle auszuführenden Aktionen an, ohne Sie tatsächlich durchzuführen. Damit können Sie überprüfen, ob die gewünschten Module tatsächlich erstellt werden.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--refresh-build</option
></term>
    <listitem
><para
>Mit dieser Option wird das angegebene Modul von Grund auf neu erstellt. Jeder vorhandene Erstellungsordner dieses Moduls wird gelöscht und das Modul neu erstellt. Diese Option hilft, wenn es Fehler beim Erstellen eines Moduls gibt und sie ist manchmal bei Änderungen der &Qt;- oder &kde;-Bibliotheken erforderlich.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-src</option
></term>
    <listitem
><para
>Diese Option überspringt die Aktualisierung des Quelltextes. Sie können Sie benutzen, wenn Sie erst kürzlich den Quelltext manuell oder durch die Ausführung von &kdesrc-build; aktualisiert haben, aber trotzdem einige Module neu erstellen möchten.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><option
>--no-build</option
></term>
    <listitem
><para
>Diese Option ähnelt der oben genannten Option <option
>--no-src</option
>. aber diesmal wird der Erstellungsprozess übersprungen.</para
></listitem>
  </varlistentry>
</variablelist>

</sect2>

<sect2 id="cmdline-usage-modules">
<title
>Festlegung der Module zum Erstellen</title>

<para
>Im allgemeinen ist es nur erforderlich, die Namen der zu erstellenden Module wie bereits in der Einrichtungsdatei anzugeben. Sie können auch Module aus einer Modulgruppe verwenden, entweder mit der Option <link linkend="conf-use-modules"
>use-modules</link
> oder mit dem Namen der Modulgruppe selbst, wenn Sie dafür einen Aliasnamen definiert haben.</para>

<para
>Im besonderen Fall von Modulgruppen aus der <link linkend="kde-projects-module-sets"
>&kde;-Projektdatenbank</link
> kann &kdesrc-build; die Namen der Modulkomponenten erweitern, um das tatsächlich gewünschte Modul zu ermitteln. Der Eintrag &kdesrc-build; zum Beispiel ist in der &kde;-Projektdatenbank in <literal
>extragear/utils/kdesrc-build</literal
>. Daher können Sie folgendes angeben, um &kdesrc-build; zu erstellen:</para>

<informalexample>
<screen
><prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+extragear/utils/kdesrc-build</replaceable
></option>
<prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+utils/kdesrc-build</replaceable
></option>
<prompt
>&percnt;</prompt
> <command
>kdesrc-build</command
> <option
><replaceable
>+kdesrc-build</replaceable
></option
>
</screen>
</informalexample>

<note
><para
>Bei den Befehlen im vorherigen Beispiel ist dem Modulnamen ein Symbol <symbol
>+</symbol
> vorangestellt. Damit wird der Modulname als Modul aus der KDE-Projektdatenbank interpretiert, sogar wenn das Modul nicht in Ihrer Einrichtungsdatei definiert ist. </para
></note>

<para
>Vorsicht bei der Angabe sehr allgemeiner Projekte wie &eg; <literal
>extragear/utils</literal
>. Das kann dazu führen, dass eine große Zahl an Modulen erstellt wird. Sie sollten die Option <option
>--pretend</option
> benutzen, befor Sie eine neue Modulgruppe erstellen, um zu prüfen, ob tatsächlich nur die gewünschten Module enthalten sind.</para>

</sect2>
</sect1>

<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 Befehlszeilenparameter: </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
> (oder <parameter
>-v</parameter
>)</term>
<listitem
><para
>Zeigt die Programmversion an. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-show-info">
<term
><parameter
>--show-info</parameter
></term>
<listitem
><para
>Zeigt Informationen über &kdesrc-build; und das Betriebssystem an, die in Fehlerberichten oder bei Hilfeanfragen in Foren oder Mailinglisten nützlich sein können. </para>
<para
>Verfügbar seit Version 18.11.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-initial-setup">
<term
><parameter
>--initial-setup</parameter
></term>
<listitem
><para
>&kdesrc-build; führt die einmalige Ersteinrichtung durch, um das das System für den Betrieb von &kdesrc-build; und für die Ausführung der neu installierten &kde;-Software vorzubereiten. </para>
<para
>Dies schließt folgendes ein:</para>
<itemizedlist>
<listitem
><para
>Installation bekannter Abhängigkeiten unter unterstützten &Linux;-Distributionen</para
></listitem>
<listitem
><para
>Hinzufügen erforderlicher Umgebungsvariablen zu <literal
>~/.bashrc</literal
></para
></listitem>
<listitem
><para
>Erstellen einer <link linkend="setup-rcfile"
>Einrichtungsdatei</link
></para
></listitem>
</itemizedlist>

<para
>Verfügbar seit Version 18.11.</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="https://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>

<note
><para
>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
></note>

<important
><para
>Für diese Option müssen einige Metadaten vorhanden sein, die normalerweise automatisch heruntergeladen werden. Im Modus <option
>--pretend</option
> ist das Herunterladen jedoch abgeschaltet. Wenn Sie &kdesrc-build; noch nie ausgeführt haben und daher diese Metadaten noch nicht heruntergeladen wurden, sollten Sie <command
>kdesrc-build <option
>--metadata-only</option
></command
>, damit diese Metadaten zuerst heruntergeladen werden. </para
></important>
</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
></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-install-only">
<term
><parameter
>--install-only</parameter
></term>
<listitem
><para
>Führt nur den Installationsvorgang durch. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-metadata-only">
<term
><parameter
>--metadata-only</parameter
></term>
<listitem
><para
>Lädt nur die Metadaten herunter. &kdesrc-build; führt dies normalerweise automatisch durch. Sie können dies manuell ausführen, damit die Befehlszeilenoption <option
><link linkend="cmdline-pretend"
>--pretend</link
></option
> funktioniert. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rebuild-failures">
<term
><parameter
>--rebuild-failures</parameter
></term>
<listitem
><para
>Verwenden Sie diese Option, um nur die Module zu erstellen, die bei der letzten Ausführung von &kdesrc-build; wegen Fehlern nicht erstellt wurden. Dies ist nützlich, wenn eine erhebliche Anzahl von Fehlern zusammen mit fehlerfreier Erstellung von Modulen aufgetreten ist. Nachdem Sie alle Ursachen für die Fehler bei der Erstellung beseitigt haben, können Sie mit dieser Option nur die Module neu erstellen, bei denen vorher Fehler aufgetreten sind,</para>

<note
><para
>Beachten Sie, dass die Liste der <quote
>vorherigen Fehler bei der Erstellung von Modulen</quote
> jedes mal zurückgesetzt wird, wenn die Ausführung von &kdesrc-build; mit Fehlern für einige Module beendet wird. Durch eine vollständig erfolgreiche Erstellung wird diese Liste nicht zurückgesetzt, daher können Sie ein oder zwei Module neu erstellen und diese Option funktioniert auch dann noch.</para
></note>

<para
>Diese Option wurde in &kdesrc-build; 15.09 hinzugefügt.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-include-dependencies">
<term
><parameter
>--include-dependencies</parameter
></term>
<term
><parameter
>--no-include-dependencies</parameter
></term>
<listitem
><para
>Mit dieser Option veranlasst werden automatisch andere &kde;- und &Qt;-Module einbezogen, falls dies für die Module erforderlich ist, die Sie auf der Befehlszeile oder in Ihrer <link linkend="configure-data"
>Einrichtungsdatei</link
> zum Erstellen angegeben haben.</para>

<para
>Die Module werden wie im &kde;-Quellcode-Verwaltungssystem hinzugefügt. Siehe <xref linkend="kde-projects-module-sets"/>.</para>

<para
>Die entsprechende Option der Einrichtungsdatei <link linkend="conf-include-dependencies"
>include-dependencies</link
>.</para>

<para
>Sie können auch <parameter
>--no-include-dependencies</parameter
> verwenden, das schaltet die automatische Einbeziehung zusätzlicher Abhängigkeitsmodule aus.</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"
>Einrichtungsdatei</link
> erstellt werden sollen und nur einige wenige ausgelassen werden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (oder <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-metadata">
<term
><parameter
>--no-metadata</parameter
></term>
<listitem
><para
>Lädt die zusätzlichen Metadaten für die &kde;-Git-Module nicht automatisch. Die Quelltexte der Module werden immer noch aktualisiert, wenn Sie nicht zusätzlich noch die Option <link linkend="cmdline-no-src"
>--no-src</link
> verwenden. </para
><para
>Die ist nützlich, wenn Sie häufiger &kdesrc-build; neu ausführen, da die Metadaten sich nicht sehr häufig ändern. Beachten Sie jedoch, dass die Metadaten für viele andere Funktionen erforderlich sind. Sie sollten jedoch in Betracht ziehen, &kdesrc-build; einmal mit der Option <link linkend="cmdline-metadata-only"
>--metadata-only</link
> auszuführen und dann diese Option für darauf folgende Ausführungen von &kdesrc-build; zu benutzen. </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. Des weiteren sind die meisten Funktionen wesentlich <quote
>gesprächiger</quote
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-query">
<term
><parameter
>--query</parameter
>=<userinput
><replaceable
>mode</replaceable
></userinput
></term>
<listitem
><para
>Mit diesem Befehl fragt &kdesrc-build; einen Parameter der Module in der Erstellungs-Liste ab, der entweder auf der Befehlszeile angegeben oder aus der Einrichtungsdatei eingelesen wurde, und gibt das Ergebnis mit einem Modul je Zeile auf dem Bildschirm aus.</para>

<para
>Diese Option muss mit einem der folgenden <quote
>Abfragemodi</quote
> benutzt werden:</para>
    <itemizedlist>
    <listitem
><para
><option
>source-dir</option
>, damit gibt &kdesrc-build; den vollständigen Pfad zum Ordner aus, in dem der Quellcode des Moduls gespeichert ist. </para
></listitem>
    <listitem
><para
><option
>build-dir</option
>, damit gibt &kdesrc-build; den vollständigen Pfad zum Ordner aus, in dem der Erstellungsprozess des Moduls erfolgt. </para
></listitem>
    <listitem
><para
><option
>install-dir</option
>, damit gibt &kdesrc-build; den vollständigen Pfad zum Ordner aus, in dem das Modul installiert wird. </para
></listitem>
    <listitem
><para
><option
>project-path</option
>, damit gibt &kdesrc-build; den den Ort des Moduls innerhalb der Hierarchie der KDE-Quellcode-Repositories aus. Weitere Informationen über diese Hierarchie finden Sie unter <xref linkend="kde-projects-module-sets"/>. </para
></listitem>
    <listitem
><para
>Mit <option
>branch</option
> gibt &kdesrc-build; den aufgelösten Git-Branch aus, der für jedes Modul verwendet wird, basierend auf den Einstellungen <link linkend="conf-tag"
>tag</link
>-, <link linkend="conf-branch"
>branch</link
>- und <link linkend="conf-branch-group"
>branch-group</link
>. </para
></listitem>
    <listitem
><para
>Andernfalls können Namen von Optionen verwendet werden, die für Module in der <link linkend="conf-options-table"
>Einrichtungsdatei</link
> gültig sind, deren aufgelöster Wert wird für jedes Modul aufgelistet. </para
></listitem>
    </itemizedlist>

<para
>Wenn ein einzelnes Modul auf der Befehlszeile übergeben wird, dann ist die Ausgabe einfach der Wert des abgefragten Parameters. Wenn mehrere (oder keine) Module in der Befehlszeile übergeben werden, wird jeder Zeile der Name des Moduls vorangestellt. In beiden Fällen wird &kdesrc-build; nicht mehr ausgeführt, sobald jeder Wert ausgegeben wurde. </para>

<para
>Diese Option wurde in &kdesrc-build; 16.05 hinzugefügt.</para>

<informalexample>
<para
>Mit dem Befehl <quote
><command
>kdesrc-build</command
> <parameter
>--query</parameter
> <parameter
><replaceable
>branch</replaceable
></parameter
> <parameter
><replaceable
>kactivities</replaceable
></parameter
> <parameter
><replaceable
>kdepim</replaceable
></parameter
></quote
> wird zum Beispiel diese Ausgabe erzeugt:</para>
<screen
>kactivities: master
kdepim: master
</screen>
</informalexample>
</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. Sie sollten keine weiteren Modul-Namen auf der Befehlszeile übergeben. </para>

<note
><para
>Mit dieser Option wurde früher auch die Option <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
> angewendet, dies ist aber seit &kdesrc-build; Version 1.13 geändert. Wenn Sie bei der Wiederaufnahme die Aktualisierung des Quelltextes vermeiden möchten, müssen Sie zusätzlich <option
><userinput
>--no-src</userinput
></option
> zu den anderen Optionen angeben. </para
></note>

<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. Sie sollten keine weiteren Modul-Namen auf der Befehlszeile übergeben. </para>

<note
><para
>Mit dieser Option wurde früher auch die Option <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
> angewendet, dies ist aber seit &kdesrc-build; Version 1.13 geändert. Wenn Sie bei der Wiederaufnahme die Aktualisierung des Quelltextes vermeiden möchten, müssen Sie zusätzlich <option
><userinput
>--no-src</userinput
></option
> zu den anderen Optionen angeben. </para
></note>

<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-resume">
<term
><parameter
>--resume</parameter
></term>
<listitem
><para
>Diese Option kann zur Ausführung von &kdesrc-build; nach einem Erstellungsfehler verwendet werden. </para
><para
>Mit dieser Option wird das Erstellen mit dem fehlerhaften Modul fortgesetzt und dabei die Liste mit den noch zu verarbeitenden Module vom letzten Erstellen verwendet. Die Aktualisierung der Quelltexte und Metadaten ist abgeschaltet. Diese Option kann benutzt werden, wenn ein einfacher Fehler oder eine fehlende Abhängigkeit zum Erstellungsfehler führte. Nach der Korrektur des Fehlers können Sie einfach mit der Erstellen weitermachen, ohne die Optionen <option
><link linkend="cmdline-resume-from"
>--resume-from</link
></option
> und <option
><link linkend="cmdline-stop-before"
>--stop-before</link
></option
> anwenden zu müssen. </para
><para
>Die ist sogar noch praktischer als mit der Option <option
><link linkend="cmdline-stop-on-failure"
>--stop-on-failure</link
></option
>, besonders wenn Sie zum ersten Mal Ihre Entwicklungsumgebung einrichten. </para
><para
>Diese Option wurde in &kdesrc-build; 1.16 hinzugefügt. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-before">
<term
><parameter
>--stop-before</parameter
></term>
<listitem
><para
>Diese Befehlszeilenoption wird benutzt, um den normalen Erstellungsprozess genau <emphasis
>vor</emphasis
> einem Modul anzuhalten. </para
><para
>Wenn zum Beispiel die normale Erstellungsliste die Einträge <simplelist type="inline"
> <member
>ModulA</member
><member
>ModulB</member
><member
>ModulC</member
></simplelist
> enthält, erstellt &kdesrc-build; mit der Option <option
>--stop-before=<replaceable
>ModulB</replaceable
></option
> nur das <literal
>ModulA</literal
>. </para
><para
>Diese Befehlszeilenoption wurde in &kdesrc-build; 1.16 hinzugefügt. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-after">
<term
><parameter
>--stop-after</parameter
></term>
<listitem
><para
>Diese Befehlszeilenoption wird benutzt, um den normalen Erstellungsprozess genau <emphasis
>nach</emphasis
> einem Modul anzuhalten. </para
><para
>Wenn zum Beispiel die normale Erstellungsliste die Einträge <simplelist type="inline"
> <member
>ModulA</member
><member
>ModulB</member
><member
>ModulC</member
></simplelist
> enthält, erstellt &kdesrc-build; mit der Option <option
>--stop-after=<replaceable
>ModulB</replaceable
></option
> die Module <literal
>ModulA</literal
> und <literal
>ModulB</literal
>. </para
><para
>Diese Befehlszeilenoption wurde in &kdesrc-build; 1.16 hinzugefügt. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-stop-on-failure">
<term
><parameter
>--stop-on-failure</parameter
></term>
<listitem
><para
>Mit dieser Option wird das Erstellen abgebrochen, sobald ein Fehler auftritt. Dies ist nützlich, wenn Sie zum ersten Mal eine Entwicklungsumgebung einrichten, Ohne diese Option werden die restlichen Module durch &kdesrc-build; weiter erstellt, damit keine Zeit verschwendet wird, wenn es nur einen Fehler bei einem Modul gibt. </para
><para
>Diese Option wurde in &kdesrc-build; Version 1.16 hinzugefügt, lesen Sie bitte auch die Informationen zur Option <link linkend="conf-stop-on-failure"
>stop-on-failure</link
>. </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-print-modules">
<term
><parameter
>--print-modules</parameter
></term>
<listitem>
<para
>Führt alle Aktionen einschließlich Neuordnung der Abhängigkeiten der auf der Befehlszeile oder in der Einrichtungsdatei angegebenen Module und gibt die Module, die verarbeitet würden, einzeln je Zeile aus. Dann wird das Skript ohne weitere Aktionen beendet. </para>
<para
>Die Metadaten <literal
>kde-project</literal
> werden zuerst heruntergeladen, siehe allerdings auch <link linkend="cmdline-pretend"
><option
>--pretend</option
></link
> oder <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>. </para>
<para
>Die Ausgabe ist nicht vollständig kompatibel mit der Verwendung des Skript, da andere Ausgabenachrichten generiert werden können, bis die Modulliste angezeigt wird. </para>
<para
>Dies ist hauptsächlich sinnvoll, um schnell festzustellen, wie &kdesrc-build; die Abhängigkeiten eines Moduls versteht, das heißt die Option ist nur für Module in <link linkend="kde-projects-module-sets"
><literal
>kde-projects</literal
></link
> zu verwenden. Diese Option ist kompatibel mit <link linkend="cmdline-resume-from"
><option
>--resume-from</option
></link
>, <link linkend="cmdline-resume-after"
><option
>--resume-after</option
></link
>, <link linkend="cmdline-stop-before"
><option
>--stop-before</option
></link
>, <link linkend="cmdline-stop-after"
><option
>--stop-after</option
></link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-list-build">
<term
><parameter
>--list-build</parameter
></term>
<listitem>
<para
>Listet die Module auf, die gebaut und in welcher Reihenfolge sie gebaut werden würden. Falls zutreffend, wird in der Ausgabeliste auch erwähnt, welcher Commit/Branch/Tag gewählt würde. </para>
<para
>Diese Option ist ähnlich wie <link linkend="cmdline-print-modules"
><option
>--print-modules</option
></link
>. Genauere Informationen darüber, wie Module miteinander in Beziehung stehen, finden Sie unter <link linkend="cmdline-dependency-tree"
><option
>--dependency-tree</option
></link
>. </para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-dependency-tree">
<term
><parameter
>--dependency-tree</parameter
></term>
<listitem>
<para
>Gibt Abhängigkeitsinformationen zu den Modulen in einem Baumformat (rekursiv) aus. Die aufgelisteten Informationen enthalten auch die Abhängigkeitvon einem bestimmte Commit/Branch/Tag und ob die Abhängigkeit gebaut wird oder nicht. gebaut wird. Hinweis: Die generierte Ausgabe kann für Anwendungen mit vielen Abhängigkeiten ziemlich groß werden.  </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-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Mit dieser Option wird beim ersten Mal der Quelltext immer normal heruntergeladen anstatt ein komprimiertes Archiv zu benutzen, das nur für Git-Module aus dem <literal
>kde-projects</literal
>-Archiv zur Verfügung gestellt wird. Diese Option sollte nur verwendet werden, falls Fehler bei komprimierten Archiven auftreten, um die &kde;-Quelltextarchive nicht zu überlasten. </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-delete-my-patches">
<term
><parameter
>--delete-my-patches</parameter
></term>
<listitem
><para
>Diese Option wird von &kdesrc-build; dazu verwendet, Quelltextordner mit Benutzerdaten zu löschen, damit ein Modul wieder heruntergeladen werden kann. Dies ist normalerweise nur für &kde;-Entwickler sinnvoll, die möglicherweise lokale Änderungen haben, die beim Herunterladen gelöscht würden.</para>

<para
>Diese Option wird zurzeit nur für das Herunterladen von Modulen benutzt, die von &subversion; nach &git; konvertiert wurden. Normalerweise sollten Sie diese Option nicht verwenden, da &kdesrc-build; nachfragt, ob dieser Vorgang wiederholt werden soll, falls nötig.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-delete-my-settings">
<term
><parameter
>--delete-my-settings</parameter
></term>
<listitem
><para
>Mit dieser Option überschreibt &kdesrc-build; vorhandene Dateien, die Daten von Benutzern enthalten können.</para>

<para
>Diese Option wird zurzeit nur für die Einrichtung von „xsession“ für die Anmeldung benutzt. Normalerweise sollten Sie diese Option nicht verwenden, da &kdesrc-build; nachfragt, ob dieser Vorgang wiederholt werden soll, falls nötig.</para>
</listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><parameter
>--<replaceable
>&lt;option-name&gt;</replaceable
>=</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>

<note
><para
>Diese Funktion kann nur für Namen von Optionen benutzt werden, die bereits vorher durch &kdesrc-build; erkannt wurden und die noch nicht auf der Befehlszeile unterstützt werden. Die Option <link linkend="conf-async"
>async</link
>  in der Einrichtungsdatei zum Beispiel hat spezifische Befehlszeilenoption <link linkend="cmdline-async"
>--async</link
> und <link linkend="cmdline-no-async"
>--no-async</link
>, die von &kdesrc-build; bevorzugt verwendet werden. </para
></note>

</listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><parameter
>--set-module-option-value=<replaceable
>&lt;module-name&gt;</replaceable
>,<replaceable
>&lt;option-name&gt;</replaceable
>,<replaceable
>&lt;option-value&gt;</replaceable
></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">
<title
>Unterstützung für qt</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.</para>

<note
><para
>&Qt; wird in einen eigenen Archiv auf <ulink url="http://code.qt.io/cgit/qt/"
>http://code.qt.io/cgit/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 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 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
>Mit der ersten Option wird &Qt; von einem Spiegelserver erstellt, der im &kde;-Quelltextarchiv vorgehalten wird, aber gegenüber dem Original unverändert ist. Dies wird dringend empfohlen, da es manchmal Probleme beim Klonen des vollständigen &Qt;-Moduls vom offiziellen Archiv gibt.</para>

<para
>Setzen Sie die Einstellung <option
>repository</option
> für das Modul &Qt; auf <userinput
>kde:qt</userinput
>, um dies zu benutzen.</para>
</listitem>

<listitem
><para
>Um anderenfalls die Standardversion von &Qt; zu erstellen, geben Sie für das Archiv die Option<option
>repository</option
> <userinput
>git://gitorious.org/qt/qt.git</userinput
> an. Beachten Sie, dass es möglicherweise Probleme beim ersten Klonen von &Qt; aus diesem Archiv gibt.</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>

</sect2>

<sect2 id="kdesrc-build-std-flags">
<title
>Standard-Parameter von &kdesrc-build;</title>
<para
>Dieser Abschnitt gilt nicht für Module, für die Sie eigene Entwicklungs-Werkzeuge eingestellt haben, z.B. mit <link linkend="conf-cmake-toolchain"
>cmake-toolchain</link
>.</para>

<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, sodass 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
>svn-module-name</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="https://websvn.kde.org/branches/KDE/4.6/"
>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.6 - 4.6-Zweig genannt - heruntergeladen: </para>

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

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

<screen
>module kdemultimedia
  tag <replaceable
>4.6.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
>&percnt;</prompt
> <userinput
><command
>touch</command
> <filename
>~/kdesrc/build/<replaceable
>kdelibs</replaceable
>/.refresh-me</filename
></userinput>
<prompt
>&percnt;</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
>Frühere Versionen von &kdesrc-build; haben die Aktualisierung des Quelltextes beim erneuten Erstellen übersprungen. Diese Verhalten ist nicht mehr die Voreinstellung, aber Sie können immer noch die Befehlszeilenoption <option
>--no-src</option
> verwenden, um das Aktualisieren des Quelltextes zu überspringen.</para
></note>

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

<screen
><prompt
>&percnt;</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
>&percnt;</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-after=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<para
>Wenn das letzte Erstellen mit &kdesrc-build; mit einem Fehler beendet wurde, können Sie auch die Befehlszeilenoption <link linkend="cmdline-resume"
>--resume</link
> verwenden, mit der das Erstellen beim letzten fehlgeschlagenen Modul fortgesetzt wird. Das Aktualisieren der Quelltexte und Metadaten wird gleichfalls übersprungen. Möchten Sie dies jedoch ausführen, sollten Sie stattdessen die Option <link linkend="cmdline-resume-from"
>--resume-from</link
> verwenden.</para>


</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 stattdessen 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
>&percnt;</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, anderenfalls 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
>&percnt;</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"
>Einrichtungsdatei</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
>&percnt;</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 <userinput
>true</userinput
>.</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 <userinput
>false</userinput
> gesetzt wird. </para>

<informalexample>
<para
>Farbige Ausgabe in der Einrichtungsdatei abschalten:</para>
<screen
>global
  colorful-output false
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 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;</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 im <ulink url="https://community.kde.org/Guidelines_HOWTOs/CMake"
>&kde;-Community-Wiki</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-license">
<title
>Danksagungen und Lizenz</title>

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

<appendix id="appendix-modules">
<title
>&kde;-Module und Organisation des Quelltexts</title>
<sect1 id="module-concept">
<title
>Die <quote
>Module</quote
></title>

<para
>&kde;-Software ist in <quote
>Module</quote
> unterschiedlicher Größe zusammengefasst. Ursprünglich war das nur eine lockere Gruppe weniger großer Module, aber mit der Einführung <ulink url="http://git-scm.com/"
>Git</ulink
>-basierter <ulink url="https://commits.kde.org/"
>Quelltextarchive</ulink
> wurden diese großen Module in viele kleinere Module aufgeteilt.  </para>

<para
>&kdesrc-build; benutzt gleichfalls dies Modulkonzept. Im Wesentlichen ist ein <quote
>module</quote
> eine Zusammenfassung von Quelltexten, die heruntergeladen, erstellt, getestet und installiert werden kann. </para>

<sect2 id="single-modules">
<title
>Einzelne Module</title>

<para
>Es ist einfach möglich, mit &kdesrc-build; nur ein einzelnes Modul zu erstellen. Die folgenden Befehle sind ein Beispiel dafür, wie ein einzelnes Modul aus einem Subversion-Versionsverwaltungssystemen in der <link linkend="kdesrc-buildrc"
>Einrichtungsdatei</link
> einzutragen ist.</para>

<programlisting
>module <replaceable
>kdefoo</replaceable>
    <option
><replaceable
>cmake-options -DCMAKE_BUILD_TYPE=Debug</replaceable
></option>
end module
</programlisting>

<tip
><para
>Da die Option <link linkend="conf-repository"
>repository</link
> nicht verwendet wird, handelt es sich um ein Modul aus einem Subversion-Versionsverwaltungssystem. Die Option <option
>cmake-options</option
> ist nur als Beispiel aufgeführt, aber nicht erforderlich.</para
></tip>

</sect2>
<sect2 id="module-groups">
<title
>Gruppen zusammengehöriger Module</title>

<para
>Zurzeit sind die meisten &kde;-Quelltextmodule in Git-Versionsverwaltungssystemen. Sie sind normalerweise in Super-Modulen zusammengefasst.</para>

<para
>Daher unterstützt &kdesrc-build; ebenfalls Super-Module mit <link linkend="module-sets"
>Modulgruppen</link
>. Ein Beispiel:</para>

<programlisting
>module-set <replaceable
>base-modules</replaceable>
    <option
>repository</option
> kde-projects
    <option
>use-modules</option
> <replaceable
>kde-runtime kde-workspace kde-baseapps</replaceable>
end module-set
</programlisting>

<tip
><para
>Der Name der Modulgruppe (hier <replaceable
>base-modules</replaceable
>) darf auch leer sein. Die Einstellung <option
>repository</option
> gibt an, von wo der Quelltext heruntergeladen werden soll, aber es kann auch eine <symbol
>git://</symbol
>-URL benutzt werden.</para
></tip>

<para
>Die besondere Eigenschaft der Option <quote
><option
>repository</option
> <literal
>kde-projects</literal
></quote
> liegt darin, dass &kdesrc-build; automatisch alle Git-Module einschließt, die in diesem Modul in der &kde;-Projektdatenbank enthalten sind.</para>
</sect2>

<sect2 id="module-branch-groups">
<title
><quote
>Zweiggruppen</quote
>-Module</title>

<para
>Bei der Weiterentwicklung des Konzepts der <link linkend="module-groups"
>Modul-Gruppen</link
> stellte sich heraus, dass es für &kde;-Entwickler immer schwieriger wird, die Namen von Git-Zweigen in einer Vielzahl von Quelltextarchiven abzugleichen, besonders beim Entwicklungssprung für das neue &kde; Frameworks für &Qt; 5. </para>

<para
>Dazu wurde das Konzept von <quote
>Zweiggruppen</quote
> entwickelt. Es ermöglicht Benutzern und Entwicklern, nur eine von wenigen Gruppen zu wählen. Das Skript kann dann automatisch den passenden Git-Zweig ermitteln. </para>

<para
>&kdesrc-build; unterstützt diese Funktion seit Version 1.16-pre2 mit der Option <link linkend="conf-branch-group"
>branch-group</link
>. </para>

<example id="ex-branch-group">
<title
>Beispiel für die Anwendung von „branch-group“</title>

<para
>„branch-group“ kann in der Einrichtungsdatei wie folgt benutzt werden: </para>

<programlisting
>global
    # Wählt KDE Frameworks 5 und andere Qt5-basierte Programme
    <option
>branch-group</option
> <replaceable
>kf5-qt5</replaceable>

    # Weitere globale Optionen hier ...
end global

module-set
    # branch-group funktioniert nur für &kde;-Projekte
    <option
>repository</option
> kde-projects

    # branch-group wird von der global definierten Einstellung benutzt, 
    # aber kann hier angegeben werden.

    <option
>use-modules</option
> <replaceable
>kdelibs kde-workspace</replaceable>
end module-set

# Der Zweig für kdelibs ist "frameworks"
# Der Zweig für kde-workspace ist "master" (Stand August 2013)
</programlisting>

<para
>In diesem Fall ergibt dieselbe Option <literal
>branch-group</literal
> unterschiedliche Zweignamen für jedes Git-Modul. </para>
</example>

<para
>Diese Funktion erfordert einige Daten, die von &kde;-Entwicklern in einem Git-Archiv mit dem Namen <literal
>kde-build-metadata</literal
> verwaltet werden. Dieses Modul wird automatisch durch &kdesrc-build; mit heruntergeladen, wie Sie in der Ausgabe des Skripts lesen können. </para>

<tip
><para
>Bei &kde;-Modulen, für die kein Zweignamen für die von Ihnen ausgewählte Zweiggruppe festgelegt ist, haben als Voreinstellung einen passenden Zweignamen, so als wenn Sie die Option <literal
>branch-group</literal
> nicht angegeben hätten. </para
></tip>

</sect2>

</sect1>
</appendix>

<appendix id="appendix-profile">
<title
>Überholte Prozedur zur Einrichtung von Profilen</title>

<sect1 id="old-profile-setup">
<title
>Einrichtung eines Profils für die &kde;-Anmeldung</title>

<para
>Diese Informationen erläutern, wie ein Profil eingerichtet werden kann, damit Sie sich für die neu erstellte &plasma;-Arbeitsumgebung von &kde; anmelden können. Normalerweise wird dies automatisch von &kdesrc-build; ausgeführt, siehe xref linkend="session-driver"/>. Dieser Anhang ist hilfreich, wenn Sie die Unterstützung von &kdesrc-build; für die Einrichtung von Anmeldungsprofilen nicht verwenden können. Da diese Informationen nicht immer aktuell sein können, lesen Sie bitte auch die Datei <filename
>kde-env-master.sh</filename
>, die im Quelltextpaket von &kdesrc-build; enthalten ist.</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 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 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 Anmeldungsverwaltungen 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 die grafische Anmeldungsverwaltung 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 Anmeldungsverwaltungen 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>

</appendix>
</book>
