Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:compilation_d_un_client_linux [2017/07/04 18:21] – [Telecharger les sources] Deedfr:compilation_d_un_client_linux [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 ===== Préparation ===== ===== Préparation =====
  
-Pour installer les bon packagefaire ca dans un terminal:+La procédure suivante devrait fonctionner pour Debian Jessie. Pour une autre versionil faut actuellement patcher le code ou recompiler certaines dépendances, essayez de retrouver la procédure pour votre distribution [[https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-opennel-code/blob/develop/.gitlab-ci.yml|dans le fichier CI de gitlab içi]] 
 + 
 +Vous aurez besoin du dépot de kervala pour installer les bons packages :
  
 <code> <code>
Ligne 9: Ligne 11:
 </code> </code>
  
-Et ca:+Si add-apt-repository n'est pas installé sur votre ordinateur, vous pouvez l'installer via le paquet "software-properties-common".
 <code> <code>
-sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev \+sudo apt install software-properties-common 
 +</code> 
 + 
 +Puis installez les librairies nécessaires : 
 +<code> 
 +sudo apt install git libcurl4-openssl-dev libluabind-dev libfreetype6-dev \
 libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev \ libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev \
-libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev \ +libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-turbo-dev \ 
-rrdtool libmysqlclient15-dev bison libxmu-dev autoconf automake liblzma-dev+rrdtool libmysqlclient-dev bison libxmu-dev autoconf automake liblzma-dev libgif-dev libssl-dev cpputest 
 + 
 +nouvelle dépendance:  
 +apt install libavdevice-dev
 </code> </code>
 +
 +
 +====Compilation dépendances====
 +
 +Aide pour compiler (merci kervala)
 +
 +http://hg.kervala.net/packaging/file/tip/ryzom/steam/build_static_external.sh
 +===Curl===
 +Nous utilisons le package de Kervala (dev officiel ryzomcore)
 +
 +  $ hg clone http://hg.kervala.net/packaging/
 +  $ cd packaging/curl
 +  $ mkdir build && cd build
 +  $ cmake -DCMAKE_BUILD_TYPE=Release -DCURL_ZLIB=ON -DBUILD_CURL_EXE=OFF -DBUILD_CURL_TESTS=OFF -DCURL_STATICLIB=ON -DHTTP_ONLY=ON -DENABLE_IPV6=ON -DCMAKE_USE_OPENSSL=ON -DOPENSSL_SSL_LIBRARIES=/usr/lib/libssl.a  -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/libcrypto.a -DCMAKE_USE_LIBSSH2=OFF -DZLIB_LIBRARY=/usr/lib/libz.a ..
 +  $ make
 +  # make install 
 +
 +A finir:
 +<code>
 +FLAGS1="-DCMAKE_BUILD_TYPE=Release -DCURL_ZLIB=ON -DBUILD_CURL_EXE=OFF"
 +FLAGS1="$FLAGS1 -DBUILD_CURL_TESTS=OFF -DCURL_STATICLIB=ON -DHTTP_ONLY=ON"
 +FLAGS1="$FLAGS1 -DENABLE_IPV6=ON -DCMAKE_USE_OPENSSL=ON -DCMAKE_USE_LIBSSH2=OFF"
 +
 +FLAGS2="-DOPENSSL_SSL_LIBRARIES=/usr/lib/i386-linux-gnu/libssl.a"
 +FLAGS2="$FLAGS2 -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/i386-linux-gnu/libcrypto.a"
 +FLAGS2="$FLAGS2 -DZLIB_LIBRARY=/usr/lib/i386-linux-gnu/libz.a"
 +
 +mkdir -p $BUILDPREFIX"i386" && cd $BUILDPREFIX"i386"
 +
 +echo "Compiling i386 libcurl..."
 +schroot --chroot $CHROOTPREFIX"i386" -- cmake .. $FLAGS1 $FLAGS2
 +schroot --chroot $CHROOTPREFIX"i386" -- make -j4 install
 +
 +RET=$?
 +
 +if [ $RET -ne 0 ]
 +then
 +  echo "Error $RET while compiling i386 libcurl"
 +  exit 1
 +fi
 +
 +cd ..
 +
 +FLAGS2="-DOPENSSL_SSL_LIBRARIES=/usr/lib/x86_64-linux-gnu/libssl.a"
 +FLAGS2="$FLAGS2 -DOPENSSL_CRYPTO_LIBRARIES=/usr/lib/x86_64-linux-gnu/libcrypto.a"
 +FLAGS2="$FLAGS2 -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.a"
 +
 +mkdir -p $BUILDPREFIX"amd64" && cd $BUILDPREFIX"amd64"
 +
 +echo "Compiling amd64 libcurl..."
 +schroot --chroot $CHROOTPREFIX"amd64" -- cmake .. $FLAGS1 $FLAGS2
 +schroot --chroot $CHROOTPREFIX"amd64" -- make -j4 install
 +
 +RET=$?
 +
 +if [ $RET -ne 0 ]
 +then
 +  echo "Error $RET while compiling amd64 libcurl"
 +  exit 1
 +fi
 +</code>
 +
 +====libxml2 (à finir)===
 +
 +
 +<code>
 +FLAGS="--enable-static --enable-shared=no --without-ftp --without-lzma --without-zlib"
 +echo "Compiling i386 libxml2..."
 +
 +cd $LIBXML2DIR
 +
 +mkdir -p $BUILDPREFIX"i386" && cd $BUILDPREFIX"i386"
 +
 +schroot --chroot $CHROOTPREFIX"i386" -- ../autogen.sh
 +schroot --chroot $CHROOTPREFIX"i386" -- ../configure $FLAGS
 +schroot --chroot $CHROOTPREFIX"i386" -- make -j4 install
 +
 +echo "Compiling amd64 libxml2..."
 +
 +cd $LIBXML2DIR
 +
 +mkdir -p $BUILDPREFIX"amd64" && cd $BUILDPREFIX"amd64"
 +
 +schroot --chroot $CHROOTPREFIX"amd64" -- ../autogen.sh
 +schroot --chroot $CHROOTPREFIX"amd64" -- ../configure $FLAGS
 +schroot --chroot $CHROOTPREFIX"amd64" -- make -j4 install
 +  </code>
  
 ===== Telecharger les sources ===== ===== Telecharger les sources =====
  
-Pour telecharger les sources on utilise mercurial. On clone les sources depuis un depot, donc d'un stockage central des sources. Pour faire ca, ouvrez un terminal et naviguez dans le dossier ou vous voulez avoir les source avec <code>cd /chemin/vers/le/dossier/pour/les/sources/</code>+Pour telecharger les sources on utilise git. On clone les sources depuis un depot, donc d'un stockage central des sources. Pour faire ca, ouvrez un terminal et naviguez dans le dossier ou vous voulez avoir les source avec <code>cd /chemin/vers/le/dossier/pour/les/sources/</code>
  
 La telecharge est effectué par la commande suivante: (ca peu durée quelques temps, donc soiez patient :D) La telecharge est effectué par la commande suivante: (ca peu durée quelques temps, donc soiez patient :D)
 <code> <code>
-git clone https://git.khaganat.net/khaganat/khanat-code.git+git clone https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-opennel-code.git
 </code> </code>
- 
 ===== Compilation ===== ===== Compilation =====
  
 Pour la compilation, naviguez dans le dossier 'code' de votre dossier de source. Si vous n'avez pas changé l'endroit depuis la dernière commande, vous pouvez faire: Pour la compilation, naviguez dans le dossier 'code' de votre dossier de source. Si vous n'avez pas changé l'endroit depuis la dernière commande, vous pouvez faire:
  
-<code> +<code bash
-cd khaganat/code/+cd khanat-code/code/
 </code> </code>
  
 Créez un dossier build et naviguez dedans: Créez un dossier build et naviguez dedans:
  
-<code>+<code bash>
 mkdir build mkdir build
 cd build cd build
Ligne 43: Ligne 139:
 Pour la compilation, il y a trois commandes qui doivent être exécutée l'un après l'autre: Pour la compilation, il y a trois commandes qui doivent être exécutée l'un après l'autre:
  
-<code> +<code bash
-cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFINAL_VERSION=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_LUA52=ON ..+cmake  -DFINAL_VERSION=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_LUA53=ON ..
 make make
 sudo make install sudo make install
Ligne 69: Ligne 165:
 |-DWITH_LUA52=ON                     |pour forcer un autre Lua (par ce qu'on a une autre version de luabind) mettre soit -DWITH_LUA51=ON (pour une version plus ancienne) ou -DWITH_LUA53=ON (pour une version plus neuve)  | |-DWITH_LUA52=ON                     |pour forcer un autre Lua (par ce qu'on a une autre version de luabind) mettre soit -DWITH_LUA51=ON (pour une version plus ancienne) ou -DWITH_LUA53=ON (pour une version plus neuve)  |
  
 +===== Compilation debug=====
  
 +Pour la compilation, naviguez dans le dossier 'code' de votre dossier de source. Si vous n'avez pas changé l'endroit depuis la dernière commande, vous pouvez faire:
 +
 +<code>
 +cd khanat-code/code/
 +</code>
 +
 +Créez un dossier build et naviguez dedans:
 +
 +<code>
 +mkdir build
 +cd build
 +</code>
 +
 +Pour la compilation, il y a trois commandes qui doivent être exécutée l'un après l'autre:
 +
 +<code>
 +cmake  -DWITH_SYMBOLS=ON -DFINAL_VERSION=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_LUA52=ON ..
 +make
 +sudo make install
 +</code>
 +
 +N'oubliez pas les deux points a la fin de la commande cmake!
 +
 +Après le 'sudo make install', l'exécutable sera dans le dossier bin de votre dossier build. Copier le dans une installation  Khanat pour remplacer l'exécutable. Vous avez réussi à compiler un client debug!
 +
 +<code>
 +sudo apt-get install gdb
 +</code>
 +
 +Lancer la commande dans votre dossier khanat
 +<code>
 +./gdb khanat_client
 +run
 +</code>
  
-{{tag>Tag_a_ajouter}}+{{tag>client tutoriel informatique client_rc_obsolete}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/compilation_d_un_client_linux.1499185290.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact