Comment porter un programme UNIX ?
Un article de GuruMed.
Sommaire |
Les bases des portages de logiciels UNIX
Par Emmanuel Lesueur
Les informations suivantes ont été postées par Emmanuel Lesueur sur le forum fr.comp.sys.amiga. Nous le remercions puisqu'il nous a donné son accord pour que nous le fassions paraître sur cette page. Alors vous savez ce qu'il vous reste à faire : trois, deux, un ... portez !
Il n'est pas facile de rédiger une documentation la-dessus : soit tout marche tout seul, et taper deux lignes suffisent (pas rare), soit il y a des problèmes, et là ça se règle au cas par cas.
L'environnement
Il est indispensable d'avoir un environnement GeekGadgets (NDR: GCC et tout ses outils, voir notre article) assez complet, constitué avec les archives situées sur : ftp://ftp.ninemoons.com/pub/geekgadgets/amiga/m68k/snapshots/current/
Sont indispensables:
- ixemul-#?
- gcc/egcs
- binutils
- make
- pdksh
- sh-utils
- file-utils
- sed
- grep
- textutils
Archives conseillées, souvent utilisées:
- gawk
- diffutils
- patch
- perl
- findutils
- flex
- bison
- groff
- texinfo
- automake
- autoconf
Et pour compiler des applications X11 (NDR: applications autres qu'en mode texte), il faut les diverses archives X-#?.
La procédure
Voici les points indispensables à respecter, même s'ils peuvent sembler parfois évidents :
- Récuperer l'archive des sources de ce qu'on veut compiler.
- Lire les README/INSTALL, ... qu'il peut y avoir dedans.
- Lancer un shell 'sh' et se placer dans le répertoire principal de l'archive source.
- Taper './configure --help' pour voir la liste des options de configuration. Il y en a en général beaucoup, mais la plupart est standard et en principe il n'y a pas trop lieu d'y toucher.
Seule exception: --prefix pour spécifier l'endroit où on voudra installer l'executable. Les options spécifiques au logiciel qu'on veut compiler, s'il y en a, sont à la fin de la ligne. - Lancer la configuration: par exemple './configure --prefix=/gg'. Ça dure en général un bout de temps, nos Amigas n'étant pas très rapides. En principe, cette opération n'échoue pas, à moins qu'il ne manque un package GG de base.
Une fois l'opération terminée, des Makefiles et eventuellement d'autres fichiers (config.h, ...) ont été créés. - Lancer la compilation: 'make'
C'est là le point délicat. Si tout ce passe bien, on obtient l'exécutable. S'il y a des erreurs, c'est à gérer au cas par cas.
Les erreurs les plus fréquentes sont un GG manquant (flex, ...), une fonction manquante dans les includes, ou une fonction manquante lors du linkage. - On installe, par 'make install' en général.
Quelques commentaires
- Compiler une application X11 est en général plus compliqué, car
suivant les toolkits utilisés, on peut facilement tomber sur des bibliothèques qui ne sont pas dans GG. Il faut alors les recompiler soi-même.
- Les applications X11 n'utilisent pas toujours 'configure'. Parfois
on tombe sur 'imake'. Ça existe aussi sur Amiga, et en principe, ça marche. Ça fait pas mal de temps que je ne l'ai pas rencontré cependant.
- On peut compiler dans un autre répertoire que celui contenant
les sources. C'est même recommandé, car ça permet d'avoir plusieurs répertoires de compilation, avec des options différentes. Supposons qu'on ait les sources dans dh0:sources, et qu'on veuille compiler dans dh0:build. On remplace l'étape 5 par:
cd /dh0/build /dh0/sources/configure --prefix=/gg ...autres options...
- Il vaut mieux spécifier les chemins d'accès au format Unix au
lieu du format Amiga (/dh0 au lieu de dh0:), que ce soit dans les options de configure, que dans les makefiles ou autre.
