Fr/Compiler FlightGear sous GNU/Linux

From FlightGear wiki
Jump to navigation Jump to search
Attention  Cette page n'est plus du tout à jour ! Elle permet de compiler FG 0.9 !
Installation à partir du CVS
Introduction

Cet article vous décrit comment compiler FlightGear CVS sur un système GNU/Linux.

Compiler FlightGear n'est pas une tâche élémentaire pour des utilisateurs novices. Donc, si vous êtes un débutant (nous l'avons tous été un jour), et que vous utilisez une plateforme pour laquelle il existe des binaires, nous vous recommandons d'essayer plus tard la compilation et de commencer simplement à voler à partir de la distribution binaire.

A compter du 29 octobre 2006, la branche MAIN de la version CVS de FlightGear a basculé vers OpenSceneGraph (OSG). Le support de Plib demeure disponible dans le CVS en utilisant la branche PRE_OSG_PLIB_20061029. (cvs up -rPRE_OSG_PLIB_20061029)

Prérequis

Avant de pouvoir compiler FlightGear, il vous faut les éléments suivants installés sur votre ordinateur :

 * compilateur C++ : ce sont les programmes c++, cpp, gcc et g++ que l'on trouve dans le répertoire /usr/bin. Vous aurez également besoin d'avoir les utilitaires autoconf et automake1.9 installés.
 * CVS : oui, le programme est appelé CVS. CVS vous permet de télécharger la dernière version du code source. Les utilisateurs Windows pourront utiliser TortoiseCVS avec FlightGear.
 * Support OpenGL : plus précisement, votre système doit supporter l'accélération graphique matérielle. Vous pouvez le vérifier en lançant la commande glxinfo | grep direct à partir d'une fenêtre terminale de votre serveur X.

Note : pour pouvoir lancer la commande ci-dessus, vous devez avoir l'outil mesa-utils installé.

Vous devriez alors voir : direct rendering: Yes : ceci signifie que tout va bien pour vous concernant le support OpenGL. En revanche, si vous voyez direct rendering: No, ne paniquez pas encore : cela veut peut-être juste signifier que vous n'avez pas toutes les librairies nécessaires pour l'accélération graphique. Continuez l'installation de FlightGear CVS et essayez d'installer plib1.8.4 et ses dépendances en premier. Si vous obtenez toujours le même message d'erreur, alors il vous faudra chercher par vous même via les moteurs de recherche. Cela peut être notamment dû à une mauvaise configuration de votre serveur X.Org (voir /etc/X11/xorg.conf) vis à vis de votre carte graphique.

Dépendences

FlightGear dépend d'un certain nombre de librairies. Vous ne devez pas toutes les compiler vous-même, mais vous devez au moins avoir leur version de développement installée. Par exemple, la version de développement de plib1.8.4 est plib1.8.4-dev.

