<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "kdesvn-build">
  <!ENTITY package "kdesdk">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY svn "<application
>Subversion</application
>">
  <!ENTITY kdesvn-build "<application
>kdesvn-build</application
>">
  <!ENTITY rcfile '<link linkend="configure-data"
>configuration file</link
>'>
  <!ENTITY cmd-line-option '<link linkend="cmdline"
>command line option</link
>'>
  <!ENTITY homepage '<ulink url="http://kdesvn-build.kde.org/"
>&kdesvn-build; home page</ulink
>'>
  <!ENTITY unsermake '<ulink url="http://www.kde.me.uk/index.php&amp;page=unsermake"
><application
>unsermake</application
></ulink
>'>
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY cmake '<link linkend="kde-cmake"
><application
>CMake</application
></link
>'>

  <!-- 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 apply-qt-patches '<link linkend="conf-apply-qt-patches"
>apply-qt-patches</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 apidox '<link linkend="conf-apidox"
>apidox</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY no-rebuild-on-fail '<link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>'>
  <!ENTITY inst-apps '<link linkend="conf-inst-apps"
>inst-apps</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
>'>
  <!ENTITY use-unsermake '<link linkend="conf-use-unsermake"
>use-unsermake</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-no-rebuild-on-fail '<link linkend="cmdline-no-rebuild-on-fail"
>--no-rebuild-on-fail</link
>'>
  <!ENTITY cmd-reconfigure '<link linkend="cmdline-reconfigure"
>--reconfigure</link
>'>
  <!ENTITY cmd-refresh-build '<link linkend="cmdline-refresh-build"
>--refresh-build</link
>'>

  <!ENTITY ssh '<application
>SSH</application
>'>
]>

<book lang="&language;">

<bookinfo>
<title
>Manual do 'Script' &kdesvn-build;</title>

<authorgroup id="authors">
<author
><firstname
>Michael</firstname
><surname
>Pyne</surname
> <affiliation
><address
><email
>michael.pyne@kdemail.net</email
></address
></affiliation>
</author
> 
<author
><firstname
>Carlos</firstname
><surname
>Woelz</surname
> <affiliation
><address
><email
>carloswoelz@imap-mail.com</email
></address
></affiliation>
</author
> 


<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>jncp@netcabo.pt</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2006</year>
<holder
>Michael Pyne</holder>
</copyright>

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


<legalnotice
>&FDLNotice;</legalnotice>

<date
>2006-03-28</date>
<releaseinfo
>1.1</releaseinfo>

<abstract>
<para
>O &kdesvn-build; é um programa que compila e instala o &kde; directamente a partir do código existente no repositório de &svn; do &kde;.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>Desenvolvimento KDE</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Introdução</title>

<para
>O &kdesvn-build; é um programa que ajuda os utilizadores a instalar o <ulink url="http://www.kde.org/"
>&kde;</ulink
> a partir do seu repositório de código em <ulink url="http://subversion.tigris.org/"
>&svn;</ulink
>. </para>

<para
>Aqui será documentado a sintaxe das opções do &rcfile; do &kdesvn-build;, as suas <link linkend="cmdline"
>opções da linha de comandos</link
>, as <link linkend="features"
>funcionalidades</link
> e uma <link linkend="getting-started"
>introdução</link
> a todos os passos necessários para compilar o &kde; a partir do código, incluindo os passos que deverá efectuar ao usar as outras ferramentas ou, por outras palavras, os passos que não são efectuados automaticamente pelo programa &kdesvn-build;. </para>

</chapter>

<chapter id="getting-started">
<title
>Começar</title>

<para
>Neste capítulo, será apresentada a forma de utilização do &kdesvn-build; para obter os módulos do repositório do &kde; e os compilar. Será dada também uma explicação básica da estrutura de &svn; do &kde; e os passos que terá de efectuar antes de executar o programa. </para>

<para
>Todos os tópicos presentes neste capítulo são cobertos com ainda mais detalhe na secção <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php"
> Guia de Compilação do Código do &kde; Passo-a-Passo</ulink
>, na <ulink url="http://quality.kde.org"
>Página Web da Equipa de Qualidade do &kde;</ulink
>. Se estiver a compilar o &kde; pela primeira vez, é uma boa ideia lê-lo ou consultá-lo como fonte de referência. Irá encontrar informações detalhada sobre as ferramentas de empacotamento e os requisitos, os problemas de compilação comuns e as estratégias e informações sobre a execução da instalação do seu novo &kde;. </para>

<sect1 id="before-building">
<title
>Preparar o Sistema para Compilar o &kde;</title>

<sect2 id="before-building-users">
<title
>Configurar uma conta nova do utilizador</title>

<para
>Recomenda-se que transfira e compile o &kde; com uma conta de utilizador. Se já tiver os pacotes do &kde; instalados, a melhor opção será criar um utilizador diferente (dedicado) para compilar e executar o novo &kde;. A vantagem de compilar o &kde; com um utilizador dedicado é que não poderá corromper o sistema de base e terá sempre uma forma de trabalhar confortavelmente quando as coisas correrem mal. </para>

<para
>Mais tarde, poderá fazer uma instalação como 'root' se o desejar. Este documento não cobre uma instalação como 'root'. Se estiver a efectuar uma instalação a nível do sistema, provavelmente já deverá saber o que está a fazer. Caso contrário, então poderá querer consultar a documentação ou as páginas de ajuda da sua distribuição, para saber como preparar e usar a instalação do sistema correctamente. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Garanta que o seu sistema está pronto para compilar o código do &kde;</title>

<para
>Antes de usar o programa &kdesvn-build; (ou qualquer outra estratégia de compilação), deverá instalar as ferramentas de desenvolvimento e bibliotecas necessárias para o &kde;. A lista completa dos requisitos está na página <ulink url="http://www.kde.org/info/requirements/3.5.php"
>Requisitos de Compilação do &kde;</ulink
>. </para>

<para
>Aqui está uma lista das coisas que irá necessitar:</para>
<itemizedlist>

<listitem
><para
>Automake versão 1.7 ou posterior (apenas no KDE 3)</para
></listitem>

<listitem
><para
>Autoconf versão 2.57 ou posterior (apenas no KDE 3)</para
></listitem>

<listitem
><para
>O <ulink url="http://www.cmake.org/"
><application
>CMake</application
></ulink
> 2.4.0 ou posterior. Algumas imagens da versão 2.3 poderão compilar também o KDE 4; veja por favor a página do <ulink url="http://wiki.kde.org/tiki-index.php?page=KDECMakeIntro"
>Wiki de Introdução ao CMake</ulink
>. (Apenas no KDE 4)</para
></listitem>

<listitem
><para
>O programa do cliente de &svn;, incluindo o suporte para HTTP Seguro (HTTPS). Para garantir o suporte necessário, poderá executar o <userinput
><command
>svn <option
>--version</option
></command
></userinput
>. Se o módulo 'ra_dav' disser que lida com o esquema HTTPS, então deverá ser tudo.</para
></listitem>

<listitem
><para
>O compilador 'gcc', com suporte para C++. A versão 3.3 ou 3.4 funciona optimamente neste ponto.</para
></listitem>

<listitem
><para
>Certifique-se que verificou a página dos <ulink url="http://www.kde.org/info/requirements/3.5.php"
>Requisitos de Compilação do &kde;</ulink
> para garantir que todas as outras bibliotecas necessárias estão incluídas.</para
></listitem>

</itemizedlist>

<para
>Uma excepção é a biblioteca &Qt;. O &kdesvn-build; irá instalar normalmente uma cópia do &Qt;, quer já o tenha instalado quer não, como tal não é necessário tê-la. Se não quiser usar a cópia do &Qt;, terá de fazer o seguinte: </para>

<itemizedlist>
<listitem>
  <para
>Certifique-se que remove o módulo 'qt-copy' do seu &rcfile;, dado que não irá necessitar dele e, se o tiver, só vai adicionar mais tempo à sua compilação.</para>
</listitem>

<listitem>
  <para
>Mude a configuração da opção <link linkend="conf-qtdir"
>qtdir</link
> no seu &rcfile;, de modo a apontar para o seu &Qt; de sistema. Isto é normalmente igual à configuração do $<envar
>QTDIR</envar
> no seu sistema.</para>
</listitem>

<listitem>
  <para
>Se não tiver já o &Qt; instalado, instale-o, incluindo os pacotes -dev ou -devel necessários. Deverá ter pelo menos o &Qt; 3.3, se for compilar o &kde; 3.5, ou o &Qt; 4.0 se for compilar o &kde; 4.</para>
</listitem>
</itemizedlist>

<para
>Alguns destes pacotes estão divididos em bibliotecas, programas ou utilitários e pacotes de desenvolvimento. Irá necessitar, pelo menos do programa ou biblioteca e do seu pacote de desenvolvimento. Se tiver dúvidas, instale tudo. As bibliotecas que necessita irão variar de acordo com os módulos que pretende compilar, dado que cada módulo tem os seus próprio requisitos. O <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php#step1"
> Guia de Compilação do Código do &kde; Passo-a-Passo</ulink
> tem mais detalhes sobre as ferramentas e técnicas específicas usadas para instalar e encontrar o 'software' necessário. </para>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Configurar o kdesvn-build</title>

<sect3 id="get-kdesvn-build">
<title
>Instalar o kdesvn-build</title>
<para
>Poderá já ter uma versão do programa &kdesvn-build; instalada no sue sistema. Contudo, se não o tiver, poderá obtê-lo em &homepage; ou podê-lo-á encontrar no seu local original, no repositório de código do &kde;.</para>

<orderedlist>
<listitem
><para
>Para obter o &kdesvn-build; a partir de &homepage;, basta ir a &homepage; e transferir a versão mais recente. A versão está dentro de um um pacote TAR comprimido, o qual poderá extrair com o &ark; ou o <command
>tar</command
>. O conteúdo do pacote inclui o programa &kdesvn-build; actual e um ficheiro de configuração de exemplo (<filename
>kdesvn-buildrc-sample</filename
>).</para
></listitem>

<listitem
><para
>Ou poderá obter o &kdesvn-build; do seu repositório de código, localizado em: <ulink url="http://websvn.kde.org/trunk/KDE/kdesdk/scripts/"
>http://websvn.kde.org/trunk/KDE/kdesdk/scripts/</ulink
>. Esta é a pasta do Kit de Desenvolvimento de Software do &kde;, que é o berço do &kdesvn-build;. Poderá carregar no item <filename
>kdesvn-build</filename
>, o qual lhe mostrará uma página onde poderá obter a última versão. Faça-o e grave-o num local conveniente no seu disco rígido. Faça mesmo para o <filename
>kdesvn-buildrc-sample</filename
> se necessitar.</para
></listitem>
</orderedlist>

<para
>Não interessando a técnica que usar, deverá garantir que o ficheiro <filename
>kdesvn-build</filename
> é executável. Por conveniência, deverá garantir que está numa pasta definida na variável de ambiente <envar
>PATH</envar
>, caso contrário, poderá obter mensagens que indiquem que o comando não foi encontrado.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Preparar o ficheiro de configuração</title>

<para
>Ainda que o  &kdesvn-build; não necessite que você crie um &rcfile;, torna o trabalho muito mais simples. Se usar um &rcfile;, poderá controlar os módulos que são instalados ou remover módulos que não deseja instalar. O &kdesvn-build;, por omissão, instala uma instalação utilizável do &kde; que usa opções de instalação muito genéricas, o que poderá ser diferente das suas necessidades. Como tal, é melhor usar um &rcfile;</para>

<para
>O &rcfile; dever-se-á chamar <filename
>.kdesvn-buildrc</filename
>. Este ficheiro deverá ser instalado na pasta pessoal (~/), e contém todos os dados de configuração necessários para o programa correr, como as opções de configuração, compilação, a localização do código, o destino da instalação (prefixo), os módulos que serão compilados, &etc;. Os dados de configuração por omissão são oferecidos pelo ficheiro <filename
>kdesvn-buildrc-sample</filename
>. que poderá copiar como <filename
>kdesvn-buildrc</filename
> e editá-lo de seguida. </para>

<para
>Poderá encontrar mais informações sobre a sintaxe do &rcfile; em <xref linkend="configure-data"/> e em <xref linkend="kdesvn-buildrc"/>. </para>

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

<sect1 id="configure-data">
<title
>Definir os Dados de Configuração</title>

<para
>Para usar o &kdesvn-build;, deverá ter um ficheiro na sua pasta pessoal chamado <filename
>.kdesvn-buildrc</filename
>, que define as opções gerais e os módulos que deseja transferir e compilar. </para>

<note
><para
>É possível usar ficheiros de configuração diferentes para o &kdesvn-build;, que estão descritos em <xref linkend="kdesvn-buildrc"/>. Se necessitar de usar várias configurações, veja por favor essa secção. Aqui, assumir-se-á que a configuração está guardada em <filename
>~/.kdesvn-buildrc</filename
>.</para
></note>

<para
>A forma mais simples de prosseguir é usar o ficheiro <filename
>kdesvn-buildrc-sample</filename
> como modelo, definir as opções globais e os módulos que deseja compilar. </para>

<para
>A configuração por omissão já deverá ser apropriada para efectuar uma compilação do &kde;. Algumas opções que poderá querer alterar incluem: <itemizedlist>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, para mudar a lista de pastas que serão pesquisadas à procura de comandos. Este é o mesmo valor que a <envar
>PATH</envar
> na linha de comandos.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, que muda a pasta de destino para onde o &kde; será instalado. Esta é por omissão a <filename
>~/kde</filename
>, que é uma instalação para um único utilizador.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, que controla o local da instalação do &Qt; a usar. Por omissão, usa o módulo 'qt-copy' do repositório de &svn; do &kde;. (<filename
>~/kdesvn/build/qt-copy</filename
>)</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, que selecciona o URL de onde transferir o código. Isto é útil se você for um programador com uma <ulink url="http://developer.kde.org/documentation/misc/firststepsaccount.php"
>conta de &svn; para o &kde;</ulink
>.</para
></listitem>
</itemizedlist>
</para>

