====== Compilation du client ====== ===== Compilation du client sous linux ===== ==== Compilation dynamique ==== Pour compiler le client, il faut déjà récupérer les sources sur l'espace téléchargement (sources officielles) ou sur le serveur subversion (en cours de développement). Il faut ensuite se positionner dans le répertoire NouveauClient/trunk/client_sources, et taper la commande ''make -f Makefile.linux'' ce qui va créer le fichier ''le.x86.linux.bin''. Si on veut diminuer la taille de l'exécutable, il suffit de taper la commande ''strip le.x86.linux.bin'' ==== Compilation statique ==== La première solution, est d'avoir les différentes bibliothèques statiques directement sur la distribution, mais comme c'est un cas assez rare, on va plutôt suivre un autre méthode. Le principe va être de récupérer les sources des différentes bibliothèques directement sur leur site officiel et de les compiler. Pour simplifier cette partie, voici un script qui va faire le travail tout seul (récupérer les archives et les compiler). Attention ce script n'est pas sécurisé et n'est pas tellement propre, donc faire attention en l'utilisant. REP_SOURCES="/opt/landes/NouveauClient/trunk/client_sources/" REP_LIBS="$REP_SOURCES/libs" OPENAL="openal-soft-1.11.753" CAL3D="cal3d_0.10.0+0.11.0+rc2" SDL="SDL-1.2.14" SDL_IMAGE="SDL_image-1.2.10" SDL_NET="SDL_net-1.2.7" VORBIS="libvorbis-1.3.1" OGG="libogg-1.2.0" XML="libxml2-2.7.8" PNG="libpng-1.4.5" ALSA="alsa-lib-1.0.21a" ZLIB="zlib-1.2.5" if [ ! -e "$REP_LIBS" ]; then mkdir $REP_LIBS fi cd $REP_LIBS ######################### # Compilation de OpenAL # ######################### if [ ! -f $OPENAL.tar.bz2 ]; then wget http://kcat.strangesoft.net/openal-releases/$OPENAL.tar.bz2 fi if [ ! -e $OPENAL ]; then tar xjf $OPENAL.tar.bz2 fi if [ ! -f libopenal.a ]; then cd $OPENAL sed -i 's/SHARED/STATIC/' CMakeLists.txt cmake . make cp libopenal.a ../ cd $REP_LIBS fi ######################## # Compilation de Cal3D # ######################## if [ ! -f $CAL3D.orig.tar.gz ]; then wget http://download.gna.org/cal3d/cal3d/gnulinux/debian/dapper/src/$CAL3D.orig.tar.gz fi if [ ! -e cal3d-0.10.0+0.11.0+rc2 ]; then tar xzf $CAL3D.orig.tar.gz fi if [ ! -f libcal3d.a ]; then cd cal3d-0.10.0+0.11.0+rc2 ./configure --enable-static --disable-shared echo "#include " >> config.h make cp src/cal3d/.libs/libcal3d.a ../ cd $REP_LIBS fi ###################### # Compilation de SDL # ###################### if [ ! -f $SDL.tar.gz ]; then wget http://www.libsdl.org/release/$SDL.tar.gz fi if [ ! -e $SDL ]; then tar xzf $SDL.tar.gz fi if [ ! -f libSDL.a ]; then cd $SDL ./configure --disable-shared --disable-video-directfb make cp build/.libs/libSDL.a ../ cd $REP_LIBS fi ############################ # Compilation de SDL_image # ############################ if [ ! -f $SDL_IMAGE.tar.gz ]; then wget http://www.libsdl.org/projects/SDL_image/release/$SDL_IMAGE.tar.gz fi if [ ! -e $SDL_IMAGE ]; then tar xzf $SDL_IMAGE.tar.gz fi if [ ! -f libSDL_image.a ]; then cd $SDL_IMAGE ./configure --disable-shared make cp .libs/libSDL_image.a ../ cd $REP_LIBS fi ########################## # Compilation de SDL_net # ########################## if [ ! -f $SDL_NET.tar.gz ]; then wget http://www.libsdl.org/projects/SDL_net/release/$SDL_NET.tar.gz fi if [ ! -e $SDL_NET ]; then tar xzf $SDL_NET.tar.gz fi if [ ! -f libSDL_net.a ]; then cd $SDL_NET ./configure --disable-shared make cp .libs/libSDL_net.a ../ cd $REP_LIBS fi ######################### # Compilation de Vorbis # ######################### if [ ! -f $VORBIS.tar.gz ]; then wget http://downloads.xiph.org/releases/vorbis/$VORBIS.tar.gz fi if [ ! -e $VORBIS ]; then tar xzf $VORBIS.tar.gz fi if [ ! -f libvorbis.a ]; then cd $VORBIS ./configure --disable-shared --enable-static make cp lib/.libs/libvorbis.a ../ cp lib/.libs/libvorbisfile.a ../ cd $REP_LIBS fi ###################### # Compilation de Ogg # ###################### if [ ! -f $OGG.tar.gz ]; then wget http://downloads.xiph.org/releases/ogg/$OGG.tar.gz fi if [ ! -e $OGG ]; then tar xzf $OGG.tar.gz fi if [ ! -f libogg.a ]; then cd $OGG ./configure --disable-shared --enable-static make cp src/.libs/libogg.a ../ cd $REP_LIBS fi ###################### # Compilation de XML # ###################### if [ ! -f $XML.tar.gz ]; then wget ftp://xmlsoft.org/libxml2/$XML.tar.gz fi if [ ! -e $XML ]; then tar xzf $XML.tar.gz fi if [ ! -f libxml2.a ]; then cd $XML ./configure --disable-shared --enable-static make cp .libs/libxml2.a ../ cd $REP_LIBS fi ###################### # Compilation de PNG # ###################### if [ ! -f $PNG.tar.bz2 ]; then wget ftp://ftp.simplesystems.org/pub/libpng/png/src/history/$PNG.tar.bz2 fi if [ ! -e $PNG ]; then tar xjf $PNG.tar.bz2 fi if [ ! -f libpng.a ]; then cd $PNG ./configure --disable-shared --enable-static make cp .libs/libpng14.a ../libpng.a cd $REP_LIBS fi ####################### # Compilation de ALSA # ####################### if [ ! -f $ALSA.tar.bz2 ]; then wget ftp://ftp.task.gda.pl/pub/linux/misc/alsa/lib/$ALSA.tar.bz2 fi if [ ! -e $ALSA ]; then tar xjf $ALSA.tar.bz2 fi if [ ! -f libasound.a ]; then cd $ALSA ./configure --disable-shared --enable-static make cp src/.libs/libasound.a ../ cd $REP_LIBS fi ####################### # Compilation de ZLIB # ####################### if [ ! -f $ZLIB.tar.bz2 ]; then wget http://zlib.net/$ZLIB.tar.bz2 fi if [ ! -e $ZLIB ]; then tar xjf $ZLIB.tar.bz2 fi if [ ! -f libz.a ]; then cd $ZLIB ./configure make cp libz.a ../ cd $REP_LIBS fi Lorsque toutes les bibliothèques sont récupérer, il faut taper la commande ''make static -f Makefile.linux'', ce qui va compiler les sources et créer le fichier ''le.x86.static.linux.bin''. Pour diminuer la taille de l'exécutable, il faut taper la commande ''strip le.x86.static.linux.bin''. ==== Compilation avec Ubuntu ==== Sur une configuration vierge de toute installation, il faut commencer par créer un répertoire de travail et se placer dedans Installation de subversion : sudo apt-get install subversion Récupération de la dernière version du dépôt : svn co svn://jeu.landes-eternelles.com:/NouveauClient (login : anonyme pass : anonyme) Installation des bibliothèques manquantes : sudo apt-get install libxml2-dev libsdl1.2-dev libopenal-dev libogg-dev libsdl-net1.2-dev libvorbis-dev libsdl-image1.2-dev libcal3d12-dev libxslt1-dev g++ cmake On entre dans le répertoire pour la compilation : cd NouveauClient/trunk/client_sources Compilation : make -f Makefile.linux ==== Activation d'un flag ==== Pour activer ou désactiver un flag, il faut ouvrir le fichier make.defaults, et décommenter ou commenter les options que l'on veut activer ou désactiver. Ensuite il suffit de recompiler le client pour que la modification soit prise en compte. ===== Compilation du client sous Windows ===== Le fichier projet le plus à jour étant celui sous Code::Blocks, nous vous recommandons d'utiliser ce logiciel. Téléchargez celui avec mingw, version 10.05 (les plus récentes ne sont pas compatibles). Pour compiler le client, il faut déjà récupérer les sources sur l'espace téléchargement (sources officielles) ou sur le serveur subversion (en cours de développement). Il vous faut aussi récupérer les librairies Windows, la version officielle du pack est disponible ici : http://landes-eternelles.com/client/Librairie.zip Dézipez ces deux dossiers et mettez-les dans un même répertoire. Vous vous retrouverez donc avec un dossier contenant deux autres dossiers : client_sources et Librairie. Il vous suffit ensuite d'aller dans votre fichier source, d'ouvrir le fichier client.cdb et de lancer la compilation (construire l'exécutable). Ceci aura pour effet de vous créer un fichier client.exe dans le répertoire client (Se trouvant au même niveau que client_sources et librairies). Placez client.exe dans votre répertoire de jeu, double cliquez dessus, et le jeu se lancera à partir du client que vous venez de créer. Problème fréquent : "redefinition of typedef 'Byte'" => déplacer le fichier xz\Type.h dans les includes de code blocks (généralement C:\Program Files (x86)\CodeBlocks\MinGW\include) ==== Activation d'un flag ==== Dans CodeBlocks, sous Windows : Menu Project / Build Options / Onglet Compiler Settings / Onglet #define / => rajouter les variables qui vont bien ===== Compilation sous mac avec xcode ===== Pour compiler sur mac vous devez déjà connaitre l'environnement mac et xcode. Vous pouvez contacter Trinita pour plus d'informations. 1. vous pouvez récupérer le pack de librairie ici : http://landes-eternelles.com/client/framework_macosx.zip 2. vous devez installer xcode ( voir le site apple.fr ) 3. vous devez récupérer les sources ( soit le zip sur dans la partie téléchargement ) soit sur le svn. Vous pouvez utiliser SvnX comme interface graphique.