Les dépendances sont résumées dans l'arbre suivant. Notez que chaque librairie a ses propres dépendances et que la plupart de celles-ci ne sont pas indiquées ici.

 * OpenAL and ALUT
 * SimGear **(Compilé plus bas)**
 * PLIB (jusqu'aux sources de la version 0.9.10, branche PRE_OSG_PLIB_20061029 CVS) **(Compilé plus bas)**
 * (Free)GLUT
 * OpenSceneGraph (svn trunk incluant OpenThreads et Producer) **(Compilé plus bas)**
 * libfreetype6-dev
 * libjpeg62-dev
 * libungif4-dev (ce paquet est obsolète sur Debian Sid, il s'agit désormais de libgif-dev)
 * libtiff4-dev
 * libpng12-dev
 * libxmu-dev
 * libxi-dev
 * libboost1.35-dev


Si vous attaquez les dépendances ci-dessus dans l'ordre indiqué ci-dessous, vous devriez être OK :\\ - //Glut// : la plupart des distributions incluent les paquetages glut, bien qu'il vous faudra probablement chercher un peu pour les trouver. Faites attention à bien installer les paquetages glut et glut-devel, autrement //FlightGear// compilera peut-être mais ne fonctionnera pas correctement.\\ - //Zlib// : la plupart des distribution installent les librairies zlib de base par défaut, mais pas la partie développement. Si vous n'avez pas le fichier zlib.h, vous aurez probablement besoin d'installer le paquetage zlib-devel correspondant à votre distribution.\\ - //Plib// : librairies de portabilité et graphismes de scènes.\\ - OpenSceneGraph.\\ - //SimGear// : librairies de support de simulation. Si vous compilez //FlightGear// à partir du CVS, vous aurez besoin de la version CVS de //SimGear//. Si vous rencontrez des erreurs bizarres lors de la compilation, une des premières choses à faire est de vérifier que vous avez une version à jour de //SimGear// compilée et installée sur votre système.

Vous aurez également besoin de ces programmes pour installer FlightGear (Disponible dans vos dépots normalement):

 * cvs
 * subversion
 * cmake
 * automake
 * autoconf
Compilation

Les commandes précédées d'un\\ - $ sont des commandes qui peuvent être appliquées par l'utilisateur courant\\ - # sont des commandes nécessitant les droits de root (écriture dans l'arborescence de /usr), sur certaines distributions (Ubuntu surtout) il est très usuel d'utiliser la commande $ sudo pour obtenir ces droits de root.\\ Pour les autres, il faut passer en root d'abord (en donnant le mot de passe) via la commande su. \\ Faites $ cd ~ $ mk $monrep $ cd $monrep \\ Où $monrep\\

sera le nom de votre choix (par exemple **FGFS-CVS** ) \\

Note : le "sudo" dans les "sudo make install" n'est nécessaire que si vous n'avez pas les droits d'écriture dans les répertoires d'installation (/usr/local).\\

Note bis : Certains vous ferons installer des choses dans /usr/local/ hors il faut des droits administrateurs (root) pour cela. Il n'est jamais conseillé de faire ce genres de choses lorsque l'on ne maîtrise pas le système. make install fera le necessaire pour vous.\\

Obtenir la base de FlightGear

La compilation de FlightGear est souvent longue la première fois (les anciens vous le diront ;-)), entre les librairies manquantes, la compilation depuis la première ligne de code, etc. Et ce qui est également **très** long c'est le téléchargement de la base de FlightGear qui fait quand même près de 2 Go.\\ Donc avant de commencer à compiler, je vous conseille dans un premier temps de lancer le téléchargement de la base de FlightGear dans un terminal, et de la laisser tourner toute seule pendant que vous vous occuperez d'installation de dépendances, de pester contre votre distribution, ou contre le sort qui s'acharne à vous empêcher de compiler ce [bip] logiciel de [bip]. C'est très simple, et ça ne demande rien de plus qu'une connexion à Internet active et cvs installé:

$ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login quand s'affiche <file>CVS password: </file>entrez <file>guest</file>puis entrez la ligne de commande$ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co data

voilà, ouvrez un autre terminal et lancez vous dans la prochaine étape (la plus marrante :-D)

Obtenir et compiler OpenSceneGraph

au 2 octobre 2008 la version stable est la : **2.6.1**

 * Dans votre répertoire $monrep faites un :

$ svn checkout http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk OpenSceneGraph

$ cd OpenSceneGraph $ ./configure $ make

  1. make install

N'oubliez pas de rajouter /usr/local/lib dans /etc/ld.so.conf

  1. echo '/usr/local/lib' >> /etc/ld.so.conf

et de lancer un

  1. ldconfig

pour bien prendre en compte le path des librairies OSG, sinon Flightgear vous sortira le gentil message d'erreur suivant :

fgfs: error while loading shared libraries: libosgViewer.so.35 : cannot open shared object file: No such file or directory

 * Attention, sur certaines distributions une fonction du CMakeLists.txt ne fonctionne pas FIND_PACKAGE(wxWidgets) en l'occurence. Cela peut se résoudre en éditant le fichier CMakeLists.txt et en mettant en remarque (placer un # en début de ligne) les deux lignes suivantes :

  1. SET(wxWidgets_USE_LIBS base core gl net)
  2. FIND_PACKAGE(wxWidgets)

Actuellement (30 avril 2008) ce sont les lignes 234 et 235.

De même, récemment sur Debian SID, la compilation échoue au niveau de ffmpeg (à 97%), si c'est toujours le cas, il suffit de désactiver la compilation du module:\\ Dans : src/osgPlugins/CMakeLists.txt\\ commentez:

  1. IF(FFMPEG_FOUND)
  2. ADD_SUBDIRECTORY(ffmpeg)
  3. ENDIF()



Obtenir et compiler PLIB cvs taggé 1.8.6, ou PLIB 1.8.5

Depuis Flightgear version 1.9.0, la version CVS de SimGear/FlightGear nécessite Plib installé en version >= 1.8.5. on va utiliser la version CVS taggé 1.8.6 qui comporte quelques améliorations concernant les gestions de fenêtre. Pour le moment aucune distribution ne semble avoir inclue la version 1.8.5 dans ces dépôts. Il va donc falloir compiler soit-même PLIB tout seul comme un grand. Rassurez-vous rien de très compliqué et la compilation est très rapide.

Je laisse le choix entre la version 1.8.5 stable (minimum requis) et la version CVS 1.8.6, n'en installez qu'une :) .

stable 1.8.5

Récupérer de la version stable 1.8.5 la suite, ben c'est simple:\\ $ cd ~ $ cd $monrep $ tar xzf plib-1.8.5.tar.gz $ cd plib-1.8.5 $ ./configure --prefix=/usr/local $ make

  1. make install

CVS taggé 1.8.6

$ cd ~/$monrep $ svn co http://plib.svn.sourceforge.net/svnroot/plib/trunk plib

on va ensuite déclarer la version comme étant 1.8.6, pour pouvoir profiter des ajouts:\\ dans plib/src/util/ul.h:157 changer la valeur de PLIB_TINY_VERSION de 5 à 6.\\ enfin la suite comme pour la version 1.8.5:

$ cd plib $ ./configure --prefix=/usr/local $ make

  1. make install

les deux

n'oubliez pas de lancer un petit\\

  1. ldconfig

