|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Note : traduction par David Brunet. Cliquer sur les images permet soit de les agrandir soit d'accéder au site en question. Introduction ![]() Bien sûr, si vous écrivez vos applications pour AmigaOS 4 et les compilez de manière croisée, alors votre choix n'a pas d'importance : MSYS2 ou Cygwin. Mais si vous faites un portage à partir d'Unix, et que les projets sont assez importants et ont besoin de CMake, Autotools, et autres, alors vous aurez besoin de résoudre les séparateurs de volumes/répertoires. Pour cette raison, et parce que cela semble être un sujet d'intérêt, j'ai écrit ce petit guide qui, je l'espère, sera utile aux développeurs qui veulent faire du travail de compilation croisée, mais qui ne veulent pas perdre leur temps à comprendre comment tout installer. Préparez-vous à compiler ![]() Après avoir installé Cygwin, comme dans le cas de MSYS2, nous utiliserons le dernier dépôt adtools où Sebastian "sba1" Bauer maintient les récents GCC et Binutils. Au moment de l'écriture de cet article, il s'agit de Binutils 2.23.2 et de GCC 8.3.0. Cette fois, il sera compilé avec la gestion LTO par défaut (cette gestion par défaut de LTO fut changée plus tard dans le dépôt adtools). Pour les compilateurs croisés, j'utilise un ordinateur portable HP avec un Intel Core i5 à 2,7 GHz et Windows 10. La version de Cygwin que nous utiliserons est native x64, mais la procédure sera probablement la même pour la version x86, c'est simplement le binaire d'installation qui sera différent. Donc, tout d'abord, vous devez récupérer l'installateur sur cygwin.com/setup-x86_64.exe et exécutons-le. ![]() ![]() Une fois l'installation terminée (assez rapidement, toute l'installation ne fait que 115 Mo à ce stade), il vous suffit d'aller dans le répertoire où vous avez choisi de l'installer et de lancer "Cygwin.bat" : À ce stade, vous n'avez bien sûr pas GCC dont vous avez besoin pour construire un compilateur croisé, ou tout ce dont adtools peut avoir besoin, ou toute sorte d'outils/analyseurs/langages dont vous pouvez avoir besoin lorsque vous faites un travail de portage. Donc, installons-le. La mise à jour des dépendances de Cygwin (quand vous avez besoin d'un Autoconf ou CMake plus récents, ou de n'importe quoi d'autre, ce qui arrive de temps en temps) n'est pas aussi intuitive qu'on pourrait l'espérer, mais une fois que vous y serez, tout ce passera bien. Pour mettre à jour, ne lancez pas "apt-get" ou "yum" ou quoi que ce soit d'autre depuis la console de Cygwin. Au lieu de cela, exécutez de nouveau votre installateur : cygwin.com/setup-x86_64.exe. Après, il y a les passages habituels Suivant/Suivant, le choix du miroir, etc. Ensuite, une fois que la fenêtre où vous devez choisir les paquets à installer apparaît, choisissez dans la "View" (Vue - placée à gauche) l'option "Full" (Complet) et tapez les paquets que vous devez installer dans le champ de recherche. Par exemple, si vous tapez "GCC", il y en aura plusieurs dans la liste, choisissez "gcc-core", cliquez dans la liste déroulante pour choisir une version, puis retirez du champ de recherche votre "GCC", et tapez le nouveau nom des paquets. A la fin, vous devriez choisir les éléments suivants :
Regardez sur l'image ci-dessous à quoi tout cela devrait ressembler, avec quelles versions : Cliquez ensuite sur "Next" (Suivant), on vous indiquera qu'il faut plus de dépendances (il y en aura beaucoup) pour poursuivre la configuration, donc cliquez à nouveau sur "Next" (Suivant). Une fois que notre installation de mise à jour est terminée, allez dans la console de Cygwin, tapez "gcc -v" pour voir qu'il est bien installé et tapez quelques simples lignes de test (comme sur la capture d'écran ci-dessous) afin de vérifier que le GCC de Cygwin fonctionne bien. Maintenant, il est temps d'installer adtools (notre compilateur croisé) avec le dernier SDK, et toutes les dépendances nécessaires pour le construire correctement. Mais tout d'abord, vous devez définir pour git certains paramètres magiques sans lesquels vous pourrez rencontrer quelques problèmes avec le processus de construction :
Après cela, vous devez faire un clone du dépôt adtools et devez réaliser quelques autres préparatifs. Il suffit de copier/coller ces lignes :
Attention, une des dernières lignes avec la commande "clone" prendra du temps, cela dépend de la vitesse de votre connexion Internet. La taille du répertoire "adtools" après la commande "clone" sera d'environ 1 Go. Les deux commandes suivantes appliquent les correctifs spécifiques à AmigaOS 4 pour Binutils et GCC 8, elles se font rapidement. Après cela, tout ce dont vous avez besoin depuis le dépôt adtools est téléchargé. A présent, il faut le construire correctement avec le dernier SDK. Vous devez installer également "lhasa". Il s'agit de l'archiveur/désarchiveur Lha sur Unix, et nous en avons besoin pour que les scripts adtools soient en mesure de décompresser les fichiers téléchargés depuis le SDK du serveur de Hyperion.
Ce n'est pas tout. Dans les scripts de construction actuels d'adtools, il y a un petit problème : il ne télécharge pas le dernier SDK pour une raison quelconque, il télécharge la version 53.24, alors que notre SDK public actuel est en version 53.30. Il faut donc corriger cela nous-mêmes : dans "/amiga/adtools/native-build/makefile", à la ligne 39, il faut changer cette ligne :
...par celle-ci :
Après cela, vous serez prêts à construire un compilateur croisé ! Il suffit d'aller dans le répertoire "/amiga/adtools" et de taper :
Cela prendra un certain temps. En tenant compte du fait que les PC d'aujourd'hui sont tous multicoeurs, ajoutez "-j4" à la fin de la ligne afin de faire une construction parallèle et d'accélérer les choses. Une fois ceci fait (en fonction de la vitesse de votre matériel, cela peut prendre pas mal de temps), tout ce dont vous avez besoin est juste de taper la ligne magique "export PATH=/usr/local/amiga/bin:$PATH" pour que Cygwin sache où trouver les binaires du compilateur AmigaOS 4. Note : assurez-vous d'ajouter cette ligne au fichier "/home/user/.bashrc". Ainsi, vous n'aurez plus besoin de vous en soucier, et elle sera exécutée automatiquement chaque fois que vous lancerez votre Shell Cygwin. C'est terminé ! Le temps des tests Après cette installation, testons pour voir que tout fonctionne. A partir de maintenant, dans adtools/gcc8.3.0, "lto" est activé par défaut, alors vérifions l'habituel "hello world" :
Trucs et astuces Premier truc Si vous voulez réaliser des portages depuis Unix, vous aurez besoin de savoir comment utiliser "./configure" sur le compilateur croisé pour construire les bons fichiers "makefile" pour AmigaOS 4. Habituellement, les premiers arguments devraient être :
Après cela viennent toutes les options nécessaires. Mais ces trois premiers arguments sont les plus utilisés (bien sûr, si votre système de construction est autre que x86_64, modifiez l'argument en conséquence). Deuxième truc CMake est aujourd'hui plus souvent utilisé, donc pour faire bon usage de celui-ci avec un compilateur croisé, vous pouvez toujours suivre ceci :
...puis entrer "make". Pour les choses simples, cela suffira (n'oubliez pas les ".." à la fin, ils sont nécessaires). Et comme dans le cas de "./configure", d'autres options peuvent être ajoutées. Vous pouvez également avoir besoin d'ajuster le fichier "flags.make" pour la ligne de liaison après la génération des fichiers "makefile" par CMake : il sera placé dans "build/CMakeFiles/votre_projet/flags.make". Conclusion J'espère que ce petit tutoriel sera d'une quelconque aide pour les développeurs désireux d'accélérer leurs temps de compilation et pour avoir l'avantage d'utiliser les dernières versions stables des autotools, analyseurs, systèmes de construction, etc.
|