## Installation du programme à partir du code source

### Obtenir le code source

Créez un nouveau répertoire pour contenir le code source. Vous pouvez l'obtenir de deux manières:

- Téléchargez le fichier des sources skychart_v4_xxx_source.tar.gz
  dans ce répertoire et extrayez les fichiers.
  Pour Linux la commande est : tar xzf skychart_v4_xxx_source.tar.gz
  Avec Windows utilisez 7-zip disponible depuis: http://sourceforge.net/projects/sevenzip/

- Ou mieux clone ou fork le repository git pour obtenir la toute dernière version et ne mettre a jour que les changement journalier. Vous devez procéder ainsi si vous voulez me proposer une modification du code avec un pull request.
  La commande est:

      git clone https://github.com/pchev/skychart.git

### Compilation et installation automatique

Si vous voulez juste compiler le programme sans utiliser l'environnement interactif de Lazarus vous trouverez les scripts nécessaires dans le répertoire de base.

Avant de lancer ces scripts veillez a avoir le chemin des exécutables de Free Pascal dans votre environnement PATH, c'est là que ce trouve entre autres la commande fpcmake.

Il y a également dans le répertoire de base un script buildpkg.sh qui construit automatiquement les paquets de distribution pour Linux et Windows. C'est celui qui est utilisé pour produire les paquets disponibles en téléchargement.

#### Pour Linux et Mac

    ./configure [fpc=répertoire_free_pascal] [lazarus=répertoire_lazarus] [prefix=répertoire_d'installation]
    make
    make install
    make install_data

#### Pour Windows

- Attention à ne pas avoir une autre commande make que celle de Free Pascal dans le path.
- Compilez manuellement les librairies getdss et plan404 avec Mingw
- Installez la commande sed pour Windows
- Editez le fichier configure.cmd et ajuster les valeurs pour sed=, fpc=, lazarus=, prefix=
- Vous devrez surement modifier les scripts selon la version Linux car je ne les utilisent pas et ils ne sont probablement pas à jours.

    configure.cmd
    make
    make install
    make install_data

### Compilation interactive

Commencez par les composants requis depuis le répertoire src/skychart/component

Ouvrez le fichier “component/cdccomponents.lpk” dans Lazarus et cliquez sur Compile puis Install, accepter l'installation dans tous les cas.
Quand on vous demande de reconstruire Lazarus repondez Oui.

Vous pouvez maintenant ouvrir le projet principal cdc.lpi

Lazarus affiche la dernière unité ajoutée au programme. Pour afficher la fiche principale utilisez le menu Projet / Forms, et ouvrez f_main.

Pour compiler et executer le programme depuis l'IDE ajuster Run-Run Parameters-Working Directory pour le répertoire ou CDC est installé.

## Installation de Lazarus

Pour déterminer quelle version de Lazarus est nécessaire pour compiler une version spécifique de Skychart, installez la version binaire et ouvrez le menu Aide / A propos. Il y a une ligne qui indique la version de FPC et Lazarus utilisée.

Installez Lazarus depuis http://lazarus.freepascal.org. Voir: http://wiki.lazarus.freepascal.org/Installing_Lazarus pour plus d'informations.

Dans Lazarus ouvrez Components-Configure, Installed Packages.
Controlez que Printer4Lazarus et TurboPowerIPro sont installés, c'est normalement le cas.
Sinon installez depuis lazarus/component :

- printers/printer4lazarus.lpk
- turbopower_ipro/turbopoweripro.lpk

Voila la procédure que j'utilise pour installer ou mettre à jours Free Pascal et Lazarus sous Linux avec l'environnement de cross compilation pour Windows:

    cd ~/fpc
    # svn co http://svn.freepascal.org/svn/fpc/branches/fixes_xxx .
    svn up
    make clean
    make build
    sudo make install
    make clean OS_TARGET=win32 CPU_TARGET=i386
    make build OS_TARGET=win32 CPU_TARGET=i386
    sudo make crossinstall OS_TARGET=win32 CPU_TARGET=i386
    ver=`fpc -iV`
    sudo ln -f -s /usr/local/lib/fpc/$ver/ppc386 /usr/local/bin
    sudo ln -f -s /usr/local/lib/fpc/$ver/ppcross386 /usr/local/bin
    cd ~/lazarus
    # svn co http://svn.freepascal.org/svn/lazarus/trunk .
    svn up
    make clean
    make OS_TARGET=win32 CPU_TARGET=i386 clean
    make bigide
    make OS_TARGET=win32 CPU_TARGET=i386 bigide

## Convention de nom pour les fichiers source

La convention de nom suivante est utilisée pour les fichiers du projet principal afin de pouvoir rapidement savoir quel est l'utilisation d'un fichier.

    cdc.lpi         : Le projet principal
    pu_*.pas        : Unité d'une fiche
    pu_*.lfm        : Définition de la fiche
    cu_*.pas        : Unité d'un objet non-visuel
    u_*.pas         : Unité avec du code générique

## Structure des répertoires

      |- source -|                          < répertoire de base, script de compilation
                 |- skychart |              < le module skychart
                             |- component   < les composant du projet
                             |- library     < les librairies du projet
                             |- ...
                             |- units       < résultats de compilation .dcu

                 |- varobs   |              < le module varobs

                 |- tools | - data          < le répertoire "data" requis pour exécuter le programme
                          | - cat           < les catalogues de base, les programmes utilisé pour les construire
                          | - ...           < autres fichiers de données