Obligement - L'Amiga au maximum

Vendredi 29 mars 2024 - 16:20  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Test d'AmiDevCPP 0.98
(Article écrit par David Massot - juillet 2012)


Au fil de son existence, notre plate-forme ("classique" et "nouvelle génération") s'est enrichie d'un grand nombre d'outils ou langages de développement (assembleur, C, C++, AMOS, divers BASIC...) épaulés par de nombreuses bibliothèques enrichissant celles de Commodore (Magic User Interface, Reaction pour Intuition par exemple...). Des boîtes à outils spécialisées, comme l'AmiDARK Engine (trousse de développement de jeux) ont aussi vu le jour.

Si les vieux briscards de l'Amiga ont généralement choisi leur paroisse depuis longtemps ;-), le nouveau venu ou le revenant dans le monde Amiga peut avoir du mal à choisir son langage et environnement de développement. Le but de cet article ne sera pas de réaliser un comparatif des moyens de développement sur Amiga mais de s'intéresser à AmiDevCPP qui est un environnement de développement AmigaOS sous Windows. L'IDE (Integrated Development Environment) proposé permet-il un développement confortable pour programmer en C/C++ sous AmigaOS ?

Fonctionnalités et installation

AmiDevCPP est une plate-forme de développement complète permettant de créer des projets et d'éditer des fichiers C/C++. Il permet surtout la compilation et l'édition de lien des projets précédemment créés pour générer des exécutables pour AmigaOS 68k (ou "Classic"), pour les environnements PowerPC des Amiga nouvelle génération comme MorphOS et AmigaOS 4, et enfin les environnements PowerPC et Intel x86 d'AROS.

En effet, le compilateur utilisé (ou "cross-compiler") permet de générer les programmes destinés à s'exécuter sur des environnements différents de celui de compilation. Il traduit donc le code source écrit en langage compréhensible pour un système différent.

Le couple AmiDevCPP + émulateur Amiga (comme WinUAE par exemple) semble être une solution tout à fait intéressante pour avoir un environnement de développement très évolué, surtout si l'on ne dispose en face que d'Amiga 68k sans cartes additionnelles.

AmiDevCPP est basé sur les outils suivants :
  • L'environnement de développement gratuit WxDev-Cpp utilisant la bibliothèque wxWidgets.
  • Le compilateur croisé de Jocke Birging.
  • L'environnement Cygwin qui est une collection d'outils ajoutant à Windows des fonctionnalités venues du monde Unix (awk, sed, Shell Unix...).
Cet environnement dispose aussi plus ou moins de tout le confort moderne : coloration syntaxique, complétion du code, navigateur de classes pour le C++, interface multilingue pour les allergiques à l'anglais, outil de "versionnement" comme CVS. Il peut aussi être complété avec divers paquetages (DevPaks). Par contre, le débogueur intégré ne peut bien sûr pas être utilisé puisque les programmes générés ne peuvent pas s'exécuter sur la plate-forme de développement.

L'installation est assez classique et prend environ 850 Mo sur le disque dur. A cela près qu'il ne faut pas l'installer dans une arborescence comprenant des espaces (genre "Program Files") à cause de Cygwin. Si une installation de ce dernier est présente sur le PC, elle sera aussi écrasée par celle d'AmiDevCPP comme indiqué sur le message d'avertissement suivant :

AmiDevCPP

Une fois installé, AmiDevCPP peut être lancé, l'IDE apparaît alors sans projet :

AmiDevCPP

Les fichiers intéressants sont pour la plupart installés dans <Racine>\CrossCompiler\AmiDevCpp\usr\local\amiga. Pour ce test, la compilation a été réalisée sur les PC suivants : un AMD Phenom II 4X avec Windows 7 ou un Macbook Pro core I5 avec Windows XP virtualisé. Même si la configuration minimale n'est pas indiquée, une machine plus modeste à base de Core Duo ou Dual Core pourra suffire.

Les environnements de tests ont été multiples : MorphOS 3.0 sur Power Mac G4, AmigaOS 4.1 sur Pegasos II, Sam440ep et AmigaOne G4, Amiga OS 3.x sous FS-UAE 1.3.14 ou Amiga Forever 2012.

