Directive de compilation


  1. Compiler sous Windows avec Visual C++

    Il existe déjà un fichier de projet pour chaque programme de la TDR (ex: pour le rpg standalone, il s'agit du fichier appli/rpg/rpg_win32/rpg_win32.dsp, de manière générale pour le programme xx, regarder dans appli/xx/xx_win32/xx_win32.dsp).

    Mais il existe aussi un workspace qui les réunit tous, il suffit donc d'ouvrir ce dernier pour compiler n'importe quel programme depuis l'editeur de mosaiques, jusqu'à la dernière version réseau du RPG. Dans l'arborescence CVS, le fichier tdr_project_win32.dsw se trouve dans le répertoire tdr_project_win32. Tous les chemins ont été enregistrés en relatif, vous ne devriez donc avoir aucun changement à faire sur les paramètres du projet...

    Je vous conseille de créer un raccourci sur le bureau vers tdr_project_win32.dsw, cela vous permettra d'ouvrir d'un clic de souris tous les projets TDR.


    Enfin, pour acceder aux executables et créer facilement des démos, j'ai crée des fichiers bat chargés de créer automatiquement un répertoire contenant la démo et ses fichiers. Ce sont les fichiers suivants: make_demo_plateforme_standalone.bat, make_demo_rpg_client.bat, make_demo_rpg_serveur.bat et make_demo_rpg_standalone.bat, disponibles dans le répertoire appli. Il n'y a plus qu'à compiler le répertoire obtenu pour pouvoir distribuer sa démo...


    Les exécutables crées par Visual C++ sont dans un sous répertoire Release ou Debug, alors que les fichiers nécessaires à l'exécution (.spr,.tle,.map,... cf liste des fichiers TDR) sont dans le répertoire juste au dessus. Si vous créez un raccourci vers l'exé (pratique pour tester des clients paramétrés differemment par exemple) pensez à mettre comme répertoire de démarrage le répertoire contenant les fichiers TDR (clic droit sur le raccourci, propriétés, puis Démarrer dans), sous peine de voir l'application s'arreter avec un magnifique "file not found".


  2. Compiler sous Windows avec Cygwin

    Cygwin est un portage d'un système Unix sous Windows. Il permet de tester une application développée sous Windows avec GCC, garantissant ainsi la compilation sous Linux...(petit bémol, aux erreurs de majuscule/minuscule près, Cygwin, tout comme Windows, ne fait pas la différence alors que Linux oui...)
    Vous pouvez télécharger Cygwin ici, c'est assez long...

    Pour compiler sous Cygwin, il faut lancer les makefile disponibles pour chaque appli. Par exemple pour le RPG, il faut se placer dans le répertoire appli/rpg et taper make. N'oubliez pas de compiler d'abord le moteur, en allant dans moteur et en tapant make et dans le répertoire outils ("packages" du moteur) en tapant make aussi, sous chacun des sous-répertoires.


    Il y a un processus particulier à savoir si vous ne vous contentez pas de recompiler nos sources et si vous rajoutez des classes. Il faut alors refaire la liste des fichiers sources de l'appli (ie quel .hxx, quel .cpp) et les dépendances (ie quel .o utiliser), ce qui est fait respectivement par les commandes make mak, suivi de make dep. Ces utilitaires utilisent des scripts perl, l'interpréteur étant dans le répertoire bin(c'est juste pour info car vous n'avez rien à toucher, le chemin vers l'interpréteur est déja correctement configuré).

    Vous n'avez aucune lib à installer car celles ci sont déjà dans l'arborescence CVS.


  3. Compiler sous Linux avec les makefile

    Le processus de compilation sous Linux est rigoureusement le même que sous Cygwin. Vous aurez peut être des erreurs de majuscule/minuscule ou des erreurs bénignes à corriger, si l'équipe n'a pas recompilé sous Linux depuis.

    Il faut par contre faire une petite modif à la main (cela devrait être changé sous peu) et changer le chemin des libs en remplacant windows par linux.
    Concrètement, vous remplaçez la ligne suivante
    LIBPATH=-L../../sdl/lib/windows -L../../fmod/lib/windows -L../../sdl_net/lib/windows -L../../sdl_net2/lib/windows
    par
    LIBPATH=-L../../sdl/lib/linux -L../../fmod/lib/linux -L../../sdl_net/lib/linux -L../../sdl_net2/lib/linux.
    Les plus fainéants d'entre vous peuvent faire un copier coller.