Bonjour à tous,
je vais essayer de partager mon expérience dans le portage pour MorphOS :-)
Tout d'abord, il faut installer le SDK sur son système, il est dispo sur le site officiel.
Ensuite, il faut mettre à jour son SDK en installant des librairies (.a) et les in cludes (.h) supplémentaires.
SDL2, OpenGL, GLUT sont par exemple des librairies de développement (nommé dépendances) que les logiciels ou jeux peuvent avoir besoin et qu'il faut installer dans le SDK pour que le compilateur puisse générer un fichier exécutable compatible MorphOS.
Ces fichiers sont disponibles dans les archives TinyGL (qui contient également la librairie GLUT) et SDL2 qui ont été porté respectivement par bigfoot et BeWorld.
Il en existe bien sûr des dixaines d'autres qui sont disponibles ici :
https://www.morphos-storage.net/?page=Development/Library
Ces libraires et ces in cludes s'installent normalement dans les chemins suivants :
gg:user/local/lib pour les libraries (.a)
gg:user/local/!!!!!!!!include!!!!!!!!s/ pour les !!!!!!!!!!include!!!!!!!!!!s liés à la librairie
Ne pas tenir compte des !
Ensuite, il faut chercher un projet (jeu, commande ou logiciel) sur Github, SourceForge ou autre qui soit portable à l'instant T, c'est à dire que les dépendances disponibles.
Dans tous mes projets, j'ai normalement mis une archive nommée Sources.lha qui contient les sources et le Makefile.
Le Makefile est un script contenant toutes les informations nécessaires au compilateur pour générer le fichier exécutable.
Le ligne d'exécution d'un script Makefile est la suivante :
cd chemin-du-projet
make
Perso, j'ai réalisé un mimetype qui exécute le Makefile si on clique deux fois dessus (plus simple je trouve).
Si votre projet contient un fichier CMakeLists.txt à la racine (normalement)
il faut utiliser la commande suivante:
cd chemin-du-projet
cmake -DCMAKE_CXX_FLAGS="-noixemul"
..
A noter que nous disposons pour le moment que de la commande cmake version 3.9.6.
Certains scripts demandent des versions supérieurs, vous pouvez essayer d'éditer le fichier CMakeLists.txt et de modifier le numéro de version
à la ligne cmake_minimum_required(VERSION x.xx.x) en mettant 3.9.6 (sur un malentendu ça peut passer).
Vous retrouverez ce 'flag' (ou drapeau) -noixemul souvent sur MorphOS (dans le script Makefile notamment).
Voici quelques explications :
Le flag -noixemul sur MorphOS sert à désactiver l'émulation UNIX (IX). Plus précisément :
Objectif principal :
Évite l'utilisation de la couche d'émulation UNIX intégrée
Permet d'accéder directement aux fonctions natives de MorphOS
Avantages :
Meilleures performances car pas de couche d'émulation
Exécutables plus petits
Accès direct aux API natives
Contexte :
Par défaut, le compilateur GCC sur MorphOS utilise une couche d'émulation pour supporter les appels système UNIX
Cette couche sert à la compatibilité avec les programmes UNIX
Mais elle n'est pas nécessaire pour les programmes natifs MorphOS
En bref, -noixemul est souvent recommandé pour les applications natives MorphOS car il améliore les performances en évitant une couche d'émulation inutile.
Le prochain post parlera plus précisément du script Makefile.
N'hésitez à me contacter sur papiosaur2 hotmail fr si vous avez des questions.
Si vous désirez me soutenir, n'hésitez pas, vous avez un lien Paypal à coté de mes projets :
https://www.morphos-storage.net/?all=1&dev=Papiosaur
Pour info, cette activité est chronophage :-)
Il faut de la patience et de la persévérance pour obtenir des résultats : pas mal de choses doivent être corrigé après avoir réaliser le "bon" Makefile, il faut tout d'abord obtenir un fichier "éxécutable", souvent des chemins sont à corriger, des soucis de couleurs, des commandes pour quitter incomplètes qui génèrent des soucis sur MorphOS en quittant, des utilisations CPU importantes qui nécessite des optimisations, etc.
Bon courage si vous êtes motivé :-)
Je remercie encore BeWorld pour son portage de SDL2 et pour son aide.
Je pose des questions à l'IA Claude pour m'aider dans mes portages. La partie sur "noixemul" a été généré par lui.
Il peut parfois apporter des solutions pertinentes mais il faut bien l'aiguiller...
Message édité par : Papiosaur / 18-02-2025 15:19