<para
>Após a secção global, existe uma lista dos módulos a compilar, delimitada por linhas 'module' ... 'end module'. Verifique se os módulos indicados são, de facto, os módulos que pretende compilar. As opções por omissão do ficheiro <filename
>kdesvn-buildrc-sample</filename
> deverão ser suficientes para obter uma instalação relativamente completa do &kde;. Grave o resultado como <filename
>.kdesvn-buildrc</filename
> na sua pasta pessoal. </para>

<para
>Se desejar afinar o seu ficheiro <filename
>.kdesvn-buildrc</filename
>, consulte o <xref linkend="kdesvn-buildrc"/> para obter informação mais detalhada sobre todas as opções de configuração. </para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Usar o 'script' &kdesvn-build;</title>

<para
>Agora está pronto para executar o programa. A partir de uma janela de termina, autentique-se com o utilizador que usa para compilar o &kde; e execute o programa: <screen
><prompt
>&percnt;</prompt
><command
>su</command
> <option
>-</option
> <replaceable
>utilizador</replaceable>
<prompt
>&percnt;</prompt
><command
>kdesvn-build</command
>
</screen>
</para>

<para
>Agora, o programa deverá começar a transferir o código e a compilá-lo. Dependendo dos módulos que obtiver, poderá ser possível que o &kdesvn-build; não consiga ser bem-sucedido da primeira vez que compilar o &kde;. Não desespere! </para>

<para
>O &kdesvn-build; regista o resultado de todos os comandos que executa. Por omissão, os ficheiros de registo são mantidos em <filename
>~/kdesvn/log</filename
>. Para ver o que causou um determinado erro num módulo, no último comando do &kdesvn-build;, normalmente é suficiente ver o <filename
>~/kdesvn/log/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>.</para>

<para
>Nesse ficheiro, irá ver o erro que fez com que a compilação falhasse para esse módulo. Se o ficheiro disser (no fim) que lhe faltam alguns pacotes, tente instalar o pacote (incluindo os pacotes -dev apropriados) antes de tentar compilar esse módulo ou, se o erro parecer ser um erro de compilação do código do &kde;, pode ser que isso seja resolvido dentro de alguns dias. Se não for resolvido em tempo útil, sinta-se à vontade para enviar um e-mail para <email
>kde-devel@kde.org</email
> (poderá ser necessário inscrever-se) para comunicar o erro de compilação.</para>

<para
>Poderá encontrar mais exemplos comuns das coisas que poderão correr mal e as suas soluções, assim como algumas sugestões e estratégias gerais para compilar o &kde;, no <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php#step1"
> Guia de Compilação do &kde; a Partir do Código, Passo-a-Passo</ulink
>. </para>

<note
><para
>Para mais informações sobre as funcionalidades de registo do &kdesvn-build;, vá a <xref linkend="kdesvn-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Configurar o Ambiente para Executar o seu &kde; Novo</title>

<para
>Assumindo que está a usar um utilizador dedicado para compilar o &kde; e já tem uma versão do &kde; instalada, a execução do seu &kde; novo poderá ter os seus truques, dado que o &kde; novo terá de ter precedência sobre o antigo. Mude as variáveis de ambiente para garantir que isso acontece. </para>

<sect2 id="changing-profile">
<title
>Alterar a configuração do seu perfil inicial</title>

<important
><para
>O ficheiro <filename
>.bash_profile</filename
> é o ficheiro de configuração do utilizador na linha de comandos <application
>bash</application
>, que é usada por muitas distribuições de &Linux;. Se usar uma linha de comandos diferente, então poderá ter de ajustar os exemplos dados nesta secção, para a sua linha de comandos em particular.</para
></important>

<para
>Abra ou crie o ficheiro <filename
>.bash_profile</filename
> na pasta pessoal com o seu editor favorito e adicione ao fim do ficheiro. Se estiver a compilar o módulo 'qt-copy' (que, por omissão, é compilado), adicione sim em alternativa:<programlisting>
QTDIR=(local da qtdir)   # Como por exemplo ~/kdesvn/build/qt-copy por omissão.
KDEDIR=(local da kdedir) # Como por exemplo ~/kde por omissão.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Actuar correctamente se a LD_LIBRARY_PATH não estiver já definida.
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
> ou, se não estiver a compilar o 'qt-copy' (e estiver a usar o &Qt; do seu sistema, em alternativa), adicione o seguinte: <programlisting
>KDEDIR=(local da kdedir)  # Como por exemplo ~/kde por omissão.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
# Actuar correctamente se a LD_LIBRARY_PATH não estiver já definida.
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
>Se não estiver a usar um utilizador dedicado, defina um novo $<envar
>KDEHOME</envar
> para o seu novo ambiente no seu ficheiro <filename
>.bash_profile</filename
>: <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Criar a pasta se necessário
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Se, mais tarde, o seu Menu K estiver vazio ou completamente cheio de aplicações da sua distribuição, poderá ter de definir o as suas variáveis de ambiente do <acronym
>XDG</acronym
> no seu <filename
>.bash_profile</filename
>: <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
>Iniciar o &kde;</title>

<para
>Agora que ajustou a sua configuração do ambiente para usar o &kde; correcto, é importante garantir que é usado o programa <command
>startkde</command
> correcto, também. </para>

<para
>Abra o ficheiro de texto <filename
>.xinitrc</filename
> da pasta pessoal, ou crie-o se necessário. Adicione a linha: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>Em algumas distribuições, poderá ser necessário efectuar os mesmos passos com o ficheiro <filename
>.xsession</filename
>, também na pasta pessoal. Isto aplica-se especialmente nos gestores de autenticação gráficos como o &kdm;, o <application
>gdm</application
> ou o <application
>xdm</application
>.</para>
</important>

<para
>Agora inicie o seu &kde; novo: nos sistemas &BSD; e &Linux;, com o suporte para terminais virtuais, os atalhos <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> são usados para mudar para a Consola Virtual 1 a 12. Isto permite-lhe executar mais que um ambiente gráfico ao mesmo tmpo. Os primeiros seis são terminais de texto e os seis seguintes são gráficos. </para>

<para
>Se, quando iniciar o seu computador, lhe aparecer o gestor gráfico de autenticação, poderá usar o novo ambiente do &kde;, mesmo que não apareça como uma opção. A maioria dos gestores de autenticação, incluindo o &kdm;, têm uma opção para usar uma "Sessão Personalizada" quando se ligar. Com esta opção,a sua configuração de sessões é carregada do ficheiro <filename
>.xsession</filename
> da sua pasta pessoal. Se já tiver modificado este ficheiro como descrito acima, esta opção deverá carregar a sua nova instalação do &kde;. </para>

<para
>Caso contrário, existe algo que poderá tentar que normalmente funciona: Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
>, para que lhe apareça um terminal de texto. Ligue-se com o utilizador dedicado e escreva: </para>

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

<tip>
<para
>Poderá executar o &kde; a partir do código e o &kde; antigo ao mesmo tempo! Ligue-se com o seu utilizador normal e inicie o ambiente de trabalho do &kde; estável. Carregue em <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (ou <keycap
>F1</keycap
>, <keycap
>F3</keycap
>, etc..), e verá um terminal de texto. Ligue-se com o utilizador dedicado ao &svn; do &kde; e escreva:</para>

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

<para
>Poderá voltar ao ambiente de trabalho do &kde; do seu utilizador normal se carregar na tecla de atalho do ambiente já em execução. Este é normalmente o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, sendo que poderá também necessitar de usar o <keycap
>F6</keycap
> ou o <keycap
>F8</keycap
> em alternativa. Para voltar ao seu &kde; compilado pelo &kdesvn-build;, irá usar a mesma sequência, exceptuando o facto da tecla de função seguinte. Por exemplo, se precisar de introduzir o <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> para mudar para o seu &kde; normal, poderá ter de introduzir <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
> para voltar ao seu &kde; do &kdesvn-build;.</para>
</tip>

</sect2>
</sect1>

</chapter>

<chapter id="features">
<title
>Funcionalidades do Programa</title>

<sect1 id="features-overview">
<title
>Introdução às Funcionalidades</title>

<para
>As funcionalidades do &kdesvn-build; incluem: </para>

<itemizedlist>

<listitem
><para
>Para os programadores: Suporta a <link linkend="building-apidox"
>compilação da documentação da API</link
> de um determinado módulo. </para
></listitem>

<listitem
><para
>Suporta os <link linkend="changing-verbosity"
>níveis de mensagens de resultado</link
>, desde o muito sossegado até à depuração completa. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode, com a assistência da <ulink url="http://kdesvn-build.kde.org/"
>página Web do kdesvn-build</ulink
>, permitir extracções rápidas de alguns módulos. Se o módulo que estiver a extrair já tiver um pacote equivalente na página Web, então o 'kdesvn-build' irá transferir essa imagem e prepará-la para o seu computador. </para>

<para
>Isto é mais rápido para si, e ajuda a libertar alguma carga nos servidores anónimos de Subversion do kde.org.</para>
</listitem>

<listitem
><para
>Tem um suporte excelente para o <link linkend="using-qt-copy"
>módulo 'qt-copy'</link
>, incluindo a aplicação opcional de actualizações ('patches') para correcções e optimizações no módulo 'qt-copy'. </para
></listitem>

<listitem
><para
>O &kdesvn-build; tem <link linkend="kdesvn-build-color"
>mensagens de resultado a cores.</link
> </para
></listitem>

<listitem
><para
>O &kdesvn-build; não necessita de uma <acronym
>GUI</acronym
> presente para funcionar. Por isso, poderá compilar o &kde; sem necessitar de um ambiente gráfico alternativo. </para
></listitem>

<listitem
><para
>Suporta a definição de opções por omissão para todos os módulos (como as opções de  compilação ou de configuração). Essas opções também poderão ser modificadas normalmente para módulos específicos.</para>

<para
>Do mesmo modo, o &kdesvn-build; irá <link linkend="kdesvn-build-std-flags"
>adicionar opções normais</link
>, como for apropriado, para lhe poupar trabalho e alguns erros possíveis, definindo-as você mesmo. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode <link linkend="partial-builds"
>obter apenas partes de um módulo</link
>, naquelas situações em que só necessita de um programa de um módulo grande. </para
></listitem>

<listitem
><para
>Para os programadores: Ele <link linkend="ssh-agent-reminder"
>recordá-lo-á</link
> se usar o svn+ssh:// mas o <application
>ssh-agent</application
> não estiver a correr, dado que isso irá levar a pedidos de senha repetidos do <application
>ssh</application
>. </para
></listitem>

<listitem
><para
>Pode <link linkend="email-reports"
>enviar relatórios por e-mail</link
> dos erros a um dado utilizador. </para
></listitem>

<listitem
><para
>Pode <link linkend="deleting-build-dir"
>remover a pasta de compilação</link
> de um módulo, após a sua instalação, para poupar espaço, em detrimento de um maior tempo de compilação. </para
></listitem>

<listitem
><para
>Os locais das pastas usadas pelo &kdesvn-build; são configuráveis (mesmo por módulo). </para
></listitem>

<listitem
><para
>Pode usar o <application
>sudo</application
> ou um comando definido pelo utilizador para <link linkend="root-installation"
>instalar os módulos</link
>, para que o &kdesvn-build; não necessite de ser executado como super-utilizador. </para
></listitem>

<listitem
><para
>O &kdesvn-build; executa-se <link linkend="build-priority"
>com prioridade reduzida</link
>, por omissão, para lhe permitir usar à mesma o seu computador, enquanto o &kdesvn-build; estiver a funcionar. </para
></listitem>

<listitem
><para
>Tem suporte para usar as <link linkend="using-branches"
>marcas e ramificações</link
> do &svn; do &kde;. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá usar um conjunto de técnicas para <link linkend="building-successfully"
>tentar e garantir</link
> uma compilação com sucesso. </para
></listitem>

<listitem
><para
>Existe o suporte para <link linkend="resuming"
>prosseguir com uma compilação</link
> de um dado módulo. Pode até <link linkend="ignoring-modules"
>ignorar alguns módulos</link
> temporariamente para uma dada compilação. </para
></listitem>

<listitem
><para
>O &kdesvn-build; também suporta o uso da sequência ~/ para se referir à sua pasta pessoal no &rcfile;. </para
></listitem>

<listitem
><para
>Obtém ou actualiza automaticamente os módulos do &svn;, à medida das necessidades. </para
></listitem>

<listitem
><para
>O &kdesvn-build; pode efectuar rapidamente uma <link linkend="partial-builds"
>compilação parcial</link
> de um módulo, directamente a partir da linha de comandos, quando só necessitar de actualizar parte de um módulo. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá obter automaticamente e criar a pasta <filename
>/admin</filename
> necessária, se não tiver sido obtida do &svn; da primeira vez, por alguma razão. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá mostrar o <link linkend="build-progress"
>progresso da sua compilação</link
> ao usar o &unsermake;, e irá medir sempre o tempo do processo de compilação, para que saiba no fim quanto tempo levou de facto. </para
></listitem>

<listitem
><para
>Tenta automaticamente compilar de novo os módulos que foram compilados com o 'make' incremental, que está sujeito a erros ao fim de algumas modificações. </para
></listitem>

<listitem
><para
>Poderá retomar um processo de compilação de um determinado módulo. </para
></listitem>

<listitem
><para
>Vem incorporado com um conjunto seguro de opções predefinidas, apropriadas para compilar uma instalação mono-utilizador de base do &kde; a partir do repositório de &svn; anónimo. </para
></listitem>

<listitem
><para
>Vem com suporte para o &unsermake;. </para
></listitem>

