HOWTO

Outils de développement

Construire un cross-compilateur Atari pour Linux

gcc 3.3.3 et binutils 2.13.2.1

Ce texte tente d'expliquer la marche à suivre pour construire les outils nécessaires pour pouvoir cross-compiler des logiciels m68k-atari-mint sur une machine différente.
J'ai utilisé les patches disponibles sur le site de Sparemint, ainsi que les archives originales des outils (gcc et binutils).
Ce sont ces étapes que j'ai suivi pour construire ces utilitaires. La puissance des machines actuelles étant bien supérieure aux Atari, le temps de compilation de gros logiciels est considérablement réduit, alors autant les utiliser.
Note: il est nécessaire d'avoir la mintlib déjà compilée, soit à partir de la version standard, ou bien construite à partir d'un autre cross-compilateur. Il semble qu'on ne puisse pas construire de cross-compilateur uniquement à partir de fichiers sources. Si quelqu'un a réussi, j'aimerais connaître la marche à suivre.

Etape 1: Avoir les archives nécessaires

Le tout sera installé dans un répertoire utilisateur, pour pouvoir compiler le tout sans être root. Ainsi, pour moi, les outils compilés seront installés dans /home/patrice/cross-tools. Vous pouvez choisir un autre répertoire si vous le désirez. Il faut simplement veiller à ne pas mélanger les outils pour votre machine hôte avec ceux de la cross-compilation.

On crée un répertoire cross-build (répertoire de travail où l'on va compiler). On fait cd /home/patrice/cross-build pour se placer dedans, et on commence.

Etape 2: Compiler les binutils (pour l'hôte et pour la cible mint) (sources: 60Mb)

tar xvzf binutils-2.13.2.1.tar.gz

Etape 3: Compiler/installer les binutils pour l'hôte (compilation: 9Mb)

Cette étape est optionnelle, mais vous devez la faire si vos binutils sont trop vieux, ou si vous ne les avez pas. Mais je recommande tout de même de le faire. Ainsi, si cette étape ne fonctionne pas, il se pourrait que vous ne puissiez par faire le reste.

mkdir binutils-2.13.2.1-host
cd binutils-2.13.2.1-host
../binutils-2.13.2.1/configure
  --prefix=/home/patrice/cross-tools
make
make install
cd ..
rm -rf binutils-2.13.2.1-host

Etape 4: Ajouter le nouveau PATH

A partir de maintenant, nous devons utiliser les outils que nous allons compiler. Il faut donc ajouter au PATH le chemin de nos nouveaux outils. On fait de même pour les librairies (pour l'hôte).

export PATH=/home/patrice/cross-tools/bin:$PATH
export LD_LIBRARY_PATH=/home/patrice/cross-tools/lib:$LD_LIBRARY_PATH

Etape 5: Compiler et installer les binutils pour m68k-atari-mint (sources: 60Mo, compilation: 9 Mo)

cd binutils-2.13.2.1
gunzip -c ../binutils-2.13.2.1-mint-2.diff.gz | patch -p1
cd ..

mkdir binutils-2.13.2.1-mint
cd binutils-2.13.2.1-mint
../binutils-2.13.2.1/configure
  --prefix=/home/patrice/cross-tools
  --target=m68k-atari-mint
make
make install
cd ..
rm -rf binutils-2.13.2.1-mint

Etape 6: Compiler et installer gcc pour l'hôte (sources: 148Mo, compilation: 93Mo)

tar xvzf gcc-3.3.3.tar.gz

mkdir gcc-3.3.3-host
cd gcc-3.3.3-host
../gcc-3.3.3/configure
  --prefix=/home/patrice/cross-tools
  --enable-languages=c++
make
make install
cd ..
rm -rf gcc-3.3.3-host

Etape 7: Patcher gcc pour MiNT

cd gcc-3.3.3
gunzip -c ../gcc-3.3.3-mint.diff.gz | patch -p1
cd ..

Etape 8: Compiler gcc pour MiNT (compilation: 66Mo)

tar xvzf mintlib-devel-0.57.4.tar.gz

mkdir gcc-3.3.3-mint
cd gcc-3.3.3-mint
../gcc-3.3.3/configure
  --prefix=/home/patrice/cross-tools
  --target=m68k-atari-mint
  --enable-languages=c++
  --with-sysroot=/chemin/absolu/vers/mintlib-devel-0.57.4
make
make install
cd ..

Note: Vous devez donner le chemin absolu vers le répertoire mintlib-devel pour que gcc le trouve pendant la compilation. Ce répertoire contient un répertoire usr qui contient les sous répertoires 'lib' et 'include'. Ceux-ci contiennent les librairies et les headers de la mintlib. De plus, il doit y avoir les versions debug des librairies. ('libc_g.a' par exemple).

Etape 9: Tester la cross-compilation

Autres outils nécessaires, disponibles sur Sparemint, à installer:

Nouveautés
Réalisations personnelles
Patches
Portages
Projets
HOW-TOs
Outils de développement
Créer un patch pour les binutils (Anglais, binutils 2.16.1)
Créer un patch pour gcc (Anglais, gcc 3.3.6, seulement pour le langage C)
Créer un patch pour gcc (Anglais, gcc 3.3.6, langage C++)
Divers

HTML 4.0 valide ! La montée de Pikes Peak Non aux brevets logiciels Nectarine demoscene radio
Ecrivez-moi à pmandin(at)caramail(point)com
(Adresse modifiée pour protéger des spammers)