Cross compilation d'applications GEM et WinDom sous Linux

Par Dominique Béréziat

Introduction

Cette page décrit comment compiler des applications GEM sur une distribution linux. Cette procédure a été testé sous Fedora et sous Ubuntu. Elle doit donc s'adapter à la plupart des distributions linux existantes.

Étape 1 : installer le cross compilateur GCC

Nous utilisons le compilation gcc atari-mint en version 2.95 disponible chez SpareMint, c'est-à-dire une très vieille version mais largement suffisante pour le développement Atari. Sachez qu'il existe un portage de gcc 4 fait par Vincent Rivière pour windows et Ubuntu: je dis bravo !

Vérifiez que le compilateur est bien installé en tapant dans un terminal texte :

$ m68k-atari-mint-gcc
m68k-atari-mint-gcc: No input files

Étape 2 : installer les libraries utiles

Installation de GEMLIB

Il s'agit de la librairie qui permet d'accéder à l'interface graphique du TOS. Il nous faut installer une librairie GEM récente. La gemlib MiNT est maintenue par Arnaud Bercegeay, autant aller sur son site, récupérer la dernière version et la cross-compiler pour Atari:

wget http://arnaud.bercegeay.free.fr/gemlib/gemlib-0.43.6-src.tgz
tar xvfz gemlib-0.43.6-src.tgz
rm gemlib-0.43.6-src.tgz
cd gemlib-0.43.6/gemlib
make CROSS=yes
Retour dans le répertoire /tmp et nettoyage:
cd ../..
rm -rf gemlib-0.43.6*

Installation de LDG-DEVEL

La librarie LDG permet d'accéder à la gestion de librarie dynamique et partagée sous TOS. Pour LDG-DEVEL, j'ai réalisé un petit fork qui consiste à adapter le logiciel au couple autoconf/automake. Ce tandem permet de gérer (entre autre) la cross-compilation.
wget pequan.lip6.fr/~bereziat/softs/tos/cross-compilation/ldg-devel-2.33.tar.gz
tar xvfz ldg-devel-2.33.tar.gz
cd ldg-devel-2.33
./configure --host=m68k-atari-mint --prefix=/usr/m68k-atari-mint
make
sudo make install
# ou su && make install pour Fedora
cd ..
rm -rf ldg-devel-2.33*

Installation de WinDom

La librarie WinDom est une surcouche à Gemlib. Elle offre une API haut-niveau pour écrire facilement des programmes GEM. Suivant le même principe que pour LDG-DEVEL, on récupère un packaging maison pour automake/autotools :
wget pequan.lip6.fr/~bereziat/softs/tos/cross-compilation/windom-2.0.1.tar.gz
tar xvfz windom-2.0.1.tar.gz
cd windom-2.0.1
./configure --host=m68k-atari-mint --prefix=/usr/m68k-atari-mint
make
sudo make install
# ou su && make install pour Fedora

Étape facultative

La libraire WinDom déporte le code d'affichage des objets GEM dans des librairies LDG externes. Ceci permet à WinDom d'être skinnable. Pour bénéficier de cela, vous devriez installer le système LDG sur votre machine. Cette installation est très simple, elle consiste en un TSR à placer dans le dossier AUTO, d'un CPX, et d'un répertoire qui contient les librairies à charger (en général c'est C:\GEMSYS\LDG). Plus simplement, vous pouvez allez sur le site ldg.sf.net et récupérer l'archive. Cette dernière contient un installateur.

Lors de la compilation de WinDom, les libraires ldg sont également construites. Vous devez alors copier l'un de ces fichiers dans votre répertoire C:\GEMSYS\LDG sous le nom de userdef.ldg. Ces fichiers d'extension .ldg sont dans les sous-répertoires de windom-2.0.1/userdef. Pour changer d'aspect, on change alors la librairie userdef.ldg parmi les trois disponibles dans WinDom (il n'existe pas de mécanisme de sélection simplifié).

Pour finir, sachez que l'installation des LDG n'est pas obligatoire, mais les librairies dynamiques requises par l'application doivent alors être placé dans le répertoire courant.

Une fois les libraries récuperées, on peut effacer le répertoire de compilation.
cd ..
rm -rf windom-2.0.1*

Installation de DFRM

DFRM est une extension de la librairie WinDom. Elle vous permet de créer des formulaires GEM (et de les gérer) sans utiliser de fichier ressource. La mise en oeuvre est très similaire à GTK. Là encore, toujours le même principe d'installation.
wget pequan.lip6.fr/~bereziat/softs/tos/cross-compilation/dfrm-0.4.4.tar.gz
tar xvfz dfrm-0.4.4.tar.gz
cd dfrm-0.4.4
./configure --host=m68k-atari-mint --prefix=/usr/m68k-atari-mint
make
sudo make install
# ou su && make install (sur Fedora)
cd ..
rm -rf dfrm-0.4.4*

Étape 4 : tester !

Installer Aranym

Aranym est une émulation d'un falcon 040, c'est-à-dire d'une machine qui n'a jamais existé ! Trop fort non ?

Installer myAES pour Aranym

myAES est un remplacement de l'AES (composante interface graphique du GEM). Elle est réactive en toujours maintenue par Olivier Landemarre son initiateur et son principal auteur. La procédure est décrite dans cette page.

Installer un terminal texte pour MyAES

Cette étape vous permet d'installer un terminal texte dans myAES pour lancer les programmes TOS (ou GEM).

Dans la page d'installation de myAES, récupérez et lancez le script d'installation de toswin2 pour Afros.

Final: "Hello world" dans une boîte d'alerte

cat > hello.c <<EOF
#include <gem.h>
int main( void) {
	appl_init();
	form_alert( 1, "[1][Hello World!][OK]");
	appl_exit();
	return 0;
}
EOF
Compilation : depuis un terminal texte linux :
m68k-atari-mint-gcc hello.c -o hello.prg -lgem
Exécution : depuis le bureau GEM ou dans un terminal texte TosWin :
./hello.prg

Historique de cette page

Home
Resume
Research
Publications
Teaching
Resources


Introduction
Le cross compilo
Les libraries
Tester