<listitem
><para
>Expansão do til (~) para as suas opções de configuração. Por exemplo, poderá indicar: <programlisting
>qtdir ~/kdesvn/build/qt-copy</programlisting>
</para
></listitem>

<listitem
><para
>Pastas configuráveis para compilação, para o código-fonte e para registos. </para
></listitem>

<listitem
><para
>Configura automaticamente um sistema de compilação com uma pasta de compilação diferente da pasta de código, para manter impecável a pasta de código. A única excepção é o <application
>qt-copy</application
>, que não está desenhado para ser compilado dessa forma (a menos que queira testar o <link linkend="conf-use-qt-builddir-hack"
><quote
>truque do Qt com uma pasta de compilação separada</quote
></link
>). </para
></listitem>

<listitem
><para
>Poderá indicar as opções globais a aplicar a todos os módulos a obter, assim como poderá indicar opções para se aplicar aos módulos individuais. </para
></listitem>

<listitem
><para
>Dado que as ferramentas 'auto*' normalmente perdem a sincronização com as modificações na árvore de código, poderá forçar uma nova compilação de um módulo, se criar um ficheiro chamado '.refresh-me' na pasta de compilação do módulo em questão ou executando o &kdesvn-build; com a opção <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Poderá indicar vários valores de ambiente a usar durante a compilação, incluindo o <envar
>KDEDIR</envar
>, o <envar
>QTDIR</envar
>, o <envar
>DO_NOT_COMPILE</envar
> e o <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Registo dos comandos. Os ficheiros de registo são datados e numerados, para que tenha sempre um relatório de execução de um programa. Do mesmo modo, é criada uma ligação simbólica 'latest' para apontar sempre para o item de registo mais recente na pasta respectiva. </para
></listitem>

<listitem
><para
>Se estiver a usar uma compilação de utilizador do &kde;, em vez de uma instalação do sistema (para a qual necessita de ser o 'root' para instalar), poderá usar o programa para o instalar por si. Não foi ainda validado o código e este faz uma utilização ampla da chamada <function
>system()</function
>, como tal, não é recomendado executá-lo como 'root' nesta altura. </para
></listitem>

<listitem
><para
>Poderá usar o <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> para anteceder o comando 'make install' com um comando separado, o que poderá ser útil para o 'sudo'. </para
></listitem>

<listitem
><para
>Poderá usar a opção <link linkend="conf-apidox"
>apidox</link
> para compilar e instalar automaticamente a documentação da API para alguns módulos. </para
></listitem>

<listitem
><para
>Poderá obter apenas uma parte de um módulo do &kde; no &svn;. Por exemplo, poderá obter apenas a biblioteca <application
>taglib</application
> do <application
>kdesupport</application
> ou apenas o <application
>K3B</application
> do <application
>extragear/multimedia</application
>. O programa irá obter automaticamente o <application
>kde-common</application
>, se for necessário para fazer a compilação funcionar. </para
></listitem>

<listitem
><para
>Poderá <quote
>fingir</quote
> efectuar as operações. Se passar a opção <option
>--pretend</option
> ou <option
>-p</option
> na linha de comandos, o programa dar-lhe-á uma descrição mais extensiva dos comandos que estará prestes a executar, sem os executar de facto. </para
></listitem>

<listitem
><para
>Suporte para obter ramificações ('branches') específicas dos módulos do &svn;. Este trabalho ainda necessita de ser terminado, mas já poderá seleccionar a ramificação que pretende compilar com a <link linkend="conf-module-base-path"
>opção de configuração 'module-base-path'</link
>. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesvn-build-logging">
<title
>Registo de compilação do &kdesvn-build;</title>

<sect2 id="logging-overview">
<title
>Introdução ao registo</title>

<para
>O registo é uma funcionalidade do &kdesvn-build; que consiste no facto do resultado de todos os comandos que o &kdesvn-build; executa serem gravados num ficheiro para serem posteriormente examinados, se necessário. Isto é feito, porque muitas vezes é necessário ter o resultado destes programas quando houver um erro de compilação, dado que poderão existir várias razões para a compilação falhar, em primeiro lugar.</para>

<sect3 id="log-directory-layout">
<title
>Disposição da pasta de registo</title>

<para
>Os registos são sempre gravados sob a pasta de registo. O destino da pasta em questão é controlado pela opção <link linkend="conf-log-dir"
>log-dir</link
>, que é por omissão igual a <filename
><symbol
>${source-dir}</symbol
>/log</filename
> (onde o <symbol
>${source-dir}</symbol
> é o valor da opção <link linkend="conf-source-dir"
>source-dir</link
>. No resto desta secção, este valor será referido como <symbol
>${log-dir}</symbol
>).</para>

<para
>Sob a <symbol
>${log-dir}</symbol
>, existe um conjunto de pastas, uma por cada vez que o &kdesvn-build; foi executado. Cada pasta tem como nome a data e o número da execução. Por exemplo, a segunda vez que o &kdesvn-build; foi executado a 26 de Maio de 2004 irá criar uma pasta chamada <filename
>2004-05-26-02</filename
>, onde o 2004-05-26 corresponde à data e o -02 é o número da execução.</para>

<para
>Por questões de conveniência, o &kdesvn-build; irá também criar uma ligação aos registos da sua última execução, chamada <filename
>latest</filename
>. Assim, os registos da última execução mais recente do &kdesvn-build; deverão estar sempre sob a <filename
><symbol
>${log-dir}</symbol
>/latest</filename
>. </para>

<para
>Agora, cada pasta de uma execução do &kdesvn-build; irá conter, por sua vez, um conjunto de pastas, uma por cada módulo &kde; que o &kdesvn-build; tentará compilar. Do mesmo modo, irá conter um ficheiro chamado <filename
>build-status</filename
> nessa pasta, que lhe permitirá determinar quais os módulos que compilaram bem e os que falharam.</para>

<note
><para
>Se um módulo em si tiver um sub-módulo (como o extragear/multimedia, playground/utils ou KDE/kdelibs), então, só irá existir uma disposição equivalente na pasta de registos. Por exemplo, os registos do KDE/kdelibs, após a última execução do &kdesvn-build;, irão aparecer em <filename
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
> e não em <filename
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>Na pasta de registo de cada módulo, irá encontrar um conjunto de ficheiros para cada operação que o &kdesvn-build; efectuar. Se o &kdesvn-build; actualizar um módulo, irá ver ficheiros chamados <filename
>svn-co.log</filename
> (para um módulo extraído por completo) ou <filename
>svn-up.log</filename
> (ao actualizar um módulo que já tinha sido extraído). Se o comando <command
>configure</command
> foi executado, então será de esperar ver um ficheiro <filename
>configure.log</filename
> nessa pasta.</para>

<para
>Se ocorreu um erro, deverá ser capaz de ver uma explicação da razão num dos ficheiros. Para o ajudar a determinar qual o ficheiro que contém o erro, o &kdesvn-build; irá criar uma ligação do ficheiro que contém o erro (do tipo <filename
>build-1.log</filename
> para um ficheiro chamado <filename
>error.log</filename
>).</para>

<para
>A vantagem de tudo isto é que, para ver onde é que um ficheiro falhou na compilação, após a sua última execução do &kdesvn-build;, o ficheiro que deverá ver primeiro é o <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>nome-módulo</replaceable
>/error.log</filename
>. </para>

<tip
><para
>Se o ficheiro <filename
>error.log</filename
> estiver em branco (especialmente após uma instalação), então provavelmente não houve qualquer erro. Algumas das ferramentas usadas pelo sistema de compilação do &kde; irão comunicar por engano um erro quando não ocorreu nada.</para>

<para
>Do mesmo modo, alguns comandos poderão fugir ao redireccionamento do resultado do &kdesvn-build; e passar ao lado do ficheiro de registo em certas circunstâncias (normalmente ao obter o conteúdo do &svn; da primeira vez), onde o resultado do erro, nesse caso, não está no ficheiro de registo mas sim no &konsole; ou no terminal onde executou o &kdesvn-build;</para>
</tip>

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

</chapter>

<chapter id="kdesvn-buildrc">
<title
>O Formato do '.kdesvn-buildrc'</title>

<para
>Para usar o programa, deverá ter um ficheiro na sua pasta pessoal <filename
>.kdesvn-buildrc</filename
>, que descreve os módulos que deseja obter e compilar. </para>

<para
>Ele começa com as opções globais, indicadas da seguinte forma: </para>

<programlisting
>global
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

<para
>Segue-se então uma ou mais secções dos módulos, organizadas da seguinte forma: </para>

<programlisting
>module <replaceable
>nome-módulo</replaceable>
<replaceable
>nome-opção valor-opção</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>

<para
>O <replaceable
>nome-módulo</replaceable
> deverá ser um módulo do repositório de &svn; do &kde; (por exemplo, o 'kdelibs' ou o 'kdebase'). Algumas das opções sobrepõem-se às globais, algumas adicionam-se às opções globais e algumas opções globais simplesmente não podem ser sobrepostas. </para>

<para
>Segue-se uma lista ordenada alfabeticamente das opções que poderá usar. Carregue na opção para descobrir mais sobre ela. Se alguma não estiver documentada, envie por favor um e-mail aos autores, usando o endereço que poderá encontrar <link linkend="authors"
>acima</link
>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-apidox"
>apidox</link
>, para compilar a Documentação da API</para
></listitem>
<listitem
><para
><link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, para melhorar o 'qt-copy'</para
></listitem>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, para definir a variável <envar
>PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>, para obter uma dada ramificação, em vez da '/trunk'.</para
></listitem>
<listitem
><para
><link linkend="conf-build-dir"
>build-dir</link
>, para definir a pasta onde será feita a compilação.</para
></listitem>
<listitem
><para
><link linkend="conf-checkout-only"
>checkout-only</link
>, para transferir apenas as partes de um módulo.</para
></listitem>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
> para definir as opções com que um módulo poderá ser configurado, ao usar o 'cmake'c.</para
></listitem>
<listitem
><para
><link linkend="conf-colorful-output"
>colorful-output</link
> para colorir o resultado do programa.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
> para definir as opções com que um módulo poderá ser configurado.</para
></listitem>
<listitem
><para
><link linkend="conf-cxxflags"
>cxxflags</link
> para definir a variável <envar
>CXXFLAGS</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-dest-dir"
>dest-dir</link
> para mudar a pasta de instalação de um módulo.</para
></listitem>
<listitem
><para
><link linkend="conf-disable-agent-check"
>disable-agent-check</link
>, para impedir que o 'kdesvn-build' verifique o estado do 'ssh-agent'.</para
></listitem>
<listitem
><para
><link linkend="conf-do-not-compile"
>do-not-compile</link
>, para marcar as pastas que não serão compiladas.</para
></listitem>
<listitem
><para
><link linkend="conf-inst-apps"
>inst-apps</link
>, para só compilar e instalar algumas pastas.</para
></listitem>
<listitem
><para
><link linkend="conf-install-after-build"
>install-after-build</link
>, para evitar a instalação após o processo de compilação.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, para indicar a pasta onde o &kde; será instalado.</para
></listitem>
<listitem
><para
><link linkend="conf-kde-languages"
>kde-languages</link
>, para indicar os pacotes de traduções a obter e a instalar.</para
></listitem>
<listitem
><para
><link linkend="conf-libpath"
>libpath</link
>, para configurar a variável <envar
>LD_LIBRARY_PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-install-prefix"
>make-install-prefix</link
>, para executar um programa auxiliar (como o 'sudo') durante o 'make install'.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>, para passar opções ao programa 'make'.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-build"
>manual-build</link
>, para evitar que o módulo seja compilado automaticamente.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-update"
>manual-update</link
>, para evitar que seja feito, seja o que for, ao módulo de forma automática.</para
></listitem>
<listitem
><para
><link linkend="conf-module-base-path"
>module-base-path</link
>, para mudar o local onde transferir o módulo (útil para as ramificações - 'branches' -, e marcas - 'tags').</para
></listitem>
<listitem
><para
><link linkend="conf-niceness"
>niceness</link
>, para mudar a prioridade do CPU.</para
></listitem>
<listitem
><para
><link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>, para evitar executar o 'make' de novo se falhar.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, para definir a localização do &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-set-env"
>set-env</link
>, para configurar uma variável de ambiente.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>, para mudar o local onde colocar o código transferido.</para
></listitem>
<listitem
><para
><link linkend="conf-stop-on-failure"
>stop-on-failure</link
>, para fazem com que o 'kdesvn-build' pare o mais cedo possível, após encontrar um problema.</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, para mudar o servidor de onde é transferido o código.</para
></listitem>
<listitem
><para
><link linkend="conf-use-unsermake"
>use-unsermake</link
>, para usar o sistema de compilação avançado, o 'unsermake'.</para
></listitem>
</itemizedlist>


<para
>Aqui está uma tabela com as opções globais, bem como alguns comentários sobre elas. As opções que se sobreporem às globais irão também sobrepor-se a uma configuração da linha de comandos. </para>

<table id="option-table">
<title
>Tabela de Opções</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Nome da Opção</entry>
<entry
>Comportamento do Módulo -&gt; Global</entry>
<entry
>Notas</entry>
</row>
</thead>

<tbody>

<row id="conf-apidox">
<entry
>apidox</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Configure esta opção como <quote
>true</quote
>, para que o &kdesvn-build; compile e instale automaticamente a documentação da API do módulo, após o processo de compilação/instalação normal. Isto só funciona para os módulos em que o <command
>make apidox</command
> faz alguma coisa, e que incluem o 'kdelibs', 'kdebase' e o 'koffice', entre outros. </para>
<para
>Esta opção não funciona para os módulos que usam o suporte para o &unsermake;, devido a deficiências no sistema de compilação 'unsermake'. </para>
</entry>
</row>

<row id="conf-apply-qt-patches">
<entry
>apply-qt-patches</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção só é útil para o 'qt-copy'. Se for um valor diferente de zero, então o programa 'apply-patches' do 'qt-copy' será executado antes da compilação, para aplicar as alterações não oficiais no 'qt-copy'. Dado que estas alterações são normalmente a razão para usar o 'qt-copy', em vez de um &Qt; oficial, não deverá haver qualquer problema em activá-las. Por omissão, está activada a aplicação destas modificações.</entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Active esta opção para modificar a variável de ambiente PATH durante a compilação. Não poderá sobrepor esta opção numa opção do módulo. O valor por omissão é o <filename class="directory"
>/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin</filename
>. Esta variável de ambiente deverá incluir os locais, separados por dois-pontos das suas ferramentas de desenvolvimento. Os locais <filename class="directory"
>$KDEDIR/bin</filename
> e <filename class="directory"
>$QTDIR/bin</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Altere esta opção para obter uma ramificação do &kde;, em vez do valor por omissão "trunk", onde o desenvolvimento do &kde; está em curso. Por exemplo, para obter a ramificação do &kde; 3.4, deverá configurar esta opção como "3.4".</para>
<para
>Lembre-se que alguns módulos usam um nome de ramificação diferente. Em concreto, o módulo obrigatório 'arts' não segue os números de versões do &kde;. O 'arts' que acompanhava o &kde; 3.4 era o 1.4.</para>
<para
>Se o 'kdesvn-build' não conseguir obter adequadamente uma ramificação com esta opção, poderá ter de indicar manualmente o URL de onde transferir, com a opção <link linkend="conf-override-url"
>override-url</link
>.</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que contém o código compilado. Existem três formas diferentes de o usar: <itemizedlist
> <listitem
><para
>Relativa à pasta de código do &kde; no &svn; (ver a <link linkend="conf-source-dir"
>opção 'source-dir'</link
>). Esta é a opção predefinida e a forma como funcionou o programa até à versão v0.61. Este modo fica seleccionado se escrever o nome de uma pasta que não comece por um til (~) ou uma barra (/).</para
> <para
>O valor por omissão é <filename class="directory"
>build</filename
>.</para
></listitem
> <listitem
><para
>Um local absoluto. Se indicar um local que comece por um /, então será usado esse local directamente. Por exemplo, o <filename class="directory"
>/tmp/kde-obj-dir/</filename
>.</para
></listitem
> <listitem
><para
>Relativo à sua pasta pessoal. Se indicar uma pasta que comece com um '~', então o local será usado em relação à sua pasta pessoal, de forma semelhante à expansão do til da linha de comandos. Por exemplo, o <filename class="directory"
>~/builddir</filename
> irá configurar a pasta de compilação como <filename class="directory"
>/home/utilizador/builddir</filename
>.</para
></listitem
> </itemizedlist
> Talvez de forma surpreendente, esta opção poderá alterada por módulo. </entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Altere esta opção para obter o código do &svn; passo-a-passo. O valor desta opção deverá ser uma lista separada por espaços das pastas a transferir. Se não incluir a pasta 'admin', será incluída automaticamente (se necessário). Ao transferir passo-a-passo, a pasta 'admin' será obtida do 'kde-common', que é onde se encontra no servidor do &svn;. Ainda que esta opção se sobreponha à global, tenha em atenção que esta opção, como global, não faz sentido. </entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Adiciona às opções globais (não se aplica no 'qt-copy')</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao &cmake; quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. Quando for usado como a opção de um módulo, é adicionado ao fim das opções globais. Isto permite-lhe definir opções do CMake comuns na secção global.</para>

<para
>Esta opção substitui a <link linkend="conf-configure-flags"
>configure-flags</link
> para todos os módulos do KDE 4, dado que estes usam o CMake para se compilar.</para>

<para
>Dado que estas opções são passadas directamente à linha de comandos do CMake, deverão ser indicados como seriam passados no CMake. Por exemplo:</para>

<screen
>cmake-options -DRPATH_STYLE=default
</screen>

<para
>Dado que isto é muito trabalhoso, o &kdesvn-build; faz tudo para que as restantes opções são definidas correctamente, pelo que poderá deixar esta opção em branco.</para
></entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Adiciona às opções globais (excepto no 'qt-copy')</entry>
<entry
><para
>Use esta opção para indicar quais as opções a passar ao './configure' quando criar o sistema de compilação do módulo. Quando isto é usado como uma opção global, é aplicada a todos os módulos onde este programa se compila. O 'qt-copy' usa um conjunto muito diferente de opções do 'configure' do resto do &kde;, como tal esta opção <emphasis
>sobrepõe</emphasis
> as opções globais, quando é aplicada ao 'qt-copy'. </para>

<para
>Esta opção aplica-se ao 'qt-copy' e a todos os módulos do KDE 3. Os módulos do KDE 4 usam o &cmake;, que é controlado pela opção <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção como 'false' para desactivar o resultado colorido do &kdesvn-build;. Por omissão é <quote
>true</quote
>. Lembre-se que o &kdesvn-build; não irá mostrar os códigos de cores em nada que não seja um terminal (como o 'xterm', o &konsole; ou a consola normal do &Linux;). </entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Adiciona-se à opção global</entry>
<entry
>Use esta opção para indicar as opções a passar ao <command
>./configure</command
> como <envar
>CXXFLAGS</envar
>, ao criar o sistema de compilação do módulo. Esta opção é indicada aqui em vez do <link linkend="conf-configure-flags"
>configure-flags</link
> ou do <link linkend="conf-cmake-options"
>cmake-options</link
>, dado que esta opção irá também definir a variável de ambiente <envar
>CXXFLAGS</envar
> durante o processo de compilação. </entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar o nome que é dado a um módulo no disco. Por exemplo, se o seu módulo se chamava 'extragear/network', poderá mudar o nome do mesmo para 'extragear-network' com esta opção. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Normalmente, se estiver a usar o SSH para obter o código do Subversion (se, por exemplo, estiver a usar o protocolo 'svn+ssh'), o 'kdesvn-build' irá tentar certificar-se que, se estiver a usar o 'ssh-agent', ele está de facto a gerir algumas identidades do SSH. Isto é para tentar e evitar que o SSH pergunte a sua frase-senha para todos os módulos. Poderá desactivar esta opção se activar a opção 'disable-agent-check' como 'true'. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para definir a variável de ambiente <envar
>DO_NOT_COMPILE</envar
> antes de executar o programa 'configure'. De acordo com a <ulink url="http://developer.kde.org/documentation/other/developer-faq.html"
>FAQ de Desenvolvimento do &kde;</ulink
>, este deverá ser o caso de uma pasta de topo que não deseje compilar. As pastas deverão estar separadas por espaços.</para>

<para
>Lembre-se que o código dos programas será à mesma transferido. Poderá usar a instrução <link linkend="conf-checkout-only"
>checkout-only</link
> para escolher as pastas que deseja obter.</para>

<important
><para
>Esta opção ainda não funciona com os módulos compilados com o &cmake;</para
></important>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Configure esta opção com o endereço de e-mail que o 'kdesvn-build' deverá enviar, no caso de alguma vez necessitar de enviar mensagens. Não terá de se preocupar com isto se não usar qualquer funcionalidade que envie e-mails. (Elas estão todas  desactivadas por omissão). </para>

<para
>De momento, só o <link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
> é que necessita desta opção. </para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry>
<para
>Poderá configurar esta opção com o endereço de e-mail para onde enviar um relatório, sempre que um módulo não conseguir ser compilado. O 'kdesvn-build' irá esperar até que todos os módulos terminem e irá recolher todos os resultados no relatório. Este só é enviado se um módulo se recusar a compilar. </para>

<para
>Por favor, veja a opção <link linkend="conf-email-address"
>email-address</link
> para configurar o endereço de onde o 'kdesvn-build' irá enviar, dado que o valor por omissão não é normalmente o que pretende. </para>
</entry>
</row>

<row id="conf-inst-apps">
<entry
>inst-apps</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta é o oposto da opção <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Serve para indicar que apenas as pastas de topo referidas serão compiladas. As pastas deverão estar separadas por espaços.</para>

<para
>As alterações não farão efeito até à próxima vez que o <command
>make <option
>-f</option
> Makefile.cvs</command
> seja executado, quer automaticamente pelo programa, quer manualmente pelas opções <link linkend="cmdline-refresh-build"
><option
>--refresh-build</option
></link
> ou <link linkend="cmdline-recreate-configure"
><option
>--recreate-configure</option
></link
>. </para>

<important
><para
>Esta opção não funciona ainda para os módulos que usam o sistema de compilação &cmake;.</para
></important>

<para
>Lembre-se que o código dos programas será à mesma transferido. Poderá usar a instrução <link linkend="conf-checkout-only"
>checkout-only</link
> para escolher as pastas que deseja obter.</para>
</entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para instalar o pacote depois de este ser compilado com sucesso. Esta opção está activa por omissão. Se quiser desactivá-la, terá de configurar esta opção como 0 no &rcfile;. Poderá também usar a opção da linha de comandos <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
>. </entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção define a pasta em que o &kde; será instalado após a compilação. Por omissão, será em <filename class="directory"
>~/kde</filename
>. Se mudar isto para uma pasta que necessite do acesso do 'root', poderá ter de ler acerca da opção <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> também.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Esta opção permite-lhe escolher os pacote transferidos e instalados em conjunto com o &kde;. Poderá fazer isto se não viver nos Estados Unidos e quiser o &kde; traduzido para a sua língua nativa.</para>

<para
>Para usar esta opção, configure-a como uma lista separada por espaços das línguas a instalar. Cada língua tem um código associado a ele, o qual poderá encontrar nesta página: <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
>. </para>

<para
>É aceitável escolher apenas uma língua. Por omissão, não é transferida nenhuma, o que significa que o &kde; irá aparecer em Inglês dos EUA.</para>

<para
>Por exemplo, para optar por instalar o Português, iria configurar a opção com algo do tipo: <userinput
><option
>kde-languages</option
> <replaceable
>pt</replaceable
></userinput
>. Terá à mesma de usar o &kcontrol; para escolher a língua Portuguesa, todavia.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente LD_LIBRARY_PATH, enquanto efectua a compilação. Não poderá sobrepor esta opção num módulo. O valor por omissão está em branco, mas os locais <filename class="directory"
>$KDEDIR/lib</filename
> e <filename class="directory"
>$QTDIR/lib</filename
> são adicionados automaticamente. Poderá usar o til (~) para os locais que adicionar com esta opção. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Use esta opção para mudar a pasta que irá conter os ficheiros de registo gerados pelo programa. Esta opção poderá ser definida por cada módulo, desde a versão 0.64 e posteriores. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta variável com uma lista separada por espaços, que será interpretada como um comando e as suas opções, para anteceder o comando 'make install', que é usado para instalar os módulos. Isto é útil para instalar os pacotes com o 'sudo', por exemplo, mas tenha cuidado enquanto lida com os privilégios do 'root'.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta variável para passar as opções da linha de comandos ao comando 'make'. Isto é útil para os programas, como o <ulink url="http://distcc.samba.org/"
><application
>distcc</application
></ulink
>. O <application
>distcc</application
> permite-lhe partilhar o seu trabalho de compilação por mais que um computador. Para a usar, deverá usar a opção <option
>-j</option
> do 'make'. Agora já pode. De acordo com a documentação, recomenda-se '2 * número_de_cpus_na_rede'. Existe 1 CPU no caso do autor, como tal seria <option
>-j2</option
> no caso dele.</entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <quote
>true</quote
> para evitar que o processo de compilação tente compilar este módulo. Será à mesma mantido actualizado ao actualizar a partir do &svn;. Esta opção é exactamente equivalente à opção da linha de comandos <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor da opção como <quote
>true</quote
> para evitar que o processo de compilação tente actualizar (e, por conseguinte, compilar ou instalar) este módulo. Se definir esta opção para um módulo, também poderá tê-la comentada. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Configure esta opção para se sobrepor à pasta por omissão do &kdesvn-build; para o módulo em questão. Isto poderá ser usado, por exemplo, para usar ramificações ou marcas específicas de determinadas bibliotecas. O <ulink url="http://websvn.kde.org/"
>Visualizador de Código do &kde;</ulink
> é extremamente valioso para o ajudar a escolher o local correcto.</para>
<para
>Lembre-se que o &kdesvn-build; constrói o local final de acordo com o seguinte modelo: <varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
>/<varname
>$module-name</varname
>. </para>
<para
>O valor por omissão tanto pode ser o <quote
>trunk</quote
> como o <quote
>trunk/KDE</quote
>, dependendo do nome do módulo.</para>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
>Configure esta opção com um valor entre 20 e 0. Quanto mais alto o número, menor prioridade terá o &kdesvn-build; para si próprio. O valor por omissão é 10. </entry>
</row>

<row id="conf-no-rebuild-on-fail">
<entry
>no-rebuild-on-fail</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor desta opção como <quote
>true</quote
> para evitar sempre que o &kdesvn-build; tente compilar de novo este módulo, se falhar numa compilação incremental. Normalmente, o &kdesvn-build; irá tentar compilar de novo o módulo do zero, para contradizer o efeito de uma actualização do &svn; inválida que confunda o sistema de compilação.</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Se configurar esta opção, o 'kdesvn-build' irá usar o seu valor como o URL a passar ao &svn;, <emphasis
>sem qualquer alteração</emphasis
>. Deverá usar geralmente esta opção, se quiser obter uma versão específica, mas o 'kdesvn-build' não conseguir descobrir o que queria dizer ao usar a opção <link linkend="conf-branch"
>branch</link
>. </entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure esta opção para definir a variável de ambiente QTDIR enquanto compila. Poderá sobrepor esta configuração numa opção de um módulo. Se não indicar esta opção, será por omissão a <filename class="directory"
><varname
>$(source-dir)</varname
>/build/qt-copy</filename
>, que irá usar o módulo 'qt-copy' que está incluído no repositório de código do &kde;. Poderá usar um til (~) que representa a sua pasta pessoal. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Se estiver com pouco espaço em disco, poderá querer usar esta opção para remover automaticamente a pasta de compilação (ou as pastas de compilação e de código, para instalações episódicas), após o módulo ter sido instalado com sucesso. </para>
<para
>Os valores possíveis para esta opção são: <itemizedlist>
<listitem
><para
>none - Não remove nada (Este é o valor por omissão).</para
></listitem>
<listitem
><para
>builddir - Remove a pasta de compilação, mas não o código.</para
></listitem>
<listitem
><para
>all - Remove tanto o código-fonte como a pasta de compilação.</para
></listitem>
</itemizedlist>
</para>

