[Résolu]Compilation du client sous Linux Ubuntu

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: [Résolu]Compilation du client sous Linux Ubuntu

Message par Ackak »

La version statique permet d'avoir les bibliothèques intégrés au binaire et donc d'éviter aux personnes n'ayant pas envie d'installer certaines bibliothèques ou ne sachant pas comment faire de lancer le jeu.

Si tu arrives à la compiler comme cela, tu dois pouvoir le compiler en statique avec le script (sauf si le script a un soucis :p)
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: [Résolu]Compilation du client sous Linux Ubuntu

Message par Ackak »

Hop une petite mise à jour du wiki suite à tes tests :
http://www.landes-eternelles.com/wiki/d ... _du_client
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Avatar de l’utilisateur
Agop
Messages : 261
Inscription : 24 juil. 2007, 02:27

Re: [Résolu]Compilation du client sous Linux Ubuntu

Message par Agop »

Si suite au passage en version Karmic Koala d'ubuntu (9.10) vous avez ce genre de message d'erreur à la compilation :

Code : Tout sélectionner

$ make -f Makefile.linux 
CC 2d_objects.o
In file included from 2d_objects.c:10:
load_gl_extensions.h:69: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglClientActiveTexture’
load_gl_extensions.h:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglLoadTransposeMatrixd’
load_gl_extensions.h:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglLoadTransposeMatrixf’
load_gl_extensions.h:79: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultTransposeMatrixd’
load_gl_extensions.h:80: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultTransposeMatrixf’
load_gl_extensions.h:81: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1d’
load_gl_extensions.h:82: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1dv’
load_gl_extensions.h:83: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1f’
load_gl_extensions.h:84: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1fv’
load_gl_extensions.h:85: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1i’
load_gl_extensions.h:86: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1iv’
load_gl_extensions.h:87: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1s’
load_gl_extensions.h:88: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord1sv’
load_gl_extensions.h:89: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2d’
load_gl_extensions.h:90: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2dv’
load_gl_extensions.h:91: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2f’
load_gl_extensions.h:92: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2fv’
load_gl_extensions.h:93: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2i’
load_gl_extensions.h:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2iv’
load_gl_extensions.h:95: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2s’
load_gl_extensions.h:96: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord2sv’
load_gl_extensions.h:97: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3d’
load_gl_extensions.h:98: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3dv’
load_gl_extensions.h:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3f’
load_gl_extensions.h:100: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3fv’
load_gl_extensions.h:101: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3i’
load_gl_extensions.h:102: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3iv’
load_gl_extensions.h:103: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3s’
load_gl_extensions.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord3sv’
load_gl_extensions.h:105: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4d’
load_gl_extensions.h:106: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4dv’
load_gl_extensions.h:107: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4f’
load_gl_extensions.h:108: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4fv’
load_gl_extensions.h:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4i’
load_gl_extensions.h:110: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4iv’
load_gl_extensions.h:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4s’
load_gl_extensions.h:112: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ELglMultiTexCoord4sv’
make: *** [2d_objects.o] Error 1
Il semblerait d'après ce qui est écrit sur le forum de la version US que cela vienne de la version mesa 7.6 qui bug un peu avec GL

Pour y remédier il y un hack de barbare (c'est pas moi qui le dit, c'est bluap) à faire dans le fichier platform.h du dossier sources client.

Il faut donc éditer le fichier platform.h, et à la ligne 78, remplacer :

Code : Tout sélectionner

#else
 #define GL_GLEXT_LEGACY
 #include <GL/gl.h>
 #include <GL/glu.h>
 #include "glext.h"
#endif
par :

Code : Tout sélectionner

#else
  #define GL_GLEXT_LEGACY
  #include <GL/gl.h>
  // #undef is a temporary fix for new gl.h files
  // until I find out how to do it correctly....
  #undef GL_VERSION_1_2
  #undef GL_VERSION_1_3
  #include <GL/glu.h>
  #include "glext.h"
#endif
Attention en faisant cette manip, la compilation fonctionne mais j'ai quelques bugs graphiques (dessins 2d disparaissant ou changés dans l'inventaire et qui font parfois crasher e client en cliquant dessus)

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: [Résolu]Compilation du client sous Linux Ubuntu

Message par Ackak »

Le fichier glext.h a été modifié sur le SVN, merci de voir si cela fonctionne maintenant correctement. ;)
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Avatar de l’utilisateur
Agop
Messages : 261
Inscription : 24 juil. 2007, 02:27

Re: [Résolu]Compilation du client sous Linux Ubuntu

Message par Agop »

La compilation fonctionne et je n'ai pas noté de bug pour le moment.

Bravo Ackak et merci.

Avatar de l’utilisateur
TonyFlow
Messages : 985
Inscription : 02 mai 2007, 09:26
Localisation : Normandie / Pierre-Blanche
Contact :

Re: [Résolu]Compilation du client sous Ubuntu (et Fedora 12)

Message par TonyFlow »

Pour info, venant de mettre à jour ma Fedora (de 10 à 12) j'ai eu le même soucis de compilation (avec mesa en version 7.7).
Je précise qu'il ne s'agissait pas du client SVN mais de l'officiel 1.6.0.1 pour lequel je regénérais un paquet RPM. En tout cas, j'ai opté pour une autre résolution du problème, toujours en patchant le fichier platform.h mais pour lui dire d'utiliser plutot le fichier glext.h du système.
bluap a écrit :The reason we have a local copy of glext.h is because the version that ships with some OS are very old indeed and do not work. The use of a local copy is a documented work around that has worked for quite some time.
Vu l'explication sur l'usage d'un fichier glext.h fournis avec les sources du client, m'en passer au profit de celui de l'OS me semble totalement justifier dans mon cas où je compile pour un OS en particulier, donc avec la garantie supposée d'une version valide en place ;)

En tout cas, mon paquet s'est bien compilé ainsi. C'est installé et jusqu'à preuve du contraire ça marche...
Patch utilisé pour la génération du rpm du client 1.6.0.1 pour FC12
Just in case you never knew I miss you Slim, I love you too Oh! See my heart, it's black and blue When I die I will find you... My lovely man
But when you walk that walk and talk that talk You do it oh so well She's stone cold bush
Let me stand next to your Fire, my Pretty Little Ditty

Répondre