# Installering af &tdevelop;

Her finder du alle skridt som behøves for at kompilere og installere det integrerede udviklingsmiljø &tdevelop;:

- Hvordan man får fat på &tdevelop; koncentrerer sig om hvordan man henter den seneste kildekode for &tdevelop; fra svn.

- Krav for &tdevelop; giver en liste af programmer og biblioteker som du skal have installerede for at det skal lykkes at kompilere det integrerede udviklingsmiljø.

- Kompilering og installation af &tdevelop; leder dig gennem alle skridt for kompilering og installation af programmet.

- Hvordan man får fat på dokumentation af programmeringsgrænsefladen for &tdevelop; fortæller hvad en programmeringsgrænseflade er og hvordan du får fat på et så nyttigt værktøj for navigering i kildekoden for &tdevelop;.

## Hvordan man får fat på &tdevelop;

&tdevelop; er tilgængelig i binær form fra mange forskellige &Linux;-distributioner såsom SuSE, RedHat med flere. De binære filer er pakkede på en bekvem måde, oftest RPM, for nemt at kunne installeres. Følg standardinstruktionerne som gives i distributionen for at installere.

Du kan også få fat på kildekoden for &tdevelop;, kompilere og installere den selv. Kildekoden findes via projektets hjemmeside på http://www.kdevelop.org eller via &kde;'s FTP-sted.

### Hente dagsfriske udgaver af &tdevelop; fra svn

Hvis du vil tage del i nuværende udvikling, er versioner fra det anonyme SVN-arkiv tilgængelige.

Modulnavnet er tdevelop med `svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop`.

#### Oprindelig udtjekning fra svn

For at få en oprindelig udgave af &tdevelop; skal du hente den fra anonym svn. For denne såkaldte udtjekningshandling følges skridtene nedenfor.

Vi antager vi at du ønsker at placere din kopi af &tdevelop; i mappen `/kde3src/tdevelop` undermappen af din hjemmemappe(`~`).

- # Opret målmappen om nødvendigt:
- `~>` `mkdir kde3src`
- `~>` `cd kde3src`
- `~/kde3src>` `svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop`
- `~/kde3src>` `cd tdevelop`

Når du er lykkedes at tjekke din version af &tdevelop; ud, kan du følge med i ændringerne ved at bruge opdateringsproceduren som vises i næste afsnit.

Hold serverbelastningen lav. Vær venlig ikke at tjekke ud hver gang du vil have en ny version af &tdevelop; Brug svn update til dette formål.

Nu kan du kompilere din version af &tdevelop; som vist i kapitlet Kompilering og installation af &tdevelop;.

#### Hold din kopi af svn opdateret

Efter du har tjekket &tdevelop; ud fra svn som vist ovenfor (og det er lykkedes at kompilere den), vil du holde den aktuel for at få alle programrettelser med. Følg så skridtene nedenfor. (Vi antager igen at du har placeret din kopi af &tdevelop; i mappen `kde3src`.)

Bemærk kommandoen `up` (= update) i stedet for `co` (hvilket betyder checkout).

- `~>` `cd kde3src`
- `~/kde3src>` `cd tdevelop`
- `~/kde3src>` `svn up`

Hold øje med meddelelserne som svn viser under opdateringssekvensen. De nøjagtige skridt i kompileringssekvensen afhænger af dem.

Nu kan du kompilere en ny version af &tdevelop; som vist i kapitlet Særlige hensyn ved kompilering fra svn.

## Krav for &tdevelop;

For at det skal lykkes at kompilere og bruge &tdevelop;, behøver du følgende programmer og biblioteker. De er tilgængelige på de fleste platforme som distributionspakke, og kan derved let installeres.

## Krævet

- gcc/g++ ≥ 2.95.3 (eller tilsvarende)

  Tilgængelig fra gcc.gnu.org

- &GNU; make (eller tilsvarende)

  Tilgængelig fra www.gnu.org/software/make

- &perl; 5.004 (eller nyere)

  Tilgængelig fra www.perl.com

- autoconf ≥ 2.52 (eller nyere)

  Tilgængelig fra www.gnu.org/software/autoconf

- automake ≥ 1.6 (eller nyerer)

  Tilgængelig fra www.gnu.org/software/automake

- flex 2.5.4 (eller nyere)

  Tilgængelig fra www.gnu.org/software/flex

- &Qt; ≥ 3.3.0 (eller nyere)

  Tilgængelig fra www.trolltech.com/products/qt

- KDE ≥ 3.4.0 (eller nyere)

  Tilgængelig fra www.kde.org

## Valgfrit:

- Værktøjet ctags til kildekodenavigering, fra http://ctags.sourceforge.net, som giver dig hurtig adgang til deklarationer og definitioner med nogle få enkle klik på et navn i editoren.

- Oversætteren dot for grafiksprog, fra http:/www.graphviz.org. Værktøjet behøves sammen med &doxygen; nedenfor, hvis du vil vise klasseforholdene grafisk (hvilket stærkt anbefales).

- Dokumentationsværktøjet &doxygen;, fra http://www.doxygen.org, hvis du vil lave koncis og kraftfuld dokumentation af programmeringsgrænsefladen for dine projekter.

- Valgrind fra http://developer.kde.org/~sewardj/ hjælper dig med at finde hukommelseshåndteringsproblemer i dine programmer.

- SVN fra http://subversion.tigris.org/, hvis du vil bruge versionshåndteringssystemet SVN.

- Eventuelt andre oversættere og/eller værktøjer hvis du vil udvikle for et andet sprog eller platform end C++/&kde;, eller bruge en anden specialfunktion.

1. Du kan i et vist omfang omgå behovet for &autoconf; ≥ 2.52 og &automake; ≥ 1.6. Fjern blot mappen `admin` i installationsmappen for &tdevelop;, og skriv:

   - `(din tdevelop-mappe)>` `ln -s $TDEDIR/share/apps/tdelibs/admin admin`

   i terminalen. Det gør at &tdevelop; bruger standardindstillingerne i &kde;'s `admin`-mappe i stedet.

2. Vær forsigtig så du ikke blander forskellige versioner af &Qt;. Link altid &tdevelop; med samme version af &Qt; som &kde;-biblioteket kompileredes med. Ellers vil du formodentlig komme ud for meget mærkelig opførsel.

## Kompilering og installation af &tdevelop;

Når alle krav er mødt, er du parat til at kompilere og installere &tdevelop;. Dette appendiks vil diskutere de nødvendige skridt til at gøre dette.

- Forberedende skridt fortæller dig om opsætning af rigtigt miljø.

- Kompilér &tdevelop; drejer sig om at få fat på &tdevelop; kilder fra svn, hvordan de skal forberedes for installationsprocessen, og viser endelig skridtene der er nødvendige for at kompilere og installere &tdevelop;.

- Nogle bemærkninger om configure tilvalg fortæller dig hvordan du kører &tdevelop; hvis det er blevet installeret på et andet sted end &kde;-mappen.

### Forberedende skridt

Inden du påbegynder kompileringssekvensen, skal du sikre dig at alle biblioteker og værktøj er tilgængelige for byggesystemet. For at opnå dette, skal visse miljøvariabler indstilles rigtigt. Skridtene som skal udføres afhænger af hvilken skal du bruger i terminalen.

For at undgå at indtaste alle sætningerne som indstiller de nødvendige miljøvariabler hver gang du vil kompilere, kan du placere dem i filen `.bashrc` eller `.cshrc`. På den måde indstilles miljøvariablerne rigtigt hver gang du starter skallen.

#### Opsætning af miljøet for bash-skallen

Hvis du bruger bash-skallen, tilføjes følgende linjer:

- `export TDEDIR=`(sti til din KDE-installation)
- `export TQTDIR=`(sti til dit Qt-bibliotek)
- `export LD_LIBRARY_PATH=$TQTDIR/lib:$TDEDIR/lib:$LD_LIBRARY_PATH`
- `export LIBRARY_PATH=$TQTDIR/lib:$TDEDIR/lib:$LIBRARY_PATH`
- `export PATH=$TQTDIR/bin:$TDEDIR/bin:$PATH`

#### Opsætning af miljøet for tcsh-skallen

Hvis du bruger tcsh-skallen, tilføjes følgende linjer:

- `setenv TDEDIR` (sti til din KDE-installation)
- `setenv TQTDIR` (sti til dit Qt-bibliotek)
- `setenv LD_LIBRARY_PATH=$TQTDIR/lib:$TDEDIR/lib:$LD_LIBRARY_PATH`
- `setenv LIBRARY_PATH $TQTDIR/lib:$TDEDIR/lib:$LIBRARY_PATH`
- `setenv PATH $TQTDIR/bin:$TDEDIR/bin:$PATH`

### Kompilér &tdevelop;

I følgende beskrivelse antager vi at du har placeret kildekoden for &tdevelop; i mappen `~/kde3src/tdevelop`.

#### Særlige hensyn ved kompilering fra svn

Hvis du bruger en aktuel version af &tdevelop; fra svn, afhænger de første kompileringsskridt af om du netop har gjort en fuldstændig udtjekning, eller kun opdateret kildekoden.

Efter en udtjekning fra svn

- Du skal initiere byggesystemet efter en ny udtjekning. Det samme gælder hver gang du skal starte igen fra begyndelsen. Skriv:

  - `~/kde3src/tdevelop>` `make -f admin/Makefile.common svn-clean`

  og derefter alle følgende skridt.

  Du har måske brug for adgang til svn-arkivet for oprydningen hvis nogen korrupte eller manglende filer skal genkonstrueres.

  `svn-clean`-kommandoen vil fjerne hver fil der ikke er i svn fra mappen! Sørg for at sikkerhedskopiere al værdifuld information før du udsteder denne oprydningskommando.

Efter en opdatering fra svn

- Næste skridt afhænger af udskriften fra svn-opdateringssekvensen. Hvis du fik noget som ligner følgende (der kan være en U eller P markering i søjlen til venstre, begge betyder at filen er blevet ændret):

      U /en_mappe_sti/Makefile.am

  eller hvis du netop har lavet en fuldstændig udtjekning, skal du skrive:

  - `~/kde3src/tdevelop>` `make -f Makefile.svn`

  inden du fortsætter med alle følgende skridt.

#### Grundlæggende kommandosekvens med `make`

Når det grundlæggende byggesystem er indstillet på denne måde, skal du bestemme dig for hvilken slags &tdevelop;-system du vil bruge. Det gøres med følgende indstillingsskridt, som bygger den virkelige fil med navnet `Makefile`, som `make` kommandoen vil bruge.

Du kan udelade flaget `--prefix` i følgende kommandolinjer med `configure`, hvis du ønsker at &tdevelop; skal installeres i &kde;'s standardmappe. Se kapitlet Nogle bemærkninger om flag til `configure` om dette.

En version kompileret til fejlsøgning

- Hvis du vil holde styr på hvad programmet &tdevelop; gør når det kører, kan du bygge en version kompileret med fejlsøgning. Bed blot din `configure` om at gøre det:

  - `~/kde3src/tdevelop>` `./configure --enable-debug=full --prefix=`(hvor-din-kde3-er)

En version kompileret til distribution

