05 février 2009

How To: installer la fmod Ex sur linux?

Avant propos : Ce tutoriel n'est qu'une mise à jour d'un ancien billet intitulé How To: installer la fmod 3.75 sur linux?, dans lequel je parle de la fmod au détriment de la fmod Ex. Dans l'ancien billet je fonctionne sur un Ubuntu 32bits, maintenant c'est un 64bits. Il faut savoir que la fmod 3 est maintenu à la derniere version stable c'est à dire la 3.75. La fmod Ex est plus puissante mais plus lourde, et finalement la fmod 3 reste mieux pour appliquer trois sons à deux events sur un mini jeu en 2D, façon de parler ! Dans ce cas retournez sur l'ancien tutoriel sinon je vous invite à lire la suite (la première est peu changée) ...
if(dont_want == BLABLA) goto partie2 ;

Tout d'abord, qu'est-ce que la fmod?
Sans rien vous cacher, je peux vous dire que c'est une library qui...
...Qu'est-ce qu'une library?
Une library (je ne l'écris pas librairie car le mot library se traduit bibliothèque en français) est - en programmation bien sûr - un ensemble de fonctions qui ont un but commun et qui peuvent s'appeler entres-elles, ces fonctions ou procédures sont déclarées par des fichiers d'en tête (en anglais header *.h) inclues par le développeur s'il en a besoin dans son code.
Qu'elle est la particularité de la fmod en tant que library ?
La fmod est tout simplement une library très puissante qui gère le son (musique, bruitage) et les effets sonores. De plus elle est portée sur une multitude de platforme.
Mais la fmod n'est pas libre...
Donc sa spécialité, c'est le son et elle marche aussi bien sur PC que sur Mac si j'ai assimilé?
En effet c'est presque ça, sauf que par multiplatforme j'entends différents systèmes d'exploitation, par exemple MS-Windows, GNU/Linux, Mac OS, mais j'entends aussi quelque chose qui va vous étonner : des consoles de jeu.
Mais comment fait-elle pour que le fichier soit lisible sur tout ça?
Quand on code un programme, on tape des commandes bien sûr, et entre autre des commandes pour les accès aux sons si on veut en utiliser (par exemple charger un fichier audio, le lire, ...), ces fonctions sont toujours les mêmes tant qu'elles sont dans le code source, cependant le fichier library lui varie en fonction de la platforme, c'est comme ça cela qu'on peut compiler les fonctions de cette library dans notre programme, dans un format binaire compréhensible par la machine ou le système.
J'énumère donc les treize différentes platformes que supporte la fmod:
- Windows 32bit
- Windows 64bit (AMD64)
- Linux
- Linux 64bit (AMD64)
- Macintosh (os8/9/10/x86)
- Windows CE (Pocket PC / Smart phone)
- Playstation 2
- Xbox
- GameCube
- Xbox 360
- Playstation Portable
- PLAYSTATION®3
- Wii

La bibliothèque et ses en-têtes pour chaque platforme respective sont téléchargeables sur le site de la fmod dans la section download (si ce n'est pour les consoles où une documentation est complémentaire).


Comment installer la fmod?

Pour commencer, il va falloir récupérer la library : FMOD Ex linux. Dans l'archive, seul le dossier api nous intéresse (vous pouvez consulter le reste: c'est de la documentation et des exemples), et dans ce dossier seul le fichier *.so qui représente la bibliothèque de fonction et le contenu du dossier inc qui contient les headers vont nous servir. Le mieux est de les décompresser sur un endroit visible comme le bureau ~/Bureau.

Cette version de la fmod possède un Makefile qui permet de l'installer dans les répertoires du système et qui se résume à ça pour l'installation :

echo "Installing FMOD Ex libraries and headers..."
cp -f api/lib/libfmodex64-4.22.02.so /usr/local/include/fmode
cp -f api/lib/libfmodexp64-4.22.02.so /usr/local/include/fmode
ldconfig -n /usr/local/lib
mkdir -p /usr/local/lib
cp -f api/inc/*.h* /usr/local/lib
echo "done."
Pour lancer l'installation tapez make install dans un terminal dans le repertoire du makefile.
S'il ne marche pas, copiez collez ce code dans un fichier texte et appelez le install.sh par exemple et rendez le exécutable (chmod u+x install.sh dans un terminal ou proprièté->permission->rendre exécutable), puis ouvrez un terminal placez vous dans le dossier où vous avez décompressé l'archive : cd ~/Bureau/fmodapi et lancez le script ./l'endroit_ou_se_trouve_le_script/install.sh et c'est bon !

La commande ldconfig crée les liens symboliques. Pour linker -llibfmodex64-4.22.02 ou plutôt -lfmodex64 grâce au lien symbolique.

Info : Si le vous avez des erreurs à propos du fichier .so lors de la compilation ou du lancement du programme c'est surement qu'il n'est pas détecté(libfmodex64 pour 64bits, et libfmodex32 pour 32):
à la compilation : vérifiez que vous avez bien /usr/local/lib/libfmodex64-4.22.02.so
si non réinstallez la bibliothèque
au lancement : vérifiez l'existence du lien symbolique /usr/lib/libfmodex64.so
si non créez le ou, coupez-collez et renommé le fichier libfmodex64-4.22.02.so (c'est pas la méthode propre mais à mon goût c'est là qu'il aura fallu que soit ce fichier au départ)


Note de la fin : Avec ces articles sur la fmod j'espère apporter ma petite contribution à la communauté comme il le faut (tappez "fmod linux" sur google et voyez le premier résultat :) ).
Et sur la documentation Ubuntu me voici : http://doc.ubuntu-fr.org/fmod