que le compilateur tienne compte des nouvelles librairies installées



Obtenir et compiler SimGear

Etape 1 :\\ Connectez-vous sur le serveur CVS et récupérez la dernière version du code source de SimGear en faisant :

$ cd ~ $ cd $monrep $ cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 login $ CVS passwd: guest $ cvs -d :pserver:cvsguest@cvs.simgear.org:/var/cvs/SimGear-0.3 co source

Etape 2 :\\ Comme tous les codes sources seront téléchargés dans un répertoire appelé source, il vous faudra renommer le répertoire en quelque chose de plus parlant. Renommez donc le répertoire ci-dessus en faisant : mv source simgear.\\ Ensuite, allez dans ce répertoire et lancez la compilation puis l'installation :

cd simgear $./autogen.sh $./configure --with-jpeg-factory $ make

  1. make install

ici un petit

  1. ldconfig

ne coûte rien. C'est juste une bonne habitude à prendre lorsque l'on installe des librairies.

Obtenir et compiler FlightGear

Etape 1 :\\ pour vous connecter à la version cvs et récupérer la dernière version du code source de Flightgear, faites :

$ cd ~ $ cd $monrep $ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login $ CVS passwd: guest $ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co source

Un répertoire avec le nom source sera ensuite créé avec tout le code source de FlightGear dedans.

Etape 2 :\\ Pour renommer le répertoire ci-dessus, utilisez la commande suivante :

mv source flightgear

Etape 3 :\\ Ensuite, placez-vous dans le répertoire et lancez la compilation puis l'installation :

$ cd flightgear $ ./autogen.sh $ ./configure $ make

  1. make install

C'est terminé !



Compiler fgrun OSG

avant de le compiler, vérifiez que vous avez la version dev de fltk installée (libfltk1.1.dev dans mon cas) \\

récuperez les sources version OSG: $ cd ~ $ cd $monrep $ svn co https://fgrun.svn.sourceforge.net/svnroot/fgrun fgrun

puis compilation et installation:

$ cd fgrun $ cd trunk $ cd fgrun $ ./autogen.sh $ ./configure $ make

  1. make install

fgrun-OSG est pret......




Atlas

Longtemps impossible à compiler sans prise de tête, Atlas se compile maintenant presque les doigts dans le nez.\\ la version CVS est prévue pour utiliser Simgear stable 1.9.1, donc soit vous compilez Simgear1.9.1 dans un coin, soit vous modifiez légèrement vos sources pour pouvoir compiler avec Simgear CVS, voici un [1] (valable au 1 septembre 2009) qui permet à la compilation de passer, il suffit de modifier une ligne dans Cache.cxx et d'en ajouter deux à configure.ac. Les commandes suivantes sous-entendent que vous avez fait la modif après avoir obtenus les sources.

$ cd ~/$monrep $ cvs -d:pserver:anonymous@atlas.cvs.sourceforge.net:/cvsroot/atlas login $ CVS passwd: guest $ cvs -z3 -d:pserver:anonymous@atlas.cvs.sourceforge.net:/cvsroot/atlas co Atlas $ cd Atlas $ ./autogen.sh $ ./configure $ make

  1. make install


FGCom

Tant qu'à compiler, autant compiler fgcom aussi : \\

Quelques dépendances : (site : http://squonk.abacab.org/dokuwiki/fgcom )

   *      libopenal
   *      libasound
   *      libplibul
   *      libplibnet
   *      libpthread

Création des sources et compilation :

$ cd ~ $ cd $monrep $ svn checkout svn://svn.dfn.de:/fgcom/trunk fgcom $ cd fgcom/src $ make

  1. make install

Avant de faire le make, deux fichiers sont à éditer:

src/Makefile:\\ les champs PLIB_PREFIX, OPENAL_PREFIX (pour la position de vos librairies) et INSTALL_DIR ainsi que INSTALL_BIN (où vous voulez mettre les fichiers de data et le binaire), prennez celui qui correspond à votre OS!

iaxclient/lib/Makefile:\\ choisissez quel système de son utiliser, en sachant que certains ne marchent pas: Ici j'ai selectionné openal, les autres choix sont différents portaudio et alsa. USE_PA_OSS=0 USE_PA_ALSA=0 USE_PA_JACK=0 AUDIO_ALSA=0 AUDIO_OPENAL=1

Note : en cas de mise à jour, il est nécessaire de faire un "make clean" avant de faire le "make", sinon la partie iax ne sera pas recompilée.

Recommandations

N'oubliez pas de télécharger les données avant de lancer FlightGear sinon vous obtiendrez un :

Base package check failed ... Found version [none] at: /usr/local/share/FlightGear Please upgrade to version: 1.99.5

Tant qu'à faire, utilisez également les avions et le répertoire data en général en version CVS ! Il y en a de nombreux nouveaux et les "anciens" ont été pour la plupart grandement améliorés ! Pour cela, rien de plus simple : depuis la racine de FlightGear (par exemple /Home/Nom user/FlightGear), faites :

$ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login quand s'affiche <file>CVS password: </file>entrez <file>guest</file>puis entrez la ligne de commande$ cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co data