SmartEiffel : Compilateur Eiffel GNU

SmartEiffel est un compilateur libre pour Eiffel, un langage purement orienté objet.

Compilation de SmartEiffel

Premièrement, vous aurez besoin d'installer une dépendance :

sudo apt-get install build-essential freeglut3-dev

Vous devez ensuite aller chercher l'archive source de SmartEiffel sur le site de SmartEiffel en sélectionnant le fichier "smarteiffel.tgz" sous "Nightly Snapshot" (La date de l'archive au moment où j'écris est 13/01/2009).

La version 2.3 (SmartEiffel-2-3.tgz) rencontre des problèmes avec la version 4.6 de gcc utilisée par Ubuntu 11.10 (oneiric) (problèmes d'optimisation avec l'option -O2).

Un tutoriel pour y remédier existe : https://administratosphere.wordpress.com/2009/07/17/installing-smarteiffel-in-ubuntu-jaunty/

Ouvrez un terminal (Applications→Accessoires→Terminal), allez dans le répertoire dans lequel vous avez téléchargé l'archive et décompressez-la.

cd Répertoire_Contenant_l_archive
tar xvf smarteiffel.tgz

Rendez-vous dans le répertoire de SmartEiffel.

cd SmartEiffel

Tapez la commande de configuration :

./configure
Il se peut qu'il y ait des erreurs à la fin du résultat, comme par exemple :
***********/!\ Warning /!\**************
This configure file is just for information !
It will analyze your system and warn you for missing dependences librairies.
It does not generate makefile or any other files.
***********/!\ Warning /!\**************
 
Headers :
vfork.h not found, please install it if you want build SmartEiffel correctly
 
Functions :
clock_gettime not found, please install it if you want build SmartEiffel correctly
 
#####################################
 
If they're no headers or functions which aren't found you can install SmartEiffel by typing make or make interactive.
 
Then type VerifyAndStripTools to complete the installation

Pas de panique, certains éléments ne sont pas indispensables au bon fonctionnement de la compilation. Cependant, si le résultat affiche plus d'erreurs que ci-dessus, c'est peut-être à cause de paquets manquants.

Lancez la compilation :

make

Après quelques minutes, il devrait s'afficher :

SmartEiffel Release 2.4 (svn snaphsot 9308) [????]

Generating configuration in /home/charly/.serc
    OK

Using the existing compile_to_c as bootstrap compiler

Building the compiler
compile.c: In function ‘basic_exec_posix_put_character’:-x c compile.c         
compile.c:446:8: attention : ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
    OK

Building large tools (using the SmartEiffel parser and AST)
    OK

Building helper tools
    OK

Generating API docs
    OK

Done.

Installation de SmartEiffel

La procédure qui va suivre a pour but d'installer le compilateur dans votre dossier personnel (pour les comptes ne disposant pas de privilèges administrateur).

Dans un premier temps, créez un dossier .local/bin.

mkdir ~/.local/bin

Copiez les fichiers exécutables vers .local/bin en remplaçant "Chemin_vers_SmartEiffel".

cp -R Chemin_vers_SmartEiffel/bin/* ~/.local/bin

Modifiez le fichier .bashrc de votre dossier personnel :

gedit ~/.bashrc

Ajoutez-y les lignes suivantes à la fin du fichier :

# Les exécutables/scripts dans /home/username/.local/bin seront accessibles par ligne de commande
export PATH=$PATH:$HOME/.local/bin

Enfin, fermez les fenêtres de terminal pour que les changements soient effectués.

Vous pourrez désormais compiler vos fichiers *.e grâce à la commande :

compile -o Mon_executable Mon_fichier.e