<para
>Lembre-se que a utilização desta opção poderá ter um grande impacto na utilização da sua largura de banda (se usar o 'all') e o tempo que dura a compilação do &kde;, dado que o 'kdesvn-build' será incapaz de efectuar compilações incrementais.</para>
</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Esta opção aceita um conjunto de valores separados por espaços, onde o primeiro valor é a variável de ambiente a definir e o resto dos valores é o que deseja atribuir à sua variável. Por exemplo, para configurar a variável RONALD como McDonald, iria pôr este comando na secção apropriada:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Esta opção é especial, na medida em que poderá ser repetida sem sobrepor a configuração anterior do 'set-env' na mesma secção do &rcfile;. Desta forma, poderá definir mais que uma variável de ambiente por módulo (ou a nível global).</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para definir a pasta do seu computador, onde será guardado o código-fonte do &svn; do &kde;. Se não indicar este valor, será usado o valor por omissão <filename class="directory"
>~/kdesvn</filename
>. Se indicar de facto este valor, use um local absoluto. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Esta opção é usada para definir o servidor usado para obter o código do &svn;. Por omissão, é usado o repositório anónimo de &svn;, em <emphasis
>svn://anonsvn.kde.org/</emphasis
></entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Configure o valor desta opção como <quote
>true</quote
> para fazer com que o programa pare a execução, após ocorrer um erro durante o processo de compilação ou instalação. Esta opção está desactivada por omissão. </entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Use esta opção para obter uma versão específica de um módulo.</para>
<para
><emphasis
>NOTA:</emphasis
> As hipóteses serão muito boas quando NÃO QUISER usar esta opção. As versões do &kde; estão disponíveis em pacote comprimidos no <ulink url="ftp://ftp.kde.org/"
>servidor de FTP do &kde;</ulink
> ou numa das suas <ulink url="http://download.kde.org/download.php"
>réplicas</ulink
>.</para>
<para
>Se estiver a usar o 'kdesvn-build' porque está com problemas a obter uma versão do &kde; para compilar na sua distribuição, pense em usar a <ulink url="http://developer.kde.org/build/konstruct/"
>ferramenta de compilação Konstruct</ulink
> em alternativa, a qual funciona a partir dos pacotes de lançamento.</para>
</entry>
</row>

<row id="conf-use-cmake">
<entry
>use-cmake</entry>
<entry
>Sobrepõe-se à global</entry>
<entry>
<para
>Esta opção permite-lhe obrigar o &kdesvn-build; a tentar (ou não) usar o CMake para um dado módulo. Normalmente, o &kdesvn-build; irá tentar sempre usar o CMake, se estiver presente no módulo, dado que será necessário para compilar o KDE 4. Esta opção está disponível para facilitar a transição do 'unsermake' para o CMake. Esta opção será removida assim que todos os módulos precisem do CMake. </para>
</entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
>Ainda que esta opção se sobreponha à global, só fará sentido para o 'qt-copy'. Configure esta opção como <quote
>true</quote
> para activar o modo <emphasis
>experimental</emphasis
> de 'srcdir' != 'builddir'. Se estiver activada, o &kdesvn-build; irá copiar o módulo de código do 'qt-copy' para a pasta de compilação e efectuar as compilações a partir daí. Isto significa que a sua variável de ambiente QTDIR ficará igual a <filename class="directory"
>$(qt-copy-build-dir)/qt-copy/lib</filename
> em alternativa. Deverá também mudar a sua opção <link linkend="conf-qtdir"
>qtdir</link
> em função disso. O 'make' incremental deverá à mesma funcionar neste modo, dado que as datas serão preservadas após a cópia. Se usar a opção <link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, as actualizações serão aplicadas na pasta de compilação, não na pasta de código. Esta opção é igual a <quote
>true</quote
>, por omissão. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Não poderá ser sobreposta</entry>
<entry
><para
>Dado que o &kdesvn-build; tem o suporte para compilar o &kde; 3 e o 4, deverá haver alguma forma de indicar qual a versão a compilar. Por omissão, o &kdesvn-build; irá compilar a ramificação principal de desenvolvimento do &kde; (chamada de /trunk). Mas este é o &kde; 4, o qual ainda não está ainda pronto para ser lançado. </para>

<para
>Pode usar a opção &branch; a nível global ou para cada módulo, para transferir do &kde; 3.5 (ou 3.4, etc.). Contudo, isto não é conveniente (como o 'kdesupport') são partilhados entre o 3.5 e o 4. Para além disso, é necessário adicionar bastantes opções 'branch' ao ficheiro de configuração.</para>

<para
>Por isso, se configurar esta opção global como <option
>true</option
>, o &kdesvn-build; irá transferir automaticamente a versão para o &kde; 3.5 dos módulos, como o 'kdelibs' e o 'qt-copy', em vez de transferir a versão para &kde; 4. Poderá à mesma usar as opções &branch; ou &tag; para um módulo, de modo a substituir a configuração que o &kdesvn-build; escolhe. Desta forma, poderá optar por transferir o &kde; 3.5 em vez do &kde; 4, ainda por lançar.</para>
</entry>
</row>

<row id="conf-use-unsermake">
<entry
>use-unsermake</entry>
<entry
>Sobrepõe-se à global</entry>
<entry
><para
>Configure esta opção como <quote
>true</quote
> para poder usar o programa experimentar 'unsermake' em vez do 'automake' ao correr o programa 'configure'. Isto poderá levar a algumas diminuições sérias na altura da compilação, principalmente no caso dos <ulink url="http://www.csh.rit.edu/slashdot/distcc.html"
>sistemas de compilação distribuídos</ulink
>. Esta opção é, por omissão, <quote
>true</quote
> (para a maioria dos módulos). </para>

<para
>Normalmente, se usar esta opção, o 'kdesvn-build' irá manter automaticamente o 'unsermake' actualizado. Isto poderá começar a ser incómodo, principalmente se estiver a gerir você mesmo o 'unsermake'. Se for este o caso, poderá configurar esta opção como <quote
>self</quote
>, pelo que o 'kdesvn-build' irá usar à mesma o 'unsermake', mas não fará nada de especial para o manter actualizado. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</chapter>

<chapter id="cmdline">
<title
>Opções da Linha de Comandos e Variáveis de Ambiente</title>

<para
>Este programa não usa variáveis de ambiente. Se necessitar de definir variáveis de ambiente para o ambiente de compilação ou de instalação, veja a opção <link linkend="conf-set-env"
>set-env</link
>. </para>

<para
>O programa aceita as seguintes opções da linha de comandos: </para>

<variablelist>

<varlistentry id="cmdline-help">
<term
><option
>--help</option
></term>
<listitem
><para
>mostra apenas uma ajuda simples deste programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><option
>--version</option
></term>
<listitem
><para
>mostra a versão do programa. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><option
>--author</option
></term>
<listitem
><para
>mostra as informações de contacto do autor. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><option
>--color</option
></term>
<listitem
><para
>activa o resultado do programa a cores. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><option
>--nice=<replaceable
>valor</replaceable
></option
></term>
<listitem
><para
>Configura o valor de &niceness; como <replaceable
>valor</replaceable
>, durante esta execução. O <replaceable
>valor</replaceable
> deverá estar entre 0 e 20. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><option
>--no-color</option
></term>
<listitem
><para
>desactiva o resultado do programa a cores. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><option
>--pretend</option
> (ou <option
>-p</option
>)</term>
<listitem
><para
>não faz NADA de facto, mas funciona como se fizesse. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><option
>--quiet</option
> (ou <option
>-q</option
>)</term>
<listitem
><para
>Não é tão descritivo com o resultado à saída. Com esta opção, só as mensagens básicas são apresentadas. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><option
>--really-quiet</option
></term>
<listitem
><para
>Só mostra as mensagens de avisos e erros. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><option
>--verbose</option
></term>
<listitem
><para
>Torna-se bastante descritivo com o que se passa e o que o 'kdesvn-build' está a fazer. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-svn-only">
<term
><option
>--svn-only</option
></term>
<listitem
><para
>efectua apenas a actualização do código. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><option
>--build-only</option
></term>
<listitem
><para
>efectua apenas o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><option
>--ignore-modules</option
></term>
<listitem
><para
>não inclui os módulos passados no resto da linha de comandos no processo de actualização/compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-svn">
<term
><option
>--no-svn</option
></term>
<listitem
><para
>ignora o passo de contacto do servidor do &svn;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><option
>--no-build</option
></term>
<listitem
><para
>salta o processo de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><option
>--no-install</option
></term>
<listitem
><para
>não instala automaticamente os pacotes, após a sua compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><option
>--debug</option
></term>
<listitem
><para
>activa o modo de depuração para o programa. De momento, isto significa que todo o resultado será enviado para o STDOUT, para além de ficar registado na pasta de registo como normal. Do mesmo modo, muitas das funções tornar-se-ão mais descritivas sobre o que estão fazer no modo de depuração. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><option
>--no-rebuild-on-fail</option
></term>
<listitem
><para
>não tenta compilar de novo os módulos que não conseguiram ser compilados do zero. O &kdesvn-build; nunca irá tentar fazer isto num módulo que já se tentou compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><option
>--refresh-build</option
></term>
<listitem
><para
>volta a criar o sistema de compilação e a compilar do zero. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><option
>--reconfigure</option
></term>
<listitem
><para
>executa o programa 'configure' de novo sem limpar a pasta de compilação. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-recreate-configure">
<term
><option
>--recreate-configure</option
></term>
<listitem
><para
>executa o <command
>make <option
>-f</option
> Makefile.cvs</command
> de novo para criar o programa 'configure' e continua a compilação normalmente. Esta opção implica a <option
><link linkend="cmdline-reconfigure"
>--reconfigure</link
></option
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><option
>--resume-from</option
></term>
<listitem
><para
>Esta opção é usada para prosseguir a compilação a partir do módulo indicado, que deverá ser a opção seguinte na linha de comandos. Esta opção implica a <link linkend="cmdline-no-svn"
><option
>--no-svn</option
></link
>. Não deverá indicar os nomes dos outros módulos na linha de comandos. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><option
>--rc-file</option
></term>
<listitem
><para
>que interpreta o próximo parâmetro da linha de comandos como o ficheiro de onde ler as opções de configuração. O valor por omissão deste parâmetro é '~/.kdesvn-buildrc'. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><option
>--run</option
></term>
<listitem
><para
>Esta opção interpreta o item seguinte na linha de comandos como um programa a executar, pelo que o &kdesvn-build; irá acabar de ler o ficheiro de configuração normalmente e depois irá executar o programa indicado.</para>

<para
>Isto não irá funcionar para iniciar uma linha de comandos com o ambiente do 'kdesvn-build', contudo, dado que as linhas de comando interactivas limpam  tipicamente alguma parte das variáveis de ambiente (como a <envar
>PATH</envar
> e a <envar
>KDEDIRS</envar
>) na sequência de arranque. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><option
>--prefix=&lt;/localização/do/kde&gt;</option
></term>
<listitem
><para
>que lhe permite mudar a pasta onde o &kde; será instalado na linha de comandos. Esta opção implica a <link linkend="cmdline-reconfigure"
><option
>--reconfigure</option
></link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><option
>--build-system-only</option
></term>
<listitem
><para
>pára após a execução do <command
>make <option
>-f</option
> Makefile.cvs</command
>. O programa 'configure' irá necessitar à mesma de ser executado, coisa que o &kdesvn-build; irá fazer da próxima vez. Isto permite-lhe preparar todos os programas 'configure' de uma vez, para que possa ver o <command
>./configure <option
>--help</option
></command
> de cada módulo e editar as suas opções do 'configure' adequadamente. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><option
>--install</option
></term>
<listitem
><para
>Se esta for a única opção da linha de comandos, irá tentar instalar todos os módulo incluídos em 'successfully-built', excepto o 'qt-copy', que não necessita de instalação. Se as opções da linha de comandos forem indicadas após o <option
>--install</option
>, então assumem-se que são módulos para instalar. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><option
>--&lt;nome-da-opção&gt;=</option
></term>
<listitem
><para
>Poderá usar esta opção para sobrepor outra opção no seu &rcfile; para todos os módulos. Por exemplo, para sobrepor a opção <link linkend="conf-log-dir"
>log-dir</link
>, deverá escrever: <option
>--log-dir=/local/da/pasta</option
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><option
>--&lt;nome-módulo&gt;,&lt;nome-opção&gt;=</option
></term>
<listitem
><para
>Poderá usar esta opção para sobrepor uma opção do seu &rcfile; para um dado módulo. Por exemplo, para sobrepor a opção <link linkend="conf-use-unsermake"
>use-unsermake</link
> do 'kdemultimedia', iria escrever: <option
>--kdemultimedia,use-unsermake=false</option
>. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Todas as outras opções da linha de comandos assumem-se como sendo módulos para actualizar e compilar. Por favor, não misture a compilação com a instalação. </para>

</chapter>

<chapter id="using-kdesvn-build">
<title
>Usar o &kdesvn-build;</title>

<sect1 id="using-kdesvn-build-preface">
<title
>Prefácio</title>

<para
>Normalmente, a utilização do &kdesvn-build; após ter passado pelo <xref linkend="getting-started"/> é tão simples como fazer o seguinte, a partir de uma linha de comandos:</para>

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

<para
>O &kdesvn-build; irá então transferir o código do &kde;, tentará configurá-lo e compilá-lo e, no fim, irá tentar instalá-lo.</para>

<para
>Leia mais para saber como é que o &kdesvn-build; faz isso, assim como o que poderá fazer com esta ferramenta.</para>

</sect1>

<sect1 id="basic-features">
<title
>Funcionalidades básicas do &kdesvn-build;</title>

<sect2 id="using-qt-copy">
<title
>Suporte para o 'qt-copy'</title>
<para
>O &kdesvn-build; tenta manter um suporte excelente para o módulo 'qt-copy' que vem incluído no repositório de &svn; do &kde;.</para>

<note
><para
>O 'qt-copy' é uma cópia do código-fonte da última versão do &Qt;, usada pelo &kde;. Contém também um conjunto de actualizações para optimizações e correcções de erros que, opcionalmente, poderão ser aplicadas. Estas actualizações são à mesma compatíveis com a biblioteca &Qt;, como tal o código produzido com o 'qt-copy' funciona à mesma com o &Qt; normal. </para
></note>

<para
>A maior parte das diferenças necessárias para o 'qt-copy' são tratadas automaticamente pelo &kdesvn-build;. Contudo, existem algumas diferenças que poderá ter de conhecer.</para>

<itemizedlist>
<listitem
><para
>Normalmente, o valor das &configure-flags; de um módulo é adicionado à configuração global das &configure-flags;. Contudo a opção &configure-flags; do 'qt-copy' irá substituir a configuração global, dado que não são linhas de comando equivalentes. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá definir automaticamente algumas variáveis de ambiente extra para compilar o 'qt-copy', que não são normalmente necessárias para o resto do &kde;. </para
></listitem>

<listitem
><para
>O 'qt-copy' também tem suporte para um conjunto de actualizações opcionais com algumas correcções de erros e optimizações que ainda não entraram no &Qt; oficial. Para as activar, configure a opção &apply-qt-patches; como <userinput
>true</userinput
>. Depois de fazer esta alteração, poderá ter de executar o <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
>qt-copy</option
></userinput
>. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-std-flags">
<title
>Opções normais adicionadas pelo &kdesvn-build;</title>
<para
>Para lhe poupar tempo, o &kdesvn-build; adiciona alguns locais normais ao seu ambiente, por si: </para>

<itemizedlist>
<listitem
><para
>O local das bibliotecas do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>LD_LIBRARY_PATH</envar
>. Isto significa que não irá necessitar de editar a &libpath; para os incluir. </para
></listitem>

<listitem
><para
>O local dos programas de suporte ao desenvolvimento do &kde; e do &Qt; é adicionado automaticamente à variável <envar
>PATH</envar
>. Isto significa que não irá necessitar de editar a &binpath; para os incluir. </para
></listitem>

<listitem
><para
>O local do <application
>pkg-config</application
> fornecido com o &kde; é adicionado automaticamente ao <envar
>PKG_CONFIG_PATH</envar
>. Isto significa que não terá de usar o &set-env; para os incluir. </para
></listitem>

<listitem
><para
>A configuração do &kdedir; é propagada automaticamente à variável de ambiente <envar
>KDEDIR</envar
> durante a compilação. (O <envar
>KDEDIRS</envar
> não é afectado). </para
></listitem>

<listitem
><para
>A configuração do &qtdir; é propagada automaticamente para a variável de ambiente <envar
>QTDIR</envar
> durante a compilação. </para
></listitem>

<listitem
><para
>O &kdesvn-build; irá ajustar automaticamente o ambiente, de acordo com as necessidades, para ter em conta a configuração da opção &use-unsermake;. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Mudar a prioridade de compilação do &kdesvn-build;.</title>
<para
>Os programas poder-se-ão executar com diferentes níveis de prioridades nos Sistemas Operativos dos dias de hoje, incluindo o &Linux; e o &BSD;. Isto permite ao sistema reservar tempo para os diferentes programas, de acordo com a sua importância. </para>

<para
>O &kdesvn-build; irá reservar uma prioridade baixa para si próprio, para que o resto dos programas do seu sistema não sejam afectados e possam executar normalmente. Com esta técnica, o &kdesvn-build; irá usar o CPU extra quando estiver disponível. </para>

<para
>O &kdesvn-build; irá manter à mesma uma prioridade suficientemente alta, para que se execute antes dos processos rotineiros e antes dos programas de doação de CPU, como o <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
>. </para>

<para
>Para alterar o &kdesvn-build;, de modo a usar um nível de prioridade maior ou menor de forma permanente, então terá de ajustar a opção &niceness; no &rcfile;. A opção &niceness; controla quão <quote
>simpático</quote
> é o &kdesvn-build; para os outros programas. Por outras palavras, se tiver um &niceness; maior, dará ao &kdesvn-build; uma prioridade menor. Como tal, para dar ao &kdesvn-build; uma maior prioridade, reduza o &niceness; (e vice-versa). O &niceness; pode ir de 0 (nada simpático, prioridade máxima) até 20 (super-simpático, prioridade mínima).</para>

<para
>Poderá também mudar temporariamente a prioridade do &kdesvn-build; ao usar a &cmd-line-option; &cmd-nice;. O valor da opção é usado da mesma forma que no &niceness;.</para>

<note
><para
>É possível a alguns programas executados pelo super-utilizador ter um valor de prioridade negativo, com uma prioridade de sistema corresponde ainda maior para alguns programas. A configuração de um valor negativo (ou mesmo 0) do &niceness; para o &kdesvn-build; não é uma boa ideia, dado que não irá melhorar muito o tempo de compilação, mas tornará o seu computador muito lento, se precisar de o usar à mesma. </para
></note>

<informalexample>
<para
>Para executar o &kdesvn-build; com uma prioridade igual a 15 (menor que o normal):</para>

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

<para
>Ou poderá editar o &rcfile; para tornar a mudança permanente:</para>

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

</informalexample>
</sect2>

<sect2 id="root-installation">
<title
>Instalação como super-utilizador</title>
<para
>Poderá ter o &kdesvn-build; a executar a instalação com privilégios de super-utilizador. Isto pode acontecer no caso da instalação a nível do sistema (não recomendada). Também é útil se usar uma instalação normal para um único utilizador, todavia. Isto acontece porque alguns módulos (especialmente o 'kdebase') instalam programas que, por breves instantes, irão necessitar de permissões elevadas ao serem executados. Eles não conseguirão obter esses níveis de permissões, a menos que tenham sido instalados com as permissões elevadas. </para>

<para
>Poderá simplesmente executar o &kdesvn-build; directamente como super-utilizador, dado que o programa não foi testado para esse tipo de utilização. Ainda que possa ser seguro executá-lo dessa forma, é melhor evitar executar este programa como super-utilizador, sempre que possível.</para>

<para
>Para tomar conta disto, o &kdesvn-build; oferece a opção &make-install-prefix;. Poderá usar esta opção para indicar um comando a usar para efectuar a instalação como outro utilizador. A forma recomendada de usar este comando é com o programa <application
>sudo</application
>, que irá então executar o comando de instalação como super-utilizador. </para>

<informalexample>
<para
>Por exemplo, para instalar todos os módulos com o <application
>sudo</application
>, poderá fazer algo do género:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Outras opções
end global
</screen>

<para
>Para usar o &make-install-prefix; apenas num módulo, isto irá funcionar: </para>

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

</sect2>

<sect2 id="build-progress">
<title
>Mostrar o progresso da compilação de um módulo.</title>
<para
>Esta funcionalidade está sempre disponível e está activada automaticamente, sempre que possível. O que isto faz é mostrar o progresso estimado da compilação ao compilar um módulo, para que saiba desta forma quanto tempo mais é que irá levar para compilar um módulo. </para>

<para
>Para usar esta funcionalidade, a opção &use-unsermake; deverá estar activa para o módulo. Esta opção está activada normalmente por omissão, se bem que alguns módulos não suportam a opção, pelo que são impedidos de usar o 'unsermake'. Como tal, se pensa que activou o 'unsermake' e não vê à mesma um relato do progresso de compilação do módulo, é possível que o módulo não suporte o 'unsermake'.</para>
</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Funcionalidades avançadas</title>

<sect2 id="partial-builds">
<title
>Compilar parcialmente um módulo</title>
<para
>É possível compilar apenas partes de um único módulo do &kde;. Por exemplo, pode querer compilar apenas um programa de um módulo. O &kdesvn-build; tem funcionalidades para simplificar isto. Existem várias formas complementares de o fazer. </para>

<sect3 id="checking-out-parts">
<title
>Extrair partes de um módulo</title>

<para
>Esta será talvez a melhor forma de o fazer. Quando funciona, poupar-lhe-á tempo de transferência e espaço em disco. O que acontece é que o &kdesvn-build; irá transferir apenas as partes do módulo que indicar. Isto é feito com a opção &checkout-only; para um dado módulo, que irá indicar uma lista das pastas a transferir. </para>

<tip
><para
>Se não souber já o que vai transferir de um dado módulo, poderá ser uma boa ideia navegar pela disposição no Subversion para um módulo, em primeiro lugar, usando o <ulink url="http://websvn.kde.org/branches/KDE/3.5/"
>WebSVN</ulink
>. </para
></tip>

<informalexample>
<para
>Para obter apenas o &kuser; e o &kdat; do 'kdeadmin', poderá usar o &checkout-only; da seguinte forma:</para>

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

</informalexample>

<important
><para
>As pastas serão compiladas pela ordem que forem indicadas na opção. Se uma das pastas necessitar de algo do módulo para compilar, então terá de garantir que ambas se encontram na linha &checkout-only; e que a dependência necessária vai antes da pasta que necessita dela.</para>

<para
>Da mesma forma, algumas vezes uma aplicação poderá necessitar de outras pastas e isso ser difícil de descobrir; nesse caso poderá ser razão para tentativa e erro, adicionando constantemente pastas à opção para descobrir.</para>
</important>

<para
>Uma nota final sobre esta opção: Se alterar esta opção deverá usar o <userinput
><command
>kdesvn-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
> para garantir que o módulo é configurado de novo convenientemente. Para além disso, o &kdesvn-build; nunca irá remover os ficheiros existentes, se retirar o número de pastas da sua opção &checkout-only; ou adicionar a opção a um módulo que já foi extraído.</para>

</sect3>

<sect3 id="not-compiling">
<title
>Remover pastas de uma compilação</title>
<para
>Em vez de restringir o que é obtido, é possível transferir tudo mas fazer com que o sistema de compilação deixe algumas pastas por compilar. Isto pode ser útil se uma pasta estiver sempre a invalidar a compilação e for desnecessária para o resto do módulo. </para>

<para
>Isto é controlado com a opção &do-not-compile;. Funciona de forma semelhante à opção &checkout-only; descrita acima, e é apenas uma lista das pastas que não deverão ser compiladas.</para>

<important
><para
>Da mesma forma que no &checkout-only;, esta opção necessita pelo menos que o programa <command
>configure</command
> seja executado de novo para o módulo, após a alteração. Isto é feito com o comando <userinput
><command
>kdesvn-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>Para remover a pasta 'dcoppython' do processo de compilação do 'kdebindings':</para>

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

</sect3>

<sect3 id="limiting-using-inst-apps">
<title
>Compilar algumas pastas de um módulo completo</title>

<para
>Poderá usar o &inst-apps; para indicar que apenas algumas pastas de um módulo completo serão instaladas (embora seja extraído o módulo inteiro). </para>

<para
>Esta opção funciona como uma combinação do &checkout-only; e do &do-not-compile;: ela transfere o módulo inteiro, como o &do-not-compile;, mas compila apenas as pastas que indicar, como o &checkout-only;. Como tal, é normalmente melhor usar simplesmente o &checkout-only;. </para>

<para
>As mesmas mensagens aplicam-se como nas outras duas opções, pelo que terá de configurar de novo o módulo, se alterar o valor do &inst-apps;. </para>
</sect3>

</sect2>

<sect2 id="using-unsermake">
<title
>Usar o &unsermake;</title>

<para
>O <application
>unsermake</application
> é uma aplicação desenhada para se associar ao sistema de compilação do KDE e melhorar o processo de compilação, substituindo algumas ferramentas usadas normalmente (incluindo o <application
>automake</application
> e o <application
>make</application
>). É especialmente útil para aqueles que efectuam compilações distribuídas, dado que é muito mais rápido que o processo normal de compilação nesta situação. Contudo, mesmo para a compilação num único computador, o 'unsermake' é mais rápido que a concorrência. </para>

<para
>Para além disso, o 'unsermake' inclui o suporte para estimar o progresso do procedimento de compilação actual. O &kdesvn-build; tira partido disso para oferece uma indicação do progresso da compilação durante o processo. Veja também o <xref linkend="build-progress"/>. </para>

<para
>O &kdesvn-build; oferece o suporte para usar o <application
>unsermake</application
> automaticamente. O &kdesvn-build; irá usar o <application
>unsermake</application
> por omissão, quando for possível usá-lo num determinado módulo. </para>

<informalexample>
<para
>Para desactivar o suporte do <application
>unsermake</application
> em todos os módulos, faça o seguinte:</para>

<screen
>global
  use-unsermake false
end global
</screen>

<para
>Para activar o <application
>unsermake</application
> para um único módulo, mesmo que esteja desactivado a nível global, faça o seguinte:</para>

<screen
>module <replaceable
>nome-módulo</replaceable>
  use-unsermake true

  # as outras opções vão para aqui...
end module
</screen>
</informalexample>

<note
><para
>O &kdesvn-build; irá actualizar automaticamente ou extrair o <application
>unsermake</application
>, enquanto efectua as outras actualizações. Se optar por gerir você mesmo o <application
>unsermake</application
>, então é possível fazê-lo você mesmo, configurando o valor do &use-unsermake; como <symbol
>self</symbol
>, em vez de <symbol
>true</symbol
>.</para>

<para
>Quando isso terminar, o &kdesvn-build; irá tentar à mesma usar o <application
>unsermake</application
>, mas não irá efectuar as actualizações. Poderá tanto alterar o &binpath; para apontar para a pasta correcta do 'unsermake', como extrair e actualizar você mesmo o <application
>unsermake</application
> no seu módulo (actualmente em kdenonbeta/unsermake). </para
></note>

</sect2>

<sect2 id="using-branches">
<title
>Suporte de marcas e ramificações do &kdesvn-build;</title>

<sect3 id="branches-and-tags">
<title
>O que são ramificações e marcas?</title>

<para
>O &svn; suporta a gestão do histórico do código do &kde;. O &kde; usa esse suporte para criar ramificações ('branches') para desenvolvimento e para marcar o repositório com marcas ('tags'), sempre que lança uma nova versão. </para>

<para
>Por exemplo, os programadores do &kmail; poderão estar a trabalhar numa nova funcionalidade, numa ramificação diferente, para evitar corromper a versão que está em uso pela maioria dos programadores. Esta ramificação tem desenvolvimentos em curso nela, mesmo quando a ramificação principal (chamada de /trunk) possa também ter desenvolvimentos em curso nela. </para>

<para
>Uma marca, por outro lado, é uma imagem do repositório de código numa dada posição no tempo. Isto é usado pela equipa de administração do &kde; para marcar uma versão do código adequada para lançamento, permitindo à mesma aos programadores continuarem a desenvolver. </para>

<para
>No &svn;, não existem diferenças entre ramificações, marcas ou o 'trunk' no código. É apenas uma convenção usada pelos programadores. Isso torna difícil suportar convenientemente as ramificações e marcas no &kdesvn-build;. Contudo, existem algumas coisas que poderão ser feitas. </para>

</sect3>

<sect3 id="branch-support">
<title
>Como usar as ramificações e marcas</title>

<para
>O suporte para ramificações e marcas é tratado por um conjunto de opções, que vão desde um simples pedido de uma versão até um URL específico de transferência, para os utilizadores mais avançados. </para>

<para
>O método mais simples é usar as opções &branch; e &tag;. Poderá usar a opção em conjunto com o nome da marca ou ramificação de um módulo, para que o &kdesvn-build; determine o local apropriado, dentro do repositório do &kde;, de onde deve transferir. Na maioria dos módulos do &kde;, isto funciona muito bem.</para>

<informalexample>
<para
>Para transferir o 'kdelibs' do &kde; 3.5 (que é simplesmente conhecido pela ramificação '3.5'): </para>

<screen
>module kdelibs
  branch <replaceable
>3.5</replaceable>
  # outras opções...
end module
</screen>

<para
>Ou, para transferir o 'kdemultimedia' como foi lançado aquando do &kde; 3.4.3:</para>

<screen
>module kdemultimedia
  tag <replaceable
>3.4.3</replaceable>
  # outras opções...
end module
</screen>

</informalexample>

<tip
><para
>Poderá definir aqui um valor global para o 'branch'. Mas, se o fizer, não se esqueça de indicar uma ramificação diferente para os módulos que não devem usar a ramificação global! </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Opções avançadas de suporte a ramificações</title>

<para
>O &kdesvn-build; suporta duas opções para as situações em que o &branch; e o &tag; adivinham o local de forma incorrecta: o &module-base-path; e o &override-url; </para>

<itemizedlist>
<listitem
><para
>O 'module-base-path' é usado para ajudar o &kdesvn-build; a preencher a parte em falta da localização de um módulo. No repositório do &kde;, todos os locais têm o formato raizSvn/module-base-path/nome-módulo. Normalmente, o &kdesvn-build; pode descobrir a parte intermédia apropriada por si só. Quando não conseguir, poderá usar o 'module-base-path' da seguinte forma: </para>

<informalexample>
<screen
>module qt-copy
  # a ramificação não funciona aqui ainda
  module-base-path branches/qt/3.3
end module
</screen>

<para
>Isto deverá fazer com que o &kdesvn-build; transfira o 'qt-copy' de (neste exemplo) svn://anonsvn.kde.org/home/kde/<replaceable
>branches/qt/3.3</replaceable
>/qt-copy </para>
</informalexample>
</listitem>

<listitem
><para
>A opção 'override-url', por outro lado, necessita que você indique o local exacto de onde transferir. Contudo, isto permite-lhe transferir dos locais onde o &kdesvn-build; não terá hipóteses de adivinhar o local. </para>

<informalexample>
<screen
>module qt-copy
  # Indique o local exacto de onde obter.
  override-url svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy
end module
</screen>
</informalexample>

<important
><para
>O &kdesvn-build; não irá mexer ou corrigir o valor que indicar no 'override-url' de todo, por isso, se mudar a sua configuração do &svn-server;, também terá de actualizar isto. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Como o &kdesvn-build; tenta garantir uma compilação com sucesso.</title>

<sect3 id="automatic-rebuilds">
<title
>Recompilações automáticas</title>

<para
>Devido a várias questões com o sistema de compilação do &kde;, algumas das quais são mitigadas ao usar o 'unsermake', o &kdesvn-build; irá efectuar automaticamente uma série de passos para tentar automaticamente obter um módulo para compilar quando falhar.</para>

<orderedlist>
<listitem
><para
>Na primeira tentativa falhada, o &kdesvn-build; irá simplesmente executar de novo o <command
>make</command
>. Acredite ou não, mas isto de vez em quando funciona, de facto, e é rápido a falhar se não funcionar de todo. </para
></listitem>

<listitem
><para
>Em caso de segunda falha, o &kdesvn-build; irá tentar configurar de novo o módulo e compilá-lo outra vez. Isto normalmente apanha situações em que um ficheiro do sistema de compilações, que necessita de ser configurado de novo, mas o sistema de compilação não efectuou esse passo automaticamente. </para>

<para
>A pasta de compilação do módulo é deixada intacta nesse passo, excepto no caso de nova configuração; essa situação irá também falhar depressa se a compilação não puder ser efectuada. </para>
</listitem>

<listitem
><para
>Se o módulo continuar a não compilar, o &kdesvn-build; irá desistir e passar ao próximo módulo. Todavia, existem ainda algumas coisas que poderá fazer para <link linkend="manual-rebuilds"
>tentar fazer o módulo compilar manualmente</link
>. </para
></listitem>
</orderedlist>

<note
><para
>O &kdesvn-build; irá detectar a maioria dos casos onde o sistema de compilação precisa de ser configurado de novo, tentando nesse caso executar o 'configure' de novo. </para>

<para
>Da mesma forma, se o &kdesvn-build; estiver a compilar o módulo pela primeira vez, todos esses passos são ignorados, dado que a nova compilação do zero não irá falhar normalmente, excepto no caso de um erro verdadeiro.</para>
</note>
</sect3>

<sect3 id="manual-rebuilds">
<title
>Compilar manualmente um módulo de novo</title>
<para
>Se tiver feito alterações a alguma opção de um módulo, ou se o código-fonte do módulo mudar de uma forma que o &kdesvn-build; não reconheça, poderá ter de compilar o módulo de novo manualmente.</para>

<para
>Podê-lo-á fazer se executar simplesmente o <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>módulo</replaceable
></option
></userinput
> </para>

<para
>Se quiser que o &kdesvn-build; compile de novo de forma automática o módulo, durante a próxima actualização normal, poderá criar um ficheiro especial. Cada módulo tem uma pasta de compilação. Se criar um ficheiro chamado <filename
>.refresh-me</filename
> na pasta de compilação de um módulo, o &kdesvn-build; irá reconstruir o módulo da próxima vez que o processo de compilação correr, mesmo que fosse executar normalmente a compilação incremental.</para>

<tip>
<para
>Por omissão, a pasta de compilação é a <filename
>~/kdesvn/build/<replaceable
>módulo</replaceable
>/</filename
>. Se mudar a opção &build-dir;, então use essa em vez da <filename
>~/kdesvn/build</filename
>.</para>
</tip>

<informalexample>
<para
>Compile de novo com o <filename
>.refresh-me</filename
> para o módulo <replaceable
>arts</replaceable
></para>
<screen
><prompt
>%</prompt
> <userinput
><command
>touch</command
> <filename
>~/kdesvn/build/<replaceable
>arts</replaceable
></filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

<sect3 id="controlling-rebuild-behavior">
<title
>Controlar o comportamento da compilação</title>
<para
>Poderá não querer que o &kdesvn-build; tente sempre reconstruir um módulo. Poderá desactivar, a título permanente esse comportamento, alterando a opção &no-rebuild-on-fail; para o valor <userinput
>true</userinput
>.</para>

<para
>Poderá desactivar temporariamente este comportamento (para um comando) se usar a opção &cmd-no-rebuild-on-fail; da linha de comandos.</para>

<informalexample>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--no-rebuild-on-fail</option
></userinput
>
</screen>
</informalexample>

</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Mudar a configuração das variáveis de ambiente.</title>
<para
>O &kdesvn-build; não lê o ambiente de quem o chama, como a maior parte dos programas. Em vez disso, usa a configuração que lê do &rcfile; para construir o ambiente. Isto é feito principalmente para garantir que, quando compilar um módulo, a compilação pode ser repetida. Por outras palavras, o &kdesvn-build; poderá compilar um módulo, mesmo que se tenha esquecido como é que configurou as suas variáveis de ambiente na linha de comandos onde executou o &kdesvn-build;.</para>

<para
>Contudo, poderá querer alterar a configuração das variáveis de ambiente para as quais o &kdesvn-build; não tem uma opção directa. Isto é possível com a opção &set-env;.</para>

<para
>Ao contrário da maioria das opções, poderá ser definida mais que uma vez e aceita dois itens separados por um espaço. O primeiro item é o nome da variável de ambiente a definir e o resto da linha é o valor.</para>

<informalexample>
<para
>Configurar o DISTRO=BSD para todos os módulos:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global  
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Prosseguir com as compilações</title>

<sect3 id="resuming-failed">
<title
>Prosseguir uma compilação falhada ou cancelada</title>

<para
>Poderá indicar ao &kdesvn-build; para começar a compilar a partir de um módulo diferente do que onde iria prosseguir. Isto poderá ser útil quando falhou um conjunto de módulos ou se tiver cancelado a execução de uma compilação a meio. Poderá controlar isto com a opção &cmd-resume-from;.</para>

<note
><para
>Se usar o &cmd-resume-from;, irá saltar por cima da actualização do código-fonte.</para>
</note>

<informalexample>
<para
>Prosseguir a compilação a começar no 'kdebase'.</para>

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

</sect3>

<sect3 id="ignoring-modules">
<title
>Ignorar os módulos numa compilação</title>

<para
>Como acontece quando deseja <link linkend="resuming-failed"
>prosseguir com a compilação de um módulo</link
>, poderá optar em alternativa por actualizar e compilar tudo normalmente, só que ignorando um conjunto de módulos.</para>

<para
>Poderá fazer isso com a opção &cmd-ignore-modules;. Esta opção diz ao &kdesvn-build; para ignorar todos os restantes módulos da linha de comandos, ao efectuar a actualização e a compilação.</para>

<informalexample>
<para
>Ignorar o extragear/multimedia e o kdenonbeta numa execução completa.</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdenonbeta</replaceable
></userinput
>
</screen>
</informalexample>

</sect3>
</sect2>

<sect2 id="changing-env-from-cmd-line">
<title
>Mudar as opções na linha de comandos</title>

<sect3 id="changing-global-opts">
<title
>Modificar as opções globais</title>
<para
>Poderá alterar a configuração das opções lidas do &rcfile; directamente a partir da linha de comandos. Esta alteração irá substituir a configuração do ficheiro, mas é apenas temporária. Só fará efeito enquanto estiver à mesma presente na linha de comandos.</para>

<para
>O &kdesvn-build; permite-lhe alterar as opções com nome do tipo <replaceable
>nome-opção</replaceable
> se passar um argumento na linha de comandos com o formato <option
>--<replaceable
>nome-opção</replaceable
>=valor</option
>. O &kdesvn-build; irá reconhecer se não souber qual a opção, e irá procurar o nome na sua lista de nomes de opções. Se não reconhecer o nome, avisá-lo-á, caso contrário irá recordar o valor que definir e substituir o valor do ficheiro de configuração.</para>

<informalexample>
<para
>Configurar o &source-dir; como <filename
>/dev/null</filename
> para fins de teste.</para>

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

<para
>Desactivar o 'unsermake' na linha de comandos. O --refresh-build é usado para que as modificações no 'unsermake' façam efeito.</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--pretend</option
> <option
>--refresh-build</option
> <option
>--<replaceable
>use-unsermake</replaceable
>=<replaceable
>false</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

<sect3 id="changing-module-opts">
<title
>Mudar as opções do módulo</title>
<para
>Também é possível mudar as opções apenas para um módulo específico. A sintaxe é semelhante: --<replaceable
>módulo</replaceable
>,<replaceable
>nome-opção</replaceable
>=<replaceable
>valor</replaceable
>. </para>

<para
>Esta alteração substitui qualquer opção duplicada do módulo encontrado no &rcfile; e só se aplica enquanto a opção for passada na linha de comandos.</para>

<informalexample>
<para
>Usar uma pasta de compilação diferente para o módulo 'kdeedu':</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-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
>Funcionalidades para os programadores do &kde;</title>

<sect2 id="building-apidox">
<title
>Criar a Documentação da API</title>
<para
>O &kdesvn-build; poderá instalar automaticamente a documentação adicional gerada a partir do código num módulo. Isto só funciona para alguns módulos e só é útil para os programadores do &kde;.</para>

<important>
<para
>Esta funcionalidade não funciona para os módulos compilados com o sistema de compilação <link linkend="using-unsermake"
>unsermake</link
>. Dado que este é o sistema de compilação por omissão para os módulos que o podem usar, teria de desactivar o suporte para o 'unsermake'. Veja o <link linkend="example-apidox"
>exemplo abaixo</link
> para mais informações. </para>
</important>

<para
>Para activar isto, basta definir a opção &apidox; como 'true' no &rcfile;, no caso do módulo onde deseja a documentação. Nem todos os módulos têm documentação. Os módulos que a incluem são o 'kdelibs', o 'kdebase' e o 'kdepim'. </para>

<note>
<para
>Se tiver acesso à Internet, a documentação da API do &kde; também está disponível 'online'. No Konqueror, pode usar o atalho <quote
>kde:<replaceable
>NomeClasse</replaceable
></quote
>. </para>

<para
>Poderá também visitar a página Web da documentação do &kde; na <ulink url="http://www.englishbreakfastnetwork.org/apidocs/"
>English Breakfast Network</ulink
>. </para>

<para
>Finalmente, é possível obter a documentação sob a forma de um pacote, do <ulink url="http://developer.kde.org/documentation/library/libraryref.php"
>&kde; Developer's Corner</ulink
>. Carregue na versão do &kde; que deseja documentada e poderá então obter uma cópia para uso pessoal do módulo que deseja. </para>
</note>

<informalexample id="example-apidox">
<para
>Instalar a Documentação da API do kdelibs.</para>

<screen
>module kdelibs
  use-unsermake false    # o unsermake não consegue criar a apidox
  apidox        true     # criar e instalar a apidox
end module
</screen>
</informalexample>

</sect2>

<sect2 id="ssh-agent-reminder">
<title
>Verificações do Agente do SSH</title>
<para
>O &kdesvn-build; poderá garantir que os programadores do &kde; que usem o &ssh; para aceder ao repositório de código do &kde; não se esqueçam acidentalmente da ferramenta &ssh;-Agent ligada. Isto poderá fazer com que o &kdesvn-build; fique eternamente à espera que o programador indique a sua senha de <acronym
>SSH</acronym
>, por isso e por omissão, o &kdesvn-build; irá verificar se o Agente está a correr antes de efectuar as actualizações do código. </para>

<note
><para
>Isto só é feito para os programadores do &kde; que usam o &ssh;. Isto acontece porque não é necessária qualquer senha para a actualização e extracção de código anónima do repositório. O &svn; irá lidar com as senhas para o segundo protocolo possível dos programadores do KDE, o HTTPS. </para
></note>

<para
>Poderá querer desactivar a verificação do Agente do &ssh;, no caso das situações em que o &kdesvn-build; não detecte bem a presença de um agente. Para desactivar a verificação do agente, configure a opção <option
>disable-agent-check</option
> como <userinput
>true</userinput
>.</para>

<informalexample>
<para
>Desactivar a verificação do agente do &ssh;</para>
<screen
>global
  disable-agent-check <userinput
><replaceable
>true</replaceable
></userinput>
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Outras funcionalidades do &kdesvn-build;</title>

<sect2 id="changing-verbosity">
<title
>Mudar a quantidade de mensagens do resultado do &kdesvn-build;</title>
<para
>O &kdesvn-build; tem várias opções para controlar a quantidade de dados à saída que o programa gera. Em qualquer caso, os erros serão sempre apresentados.</para>

<itemizedlist>
<listitem
><para
>A opção <option
>--quiet</option
> (o seu formato curto é o <option
>-q</option
>) faz com que o &kdesvn-build; seja maioritariamente silencioso. Só as mensagens importantes, avisos ou erros serão apresentados. Quando estiver disponível, a informação de progresso é à mesma apresentada.</para
></listitem>

<listitem
><para
>A opção <option
>--really-quiet</option
> (sem formato curto) faz com que o &kdesvn-build; mostre apenas os avisos importantes ou os erros, enquanto estiver em execução.</para
></listitem>

<listitem
><para
>A opção <option
>--verbose</option
> (o formato curto é o <option
>-v</option
>) faz com que o &kdesvn-build; seja muito detalhado nos seus resultados.</para
></listitem>

<listitem
><para
>A opção <option
>--debug</option
> serve apenas para fins de depuração, dado que faz com que o &kdesvn-build; actue como se o <option
>--verbose</option
> estivesse activo, fazendo com que os comandos sejam também apresentados no terminal e mostrando a informação de depuração para várias funções.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-color">
<title
>Resultado a cores</title>
<para
>Ao ser executado a partir do &konsole; ou de um terminal diferente, o &kdesvn-build; irá mostrar normalmente o texto a cores.</para>

<para
>Poderá desactivar isto com a opção <option
>--no-color</option
> na linha de comandos ou configurando a opção &colorful-output; no &rcfile; como <userinput
>false</userinput
>. </para>

<informalexample>
<para
>Desactivar as mensagens a cores no ficheiro de configuração</para>
<screen
>global
  colorful-output <userinput
><replaceable
>false</replaceable
></userinput>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="email-reports">
<title
>Envio por e-mail dos relatórios de erros da compilação</title>
<para
>O &kdesvn-build; poderá enviar um relatório por e-mail para um determinado endereço à sua escola, quando um módulo não conseguir compilar por alguma razão. A forma como funciona é através da indicação de um endereço de e-mail de onde o &kdesvn-build; irá enviar os dados e um endereço de e-mail para notificar quando ocorrer algum erro.</para>

<para
>O &kdesvn-build; irá então, no fim de uma execução completa, construir uma mensagem de e-mail se existirem alguns módulos que não conseguiram ser compilados. O e-mail irá conter um registo de erros abreviado para cada módulo. Só é enviada uma mensagem de e-mail para uma dada execução, mesmo que falhe a compilação de 15 módulos. </para>

<para
>Esta funcionalidade não está activada por omissão. Para a activar, terá de definir tanto as opções &email-address; e &email-on-compile-error;. O <option
>email-address</option
> controla o endereço de onde o &kdesvn-build; envia os dados e o <option
>email-on-compile-error</option
> controla para onde enviar a mensagem. </para>

<tip>
<para
>O &kdesvn-build; usa o módulo-padrão do Perl Mail::Mailer para enviar a mensagem. Vem incluído com o Perl 5.8 e é instalável com o Perl 5.6. O Mail::Mailer suporta o <application
>Sendmail</application
> (incluindo os cliente de e-mail compatíveis com o <application
>Sendmail</application
>), o transporte de <acronym
>SMTP</acronym
> nativo e o <application
>qmail</application
> </para>
</tip>

<informalexample>
<para
>Enviar um e-mail de xpto-envio@exemplo.com to xpto-recepcao@exemplo.com em caso de erro na compilação.</para>

<screen
>global
  email-address          xpto-envio@exemplo.com    # O endereço De: para qualquer e-mail do kdesvn-build
  email-on-compile-error xpto-recepcao@exemplo.com    # O endereço Para: do e-mail de erros da compilação
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Remover as pastas desnecessárias após uma compilação</title>
<para
>Está com falta de espaço em disco mas deseja à mesma fazer uma extracção actualizada do &kde;? O &kdesvn-build; poderá ajudar a reduzir a sua utilização do disco ao compilar o &kde; a partir do &svn;.</para>

<note
><para
>Tenha em atenção que a compilação do &kde; ocupa bastante espaço. Existem bastantes componentes grandes em termos de espaço ao usar o &kdesvn-build;:</para
></note>

<orderedlist>
<listitem
><para
>A extracção de código actual poderá levar bastante espaço. Os módulos por omissão levam cerca de 1,6 gigabytes de espaço em disco. Poderá reduzir esta quantidade, se garantir que só vai compilar os módulos que deseja de facto. O &kdesvn-build; não irá remover o código-fonte do disco, mesmo que remova o item do &rcfile;, como tal garanta que são apagados os módulos extraídos e não usados da pasta de código. Lembre-se que os ficheiros de código são obtidos da Internet, pelo que <emphasis
>não deverá</emphasis
> removê-los se for usar estes ficheiros de facto, pelo menos até acabar de usar o &kdesvn-build;.</para>

<para
>Da mesma forma, se já tiver um &Qt; instalado pela sua distribuição (e é bastante possível que isso aconteça), provavelmente não irá necessitar de instalar o módulo 'qt-copy'. Isso irá poupar cerca de 200 MB do código no disco.</para>

<para
>Uma coisa a reparar é que, devido à forma como o &svn; funciona, existem de facto dois ficheiros no disco para cada ficheiro extraído do repositório. O &kdesvn-build; não tem código neste ponto para tentar minimizar o tamanho do código, quando este não estiver a ser usado. </para>
</listitem>

<listitem>
<para
>O &kdesvn-build; irá criar uma pasta de compilação separada, para onde irá compilar o código-fonte. Algumas vezes o &kdesvn-build; terá de copiar uma pasta de código para criar uma pasta de compilação falsa. Quando isso acontecer, são usadas as ligações simbólicas, caracterizadas por poupar espaço, como tal isso não deverá ser um problema a nível de espaço em disco. A pasta de compilação será tipicamente muito maior que a pasta de código de um módulo. Por exemplo, a pasta de compilação do 'kdebase' ocupa cerca de 455 megabytes, enquanto o código do 'kdebase' ocupa apenas cerca de 195 megabytes.</para>

<para
>Felizmente, a pasta de compilação não é necessária após um módulo ter sido compilado e instalado com sucesso. O &kdesvn-build; poderá remover automaticamente a pasta de compilação após a instalação de um módulo; veja os exemplos abaixo para mais informações. Lembre-se que a utilização deste passo tornará impossível ao &kdesvn-build; efectuar as compilações incrementais que poupam tempo.</para>
</listitem>

<listitem
><para
>Finalmente, existe espaço em disco necessário para a própria instalação do &kde;, que não executa a partir da pasta de compilação. Este espaço é normalmente menor que o da pasta de compilação. É mais difícil ter os valores exactos, de qualquer forma. </para
></listitem>
</orderedlist>

<para
>Como é que reduz os requisitos de espaço do &kde;? Uma forma é usar as opções de compilação adequadas, para optimizar a redução de espaço em vez da velocidade. Outra forma, que poderá fazer bastante efeito, é remover a informação de depuração da sua compilação do &kde;. </para>

<warning
><para
>Deverá ter mesmo a certeza que sabe o que faz, antes de decidir remover a informação de depuração. A execução de aplicações demasiado actuais significa que está a correr programas que, potencialmente, poderão ter tendência a estoirar, algo que não acontece numa versão estável. Se estiver a executar 'software' sem informações de depuração, poderá ser bastante difícil criar um bom relatório de erros para que o seu erro seja resolvido; como tal, é possível que tenha de activar de novo a informação de depuração da aplicação afectada e compilá-la de novo para ajudar um programador a resolver o estoiro. Como tal, remova a informação de depuração por sua conta e risco! </para
></warning>

<informalexample>
<para
>A remoção da pasta de compilação, após a instalação de um módulo. A pasta do código é mantida à mesma e a depuração fica activa.</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>

<para
>A remoção da pasta de compilação após a instalação, sem informações de depuração e com optimizações do tamanho.</para>

<screen
>global
  cxxflags             -Os             # Optimizar o tamanho
  configure-flags      --disable-debug
  remove-after-install builddir        # Remover a pasta de compilação após a instalação
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>CMake, o sistema de compilação do KDE 4.</title>

<sect1 id="kde-cmake-intro">
<title
>Introdução ao CMake</title>

<para
>Em Março de 2006, o programa <ulink url="http://www.cmake.org/"
><application
>CMake</application
></ulink
> ultrapassou os vários adversários e foi seleccionado para ser o sistema de compilação do &kde; 4, substituindo o sistema baseado nas 'autotools' que o &kde; tem usado desde o início.</para>

<para
>Está disponível uma página de introdução ao CMake no <ulink url="http://wiki.kde.org/tiki-index.php?page=KDECMakeIntro"
>Wiki do KDE</ulink
>. Basicamente, em vez de correr 'make -f Makefile.cvs', depois o 'configure', depois o 'unsermake' (ou o 'make'), basta simplesmente correr o 'cmake' e depois o 'make'. </para>

<para
>O &kdesvn-build; tem um suporte inicial para o CMake. Algumas funcionalidades do &kdesvn-build; são realmente funcionalidades do sistema de compilação subjacente, incluindo o <link linkend="conf-inst-apps"
>inst-apps</link
>, o <link linkend="conf-configure-flags"
>configure-flags</link
> e o <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Quando estiverem disponíveis funcionalidades equivalentes, serão disponibilizadas. Por exemplo, a equivalente da opção 'configure-flags' é a <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>

<para
>Contudo, algumas opções, como a 'inst-apps' ou a 'do-not-compile', não têm equivalente directo e, deste modo, estão desactivadas. Quando se arranjar uma forma de as implementar com o CMake, tal será feito e estas opções então voltarão a ser activadas. Contudo, de resto funciona quase tudo da mesma forma.</para>

<para
>Nem todo o KDE foi alterado para usar o CMake nesta altura. Por exemplo, a opção <link linkend="conf-apidox"
>apidox</link
> é relativamente inútil, até que a infra-estrutura equivalente esteja terminada. Tentou-se avisar esses factos, mas nem todas as deficiências poderão ser tratadas pelo &kdesvn-build; por agora.</para>

</sect1>
</chapter>

<chapter id="credits-and-licenses">
<title
>Créditos e Licenças</title>
&underFDL; </chapter>

</book>
