Depuis Mac OS X et sa base Unix, beaucoup d'émulateurs ont tiré parti de ce système et on trouve de plus en plus de portages pour notre plateforme qui, à l'instar de Linux, ne sont livrés qu'au format source prêt à être compilés. Ceci dit, les utilisateurs de Mac ne sont pas tous experts en ce qui concerne la ligne de commande, habitués pour la plupart à être guidés par une interface graphique moins austère qu'un terminal.
Ceci dit, la compilation de nombre de ces émulateurs est bien moins complexe qu'il n'y paraît pour qui prend la peine de s'attarder un peu à lire les fichiers associés aux sources.
Pour vous le démontrer, nous allons prendre un cas des plus typiques, l'excellent émulateurs de bornes d'arcade MAME, que nous allons tenter de compiler sur un iMac sous 10.5 à l'aide, entre autre, des "Developer Tools" fraîchement installés.
Si ce dossier n'est pas présent à la racine de votre disque dur, c'est que les utilitaires requis ne sont pas installés. Il vous faudra le faire depuis votre DVD d'installation grâce au paquet correspondant aux "Developer Tools" ou bien télécharger l'installateur depuis le site "developer" d'Apple.
Une fois réalisé et les sources de l'émulateur voulu téléchargées il ne nous reste plus qu'à se mettre à la tâche et dans un premier temps, ouvrir le terminal et se placer dans le répertoire où se trouve le fichier "makefile". Pour rappel, une astuce consiste à taper "cd" suivi d'un espace dans le terminal puis de glisser/déposer le dossier dedans. Le chemin s'inscrit alors et il n'y a plus qu'à valider par la touche entrée. Il est aussi à noter qu'il vaut mieux avoir des chemins sans espace ou caractère spécial, car cela peut empêcher le bon fonctionnement des prochaines étapes.
Revenons à ce fichier makefile qui n'est rien d'autre qu'un simple fichier texte mais décrivant tout ce que votre ordinateur devra réaliser afin de créer l'application tant désirée. Il est donc très important de ne pas modifier ce fichier sans avoir étudié les différentes options possibles. Ainsi certaines sont mises en commentaires grâce au caractère dièse (#) inscrit en début de ligne. Certaines permettent d'optimiser le code, d'autre d'avoir des informations de debug etc.
Par exemple, reprenons le makefile de Mame dans l'image ci-dessus. "ARCHOPTS" est une option commentée. Elle ne sera pas prise en compte lors de la compilation. Pour qu'elle le soit, il faut supprimer le dièse en début de ligne et inscrire après le signe égal, la valeur désirée. Dans le cas actuel, si je rajoute la valeur "-mcpu=G4", Mame sera optimisé pour les G4 mais si j'inscris "-march=pentium-m -msse3", l'émulateur le sera pour les Intel Core 2. Vous pouvez ainsi créer un émulateur répondant au mieux aux qualités intrinsèques de votre machine, par exemple en ne la rendant compatible que pour les processeurs 64 bits.
Désormais nous sommes prêt à lancer la compilation par la commande "make". Mais dans notre cas actuel et peut-être en rencontrerez vous d'autres. Cette dernière échoue. La plupart du temps, cela sera la faute d'une librairie non ou mal installée. Ici on se rend compte de suite qu'il nous manque la librairie SDL, une des plus utilisée dans le monde de l'émulation. Avant de lancer une compilation, lisez les fichiers textes fournis ou les recommandations sur le site officiel afin de connaitre les librairies à posséder et leurs versions.
L'installation de la SDL se fait comme pour la majorité des librairies. Après lecture des instructions la concernant, nous copions le dossier "SDL.framework" dans celui "Frameworks" qui se trouve dans le répertoire "Bibliothèque" à la racine de votre partition où est installé votre système. Etudiez bien les consignes car si pour la plupart des librairies cela sera aussi simple que la SDL, d'autres vous demanderons peut-être quelques commandes supplémentaires.
Une fois l'environnement de notre Mac complet, il ne reste plus qu'à compiler une fois pour toute Mame, toujours via la commande "make". C'est ainsi qu'on appel l'exécution des tâches et options décrites dans le fichier makefile. Mais si ce fichier portait un nom différent, par exemple makefile.mac pour compiler sous OSX, il faudrait alors lancer la commande de la manière suivante :
make -f makefile.mac
Vous pouvez aussi ajouter des options à votre commande "make" pour peu que le "makefile" les implémente. Ainsi, la convention veut que l'ajout de l'option "clean" efface ce qui a pu être précédemment généré et "install", installe le produit généré si besoin était. Ce genre de fonction est appelé "target" et si elles ne sont pas décrites dans les documentations fournies avec les sources, sont trouvables dans le makefile de la manières suivantes (si tant est qu'elles existent) :
<nom_target>:
<instructions>
Un makefile ne sera pas toujours fourni avec les sources. Dans ce cas, que faire ? Simplement regarder si un fichier nommé "configure" existe. il s'agit généralement d'un script shell qui se lance dans le terminal comme une application de la manière suivante :
./configure
Si ce script n'a pas les droits d'exécution, il vous faut les lui donner manuellement avant par la commande ci-dessous :
chmod 777 configure
Dans la plupart des cas, ce script de configuration vous générera automatiquement le makefile associé à votre plateforme et ainsi vous pourrez créer votre application à partir de ce dernier.
Vous voilà désormais prêt à compiler une foule d'émulateurs sur votre Mac et à l'heure actuelle de jouer avec Mame.