Utilisation d'AmiDevCPP

Recompilation d'un projet exemple fourni sur le site AmiDevCPP

Le site AmiDevCPP propose une série de projets exemples couvrant un grand nombre de technologies : Zune sous AROS, Reaction, Intuition, SDL, MUI...

Attardons-nous sur le projet exemple utilisant MUI, celui-ci a de plus l'avantage d'être écrit pour être compilé pour toutes les plates-formes gérées. En effet, AmiDevCPP ne suffit pas à lui seul pour compiler des programmes sur plusieurs plates-formes, le code source doit prévoir tous les cas de figure en utilisant les directives du préprocesseur (#ifdef ...).

Le projet MUI_MultiPlatformExample peut être téléchargé sur le site, il est composé des fichiers suivants :
  • MultiPlatform.c : le fichier contenant le programme exemple qui code l'ouverture d'une fenêtre avec un bouton de fermeture dans une fonction Main.
  • MultiPlatformExample.dev : le fichier décrivant le projet de développement, il est généré par AmiDevCPP et mis à jour au fil des ajouts de fichiers et des configurations effectuées. C'est ce fichier qu'il faut indiquer lors de l'ouverture du projet.
  • MultiPlatformExample.layout.
  • Makefile.win : le fichier indiquant toutes les informations pour générer les fichiers exécutables, généré par AmiDevCPP.
AmiDevCPP

En l'état, juste après l'installation, le projet ne pourra pas se compiler tant que des DevPaks supplémentaires ne seront pas installés. Ce projet nécessite l'installation des paquetages MUI Framework pour AmigaOS 68k 3.x et AmigaOS 4 PowerPC. Cliquer sur "Package Manager" dans le menu "Outils" :

AmiDevCPP

Puis sur le bouton "Install" dans la barre d'outils et choisir le fichier DevPak associé au paquetage. Il suffit ensuite de suivre les instructions du "Wizard" d'installation :

AmiDevCPP

Le projet peut maintenant être compilé pour l'environnement choisi en appuyant sur "Ctrl+F9" ou en cliquant sur "Compiler" dans le menu "Exécuter".

Le choix du compilateur pour le projet se fait en cliquant sur "Options du projet" dans le menu "Projet". Il est préférable de se créer un "Profil" (en cliquant sur le bouton "+" vert) afin de s'y retrouver si l'on veut réaliser un projet multiplate-forme. Le réglage minimum se fait alors dans l'onglet "Compilateur".

Attention, il ne faut pas confondre les options du projet avec les réglages globaux, obtenus en cliquant sur "Options du compilateur" dans le menu "Outils". Cette fenêtre permet la personnalisation très précise des options de compilation (cross compilateur utilisé, répertoires...). La documentation annexe conseille d'ailleurs de ne pas modifier ces réglages (sauf si vous savez ce que vous faites bien entendu :-)).

AmiDevCPP

Le projet a été compilé pour les environnements suivants : AmigaOS 3.x 68k, MorphOS PowerPC, AmigaOS 4 PowerPC et AROS x86.

AmiDevCPP
Sur MorphOS 3.0

AmiDevCPP
Sur AmigaOS 3.1 68030, émulé par FS-UAE et Amiga Forever 2012
(après l'installation des bibliothèques manquantes


AmiDevCPP
Sur AmigaOS 4.1 (après modification mineure du code source pour compiler,
mise en commentaire de la ligne 52 car intuition.h n'était pas présent dans le répertoire "librairies")


AmiDevCPP
Sur AROS x86 (Icaros Desktop Live 1.4.2 sous VmWare Fusion)

AmiDevCPP
Sur AmigaSYS (AmigaOS 3.x 68040)

Pouvoir déboguer un programme est, par contre, une autre paire de manche si l'on veut faire appel à un débogueur classique. En effet, cette opération ne peut se faire que sur l'environnement final puisque, comme vu précédemment, la compilation croisée ne le permet pas. La solution la plus simple consiste alors à tracer l'exécution du programme depuis l'invite de commande ou un fichier texte en ajoutant les "printf" ou "fprintf" qu'il faut (valable en C et C++).

Sinon il faudra télécharger un programme de débogage sur l'environnement cible (gdb par exemple). Dans le cadre d'AmigaOS 3.x 68k, il faut en plus l'exécuter sur un Amiga équipé d'un processeur (ou d'une carte accélératrice) disposant d'une MMU (unité de gestion mémoire).

Il faudra aussi modifier une option de compilation du projet pour générer l'exécutable avec les informations de débogage dans l'onglet "Compilateur" et positionner à "Yes" l'option "Générer des informations de débogage" de l'éditeur de lien.

AmiDevCPP

Une fois cette option positionnée, on voit bien que l'exécutable produit est plus volumineux, ce qui indique normalement qu'il embarque bien la table des symboles. Toutefois, après avoir tenté de lancer l'exécutable avec gdb (sous AmigaSYS avec une émulation 68040 normalement complète), le débogueur persistait à ne pas trouver la table des symboles. Le manque de machines et par conséquent l'utilisation d'environnements émulés pour ce test ne permet pas réellement de conclure à un problème côté débogage.

Création d'un projet à partir de zéro

AmiDevCPP est livré avec une série d'outils "Wizard" permettant de démarrer un projet à partir de zéro. Il s'inspire légèrement des logiciels de développement comme Visual Studio ou Xcode en proposant des canevas très simples comme des projets de programmes s'exécutant en mode console, ou des projet graphiques basés sur Intuition.

Il suffit de cliquer sur "Projet" dans le sous-menu "Nouveau" du menu fichier pour accéder au "Wizard" :

AmiDevCPP

Il permet alors, par le biais des onglets présentés dans la fenêtre (un peu petite...) de choisir le type d'environnement, le type de projet (graphique ou console), le langage utilisé (C ou C++).

Après avoir choisi le répertoire du projet et avoir cliqué sur "OK", un projet simple est créé, composé d'un fichier avec les inclusions de base et quelques fonctions. Et il ne reste plus qu'à développer votre application. ;-)

Conclusion

A mon sens, AmiDevCPP est un outil intéressant car il est une très bonne base pour celles et ceux qui veulent se remettre au développement Amiga classique grâce au "confort" qu'il apporte et les exemples fournis. Il est aussi incontournable pour ceux qui ne possèdent plus de machines et qui se sont tournés vers l'émulation.

Il peut aussi remplacer une machine classique si celle-ci n'est pas très puissante (pas de MMU par exemple) mais il n'apporte pas de confort supplémentaire car il faudra toujours transférer l'exécutable sur la machine (ou un émulateur) pour tester son fonctionnement et oublier le débogueur qui est quand même un outil indispensable.

Il semble par contre ne pas s'être imposé comme environnement de référence pour les environnements Amiga nouvelle génération car il est en compétition avec les kits de développement officiels. De plus, même si le test réalisé avec des programmes simples est très concluant, le bon sens voudrait sans doute que l'on utilise d'abord les environnements directement pour éviter des incertitudes (hypothétiques) liées à la compilation croisée.

Sources
Remerciements : David Brunet et Mehdi Boulahia pour les tests sous MorphOS 3.0 et AmigaOS 4.1.

Nom : AmiDevCPP 0.98.
Développeurs : Heinz-Raphael Reinke.
Genre : environnement de développement.
Date : 2009.
Configuration minimale : PC, processeur Pentium ou Dual Core, Windows XP.
Licence : gratuiciel.

NOTE : 7/10.

Les points forts :

- Un confort de développement très appréciable (et multilingue en plus :-)).
- Facilite le développement multiplate-forme.
- Un environnement évolutif grâce aux DevPaks.
- Pas seulement un IDE, AmiDevCPP embarque certains "frameworks" Amiga (MUI...).
- Documentation et exemples fournis.
- Très stable.

Les points faibles :

- Débogage direct impossible (limitation due à la compilation croisée, ce n'est pas vraiment un défaut lié au logiciel).
- L'outil ne semble plus être mis à jour.
- Peu d'utilisateurs en cherchant sur le Web.


[Retour en haut] / [Retour aux articles]