- Hvis du kun vil bruge &tdevelop; som det er (mindre og hurtigere), er det nok med en version kompileret for distribution. Det er standarden i `configure`.

  - `~/kde3src/tdevelop>` `./configure --prefix=`(hvor-din-kde3-er)

  Hvis du vil lave din egen dokumentation for programmeringsgrænsefladen for &tdevelop;, skal du tage yderligere et flag med i kommandoen `configure`:

  - `~/kde3src/tdevelop>` `./configure --`(tilvalg-som-ovenfor) `\`
  - `--with-tdelibsdoxy-dir=$TDEDIR/share/doc/HTML/en/tdelibs-apidocs`

Byg og installér &tdevelop;

- Kommandoen `configure` kontrollerer systemet og bygger en `Makefile` ifølge hvad den finder. Kommandoen `make` bruger normalt denne `Makefile`. Altså er

  - `~/kde3src/tdevelop>` `make`

  tilstrækkeligt. Om nødvendigt, så skaf rettigheder som systemadministrator

  - `~/kde3src/tdevelop>` `su`

  og angive systemadministratorens kodeord. Installér derefter programmet:

  - `~/kde3src/tdevelop>` `make install`

  Det er alt. Hvis du installerede &tdevelop; i &kde;'s standardmappe, kan du nu køre det integrerede udviklingsmiljø. Ellers er nogle yderligere skridt nødvendige, som vises i afsnittet Anden installationsmappe end standard nedenfor.

  Faktisk er der normalt tre &tdevelop;-programmer installeret:

  - &tdevelop; integreret udviklingsmiljø — det er her du normalt kommer til at arbejde.

  - Den fritstående &tdevelop; Assistent dokumentationsbrowser — isolerer alle de stærke dokumentationsfunktioner fra det integrerede &tdevelop; udviklingsmiljø i et separat værktøj. Dette er specielt nyttigt når du vil slå noget programmeringsdokumentation op, men ikke vil starte hele udviklingsmiljøet.

  - &tdevelop; Designer — forbedrer &Qt;-User Interface Designer med &kde; specifikke kontroller og integrerer sig fint i &tdevelop; udviklingsmiljøet.

### Nogle bemærkninger om flag til `configure`

#### Anden installationsmappe end standard

Normalt forbereder `configure` til at installere det grafiske udviklingsmiljø i &kde;'s standardmappe. Det er nødvendigt, eftersom &tdevelop; antager at der er direkte adgang til visse værktøjer og delprogrammer som findes der. Hvis du vil bruge din egen installationsmappe, skal du fortælle det til `configure` med flaget `--prefix`:

- `~/kde3src/tdevelop>` `./configure --prefix=`(hvor-din-kde3-er)

Der er et problem hvis du gør det. Du skal give mulighed for at &tdevelop; har adgang til nødvendige værktøjer og delprogrammer i &kde;'s mappe. (Du kan stadigvæk bruge det integrerede udviklingsmiljø uden at gøre det, men med meget begrænsede funktioner.)

Du skal bruge en skal, og følgende kommando skal køres inden du kan starte &tdevelop; fra skallen.

Husk at bruge flertal: Det er `TDEDIRS`, ikke blot `TDEDIR`)

- `~>` `export TDEDIRS=/usr/local/kde:/opt/kde3`
- `~>` `tdebuildsycoca`
- (Start nu &tdevelop;:)
- `~>` `tdevelop`

- `TDEDIRS` miljøvariablen skal sættes til listen af aktive &kde; mapper på dit system. Vi bruger
- `/usr/local/kde`:`/opt/kde3`
- blot som et eksempel.
- Mappen `/usr/local/kde` kan for eksempel indeholde en ufuldstændig udgave af &kde; som du kompilerede til fejlretningsformål og mappen `/opt/kde3` kunne derudover indeholder standardudgaven af &kde; fra din distribution der bruges til hverdagsarbejde.

I en tcsh-skal skal du indstille miljøvariablerne ved at bruge:

- `~>` `setenv TDEDIRS /usr/local/kde:/opt/kde3`

Kommandoen `tdebuildsycoca` (byg systemkontrolcache) søger efter biblioteker og gemmer deres sted og version i en cache, så &tdevelop; kan finde dem. Problemet er at det tager mærkbart med tid—og skal køres hver gang du bruger skallen til at starte &tdevelop; med en anden installationsmappe end standardmappen. Du vil kunne indtaste ovenstående kommando i et skalscript for at reducere anstrengelserne med at indtaste det.

(Du vil også kunne indtaste linjerne i filen `.bashrc` eller `.cshrc`, men det er ikke ønskværdigt fordi så køres `tdebuildsycoca` hver gang du bruger skallen.)

Kommandoen `tdebuildsycoca` kører ikke for systemadministratoren. Du skal kalde den som en anden bruger. (Men det er ikke en særlig god idé at udvikle som systemadministrator!)

## Hvordan man får fat i programmeringsgrænsefladen for &tdevelop;

Programmeringsgrænsefladen, Application Program Interface på engelsk, ofte forkortet til API, er i virkeligheden en følge af beskrivelser (&ie; kaldmodeller) som et program bruger for at få adgang til operativsystem og andre tjenester. I vort tilfælde er en mere omfattende definition dog blevet anvendt. Programmeringsgrænsefladen for et &kde;- eller &Qt;-program er en abstraktion af klasser og metodegrænseflader, en oversigt som kan bruges som opslagsbog for navigation i kildekoden.

Der er en version af den seneste programmeringsgrænseflade på KDevelops hjemmeside. Den opdateres automatisk hvert døgn så at du kan følge med.

Desværre bruges denne version bedst kun til at læse via internettet. Du kan ligesågodt bygge din egen dokumentation af programmeringsgrænsefladen fra kildekoden for &tdevelop;. For at gøre det, skal du fortælle automake systemet hvor KDELIBS API findes på dit. Dette opnås med det særlige flag `--with-tdelibsdoxy-dir` til `configure`-kommandoen når du forbereder at kompilere &tdevelop;'s kildekode:

- `~/kde3src/tdevelop>` `./configure --`(flag-som-sædvanligt)`\`
- `--with-tdelibsdoxy-dir=$TDEDIR/share/doc/HTML/en/tdelibs-apidocs`

(`make` erstatter den globale `$TDEDIR` med den egentlige &kde;-mappe). Udfør derefter kommandoen `make` som sædvanligt. Efter at det integrerede udviklingsmiljø &tdevelop; er bygget, har du mulighed for også at bygge programmeringsgrænsefladen. For at gøre det skal du skrive:

- `~/kde3src/tdevelop>` `make apidocs`

Dette bygger en `Doxyfile` i basismappen for &tdevelop;, som derefter behandles af programmet doxygen for at oprette en hel del `.html`-filer for programmeringsgrænsefladen. Når den ganske lange byggeproces for programmeringsgrænsefladen til sidst er klar, skal du installere programmeringsgrænsefladen præcis som du skal installere selve det integrerede udviklingsmiljø &tdevelop;. Få rettigheder som systemadministrator om nødvendigt med:

- `~/kde3src/tdevelop>` `su`

og angive systemadministratorens kodeord. Installér derefter dokumentationsfilerne:

- `~/kde3src/tdevelop>` `make install-apidox`

Når dette er gjort, informerer `make` dig om mappen hvor du til sidst kan kigge på indholdet i dokumentationen for programmeringsgrænsefladen. Bemærk adressen, eftersom du kan bruge den fra &konqueror; samt inde i &tdevelop;, hvis du har indstillet den egne kildekode for &tdevelop; som projektet at arbejde med.

Du vil mest sandsynligt se en masse advarsler og/eller fejlmeddelelser under API byggekørslen for Doxygen. Bedst at ignorere dem, de er kun af interesse for &tdevelop;-udviklerne. Hvis API-generingen nogensinde bliver færdig, så vil `.html` API-filerne kunne bruges.