INSTALLATION de GTKAda X11 sur MAC OS X
Transcription
INSTALLATION de GTKAda X11 sur MAC OS X
INSTALLATION de GTKAda X11 sur MAC OS X La livraison GPL 2012 ne propose pas GTKAda prêt à l'emploi pour Mac Intel. Nous pouvons soit le construire à partir des sources (voir §2 et suivants) soit le prendre prêt à l'emploi sur Source Forge (voir §1). GTKAda est inclue dans la bibliothèque XAdaLib qui comprend également Glade, GNATColl, Florist ainsi que les contributions de Dmitry A. Kazakov avec des widgets de contrôle en Ada. Les addenda de fin d'article seront ajoutés à une future version de XAdaLib sur Source Forge. 1) Installation de la bibliothèque XAdaLib Télécharger le fichier suivant sur le bureau du Mac : xadalib-gpl-2012-x11-x86_64-apple-darwin10.8.0-bin.tgz, depuis le site de Source Forge "http://sourceforge.net/projects/gnuada/files/ GNAT_GPL%20Mac%20OS%20X/2012-snow-leopard". Lancer le Terminal dans un compte administrateur et taper les commandes suivantes : $ instbase=/usr/local # ou tout autre répertoire $ mkdir -p $instbase $ cd $instbase $ tar xzf ~/Desktop/xadalib-gpl-2012-x11-x86_64-apple-darwin10.8.0-bin.tgz GTK+, GTKAda, GNATColl, Florist, Glade et AICWL s'installent à partir du répertoire : $instbase/xadalib-2012 Pour une utilisation courante, saisir aussi les commandes suivantes : $ instxada=$instbase/xadalib-2012 $ echo 'PATH=$instxada/bin:$PATH' >> ~/.profile $ echo 'PATH=$instxada/bin:$PATH' >> ~/.bashrc $ echo 'export MANPATH=$instxada/man:$MANPATH' >> ~/.profile $ echo 'export MANPATH=$instxada/man:$MANPATH' >> ~/.bashrc $ echo 'export MANPATH=$instxada/share/man:$MANPATH' >> ~/.profile $ echo 'export MANPATH=$instxada/share/man:$MANPATH' >> ~/.bashrc $ echo 'export GPR_PROJECT_PATH=$instxada/lib/gnat:$GPR_PROJECT_PATH' >> ~/.profile $ echo 'export GPR_PROJECT_PATH=$instxada/lib/gnat:$GPR_PROJECT_PATH' >> ~/.bashrc Pour une utilisation temporaire, utiliser à chaque fois les commandes suivantes : $ PATH=$instxada/bin:$PATH $ export MANPATH=$instxada/man:$MANPATH $ export MANPATH=$instxada/share/man:$MANPATH $ export GPR_PROJECT_PATH=$instxada/lib/gnat:$GPR_PROJECT_PATH Des exemples de programme Ada sont disponibles dans le répertoire $instxada/share/examples/gtkada. Une documentation au format HTML est disponible dans les répertoires $instxada/share/doc/gtkada et $instxada/share/gtk-doc/html : $ open $instxada/share/doc/gtkada/gtkada_rm/index.html $ open $instxada/share/doc/gtkada/gtkada_ug/gtkada_ug.html $ open $instxada/share/gtk-doc/html/gtk/index.html Voir l'utilisation de GTKAda avec des exemples sur Blady. 2) Construction de la bibliothèque XAdaLib avec GTKAda pour X11 basé sur GTK+ complet (en mode debug) GTKAda est la boite à outil graphique en Ada 95 basée sur GTK+ pour construire des applications portables sur la plupart des plateformes. Source http://libre.adacore.com/libre/tools/GtkAda. Les instructions suivantes ont été réalisées sur Mac OS X 10.6.8 Intel avec GNAT GPL 2012. Le compilateur Ada GNAT doit être installé auparavant (voir sur Blady). Les descriptions des différents logiciels sont traduites des description inscrite sur leur site Web correspondant. Attention à respecter chaque licence accompagnant les logiciels. Récupérer les archives suivantes depuis le site Libre d'AdaCore "http:// libre.adacore.com" à la page "Download GNAT GPL", sélectionner plateforme x86_64-linux 2012 (même si GtkAda n'a pas été intégré pour Darwin, les sources pour Linux sont utilisables) puis GtkAda 2.24.2 -> Sources : - atk-1.32.0.tar.gz 952 KB Sep 27, 2010 - cairo-1.10.2.tar.gz 23.6 MB Dec 25, 2010 - fontconfig-2.8.0.tar.gz 1.55 MB Nov 18, 2009 - freetype-2.4.1.tar.gz 1.90 MB Jul 18, 2010 - gdk-pixbuf-2.22.1.tar.gz 2.19 MB Nov 6, 2010 - gettext-0.18.1.1.tar.gz 15.1 MB Jan 3, 2011 - glib-2.28.8.tar.gz 10.1 MB Jul 19, 2011 - gtk+-2.24.5.tar.gz 26.8 MB Jul 19, 2011 - gtkada-gpl-2.24.2-src.tgz 8.86 MB May 18, 2012 - jpegsrc.v6b.tar.gz 613 KB Jun 9, 2009 - libpng-1.2.44.tar.gz 829 KB Jun 26, 2010 - pango-1.28.4.tar.gz 2.10 MB Jul 19, 2011 - pixman-0.22.2.tar.gz 616 KB Jul 19, 2011 - pkg-config-0.20.tar.gz 970 KB Jun 9, 2009 - zlib-1.2.5.tar.gz 545 KB Apr 20, 2010 Et aussi : . LibTIFF sur http://www.libtiff.org : - ftp://ftp.remotesensing.org//pub/libtiff/tiff-3.9.5.tar.gz . icon-theme depuis http://icon-theme.freedesktop.org/wiki/ HicolorTheme : - http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.12.tar.gz - http://icon-theme.freedesktop.org/releases/default-icon-theme-0.1.tar.gz Le compilateur Ada GNAT doit être activé, ajouter son emplacement comme par exemple : $ PATH=/usr/local/gnat/bin:$PATH $ which gcc /usr/local/gnat/bin/gcc Je conseil de créer un répertoire dédié à la construction des bibliothèques : $ instxada=/usr/local/xadalib-2012 # ou tout autre nom $ mkdir -p $instxada $ PATH=$instxada/bin:$PATH 2.1) Pkg-config Pkg-config est un utilitaire utilisé pour la gestion de bibliothèques en insérant les bonnes options de compilation. $ cd $ tar xzf ~/Desktop/pkg-config-0.20.tar.gz $ cd pkg-config-0.20 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install $ pkg-config --list-all 2.2) GTK+ a) JPEG IJG est un groupe informel qui écrit et distribue une bibliothèque libre pour les images JPEG. $ cd $ tar xzf ~/Desktop/jpegsrc.v6b.tar.gz $ cd jpeg-6b $ cp /usr/share/libtool/config/config.sub . # pour libtool static et shared $ cp /usr/share/libtool/config/config.guess . # pour libtool static et shared $ ./configure CC='gcc -g -O0' --enable-static --enable-shared --prefix=$instxada $ make $ mkdir $instxada/include $ mkdir $instxada/lib $ make install b) PNG b.1) ZLIB Zlib est une bibliothèque de compression de données à usage général. $ cd $ tar xzf ~/Desktop/zlib-1.2.5.tar.gz $ cd zlib-1.2.5 $ ./configure --prefix=$instxada $ make CFLAGS='-g -O0' SFLAGS='-g -O0' $ make install b.2) PNG Bibliothèque officielle du format PNG. $ cd $ tar xzf ~/Desktop/libpng-1.2.44.tar.gz $ cd libpng-1.2.44 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install c) GLIB c.1) Gettext Le but de cette bibliothèque est de donner une interface unique pour la gestion des messages avec des possibilités d'internationalisation. $ cd $ tar xzf ~/Desktop/gettext-0.18.1.1.tar.gz $ cd gettext-0.18.1.1 $ ./configure CC='gcc -g -O0' CXX='g++ -g -O0' --prefix=$instxada $ make $ make install c.2) GLIB GLib est la bibliothèque de bas niveau à la base des projets GTK+ et GNOME. $ cd $ tar xzf ~/Desktop/glib-2.28.8.tar.gz $ cd glib-2.28.8 # Supprimer de glib/gconvert.c les trois lignes suivantes : #if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) #error GNU libiconv not in use but included iconv.h is from libiconv #endif # Les variables avant configure indiquent où se trouve gettext : $ CPPFLAGS=-I$instxada/include LDFLAGS=-L$instxada/lib ./configure CC='gcc -g -O0' --enable-debug=yes --enable-static=yes --prefix=$instxada # Supprimer la ligne suivante dans config.h : #define HAVE_CARBON 1 $ make $ make install d) Atk Accessibility Toolkit. $ cd $ tar xzf ~/Desktop/atk-1.32.0.tar.gz $ cd atk-1.32.0 $ ./configure CC='gcc -g -O0' --enable-static=yes --prefix=$instxada $ make $ make install e) Cairo e1) Freetype FreeType 2 est un logiciel de gestion de polices de caractères portable. $ cd $ tar xzf ~/Desktop/freetype-2.4.1.tar.gz $ cd freetype-2.4.1 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install e2) Pixman Pixman est une bibliothèque qui fournit des fonctions bas niveau de manipulation de pixels. $ cd $ tar xzvf ~/Desktop/pixman-0.22.2.tar.gz $ cd pixman-0.22.2 $ ./configure CC='/usr/bin/gcc -g -O0' --prefix=$instxada $ make $ make install e3) Fontconfig Bibliothèque de configuration de polices de caractères. $ cd $ tar xzf ~/Desktop/fontconfig-2.8.0 $ cd fontconfig-2.8.0 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install e4) Cairo Cairo est une bibliothèque graphique 2D pour plusieurs dispositifs d'affichage comme X Window System, win32, Quartz ainsi que les formats de fichier PDF, PostScript, and SVG (OpenGL n'est pas actif). $ cd $ tar xzf ~/Desktop/cairo-1.10.2.tar.gz $ cd cairo-1.10.2 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install f) Pango Pango est une bibliothèque pour le rendu et l'affichage de textes avec des possibilités d'internationalisation. (Doit être compilée après Cairo !) $ cd $ tar xzf ~/Desktop/pango-1.28.4.tar.gz $ cd pango-1.28.4 $ ./configure CC='gcc -g -O0' CXX='g++ -g -O0' --enable-debug=yes --enablestatic=yes --prefix=$instxada $ make $ make install g) GDK-PixBuf g1) LibTiff LibTiff est une bibliothèque pour la manipulation des images au format TIFF (Tag Image File Format, OpenGL n'est pas actif). $ cd $ tar xzf ~/Desktop/tiff-3.9.5.tar.gz $ cd tiff-3.9.5 # Les variables avant configure indiquent où se trouve libjpeg : $ CPPFLAGS=-I$instxada/include LDFLAGS=-L$instxada/lib ./configure CC='gcc -g -O0' CXX='g++ -g -O0' --prefix=$instxada $ make $ make install g2) GDK-PixBuf GDK-PixBuf est une bibliothèque pour le tracé d'image dans une mémoire graphique tampon. $ cd $ tar xzf ~/Desktop/gdk-pixbuf-2.22.1.tar.gz $ cd gdk-pixbuf-2.22.1 # Indique où se trouve libtiff : $ CPPFLAGS=-I$instxada/include LDFLAGS=-L$instxada/lib ./configure CC='gcc -g -O0' --enable-debug=yes --enable-static=yes --prefix=$instxada $ make $ make install h) default et hicolor icon theme default-icon-theme et hicolor-icon-theme sont les thèmes GTK par défaut mais qui ne contiennent aucune icône. $ cd $ tar xzf ~/Desktop/default-icon-theme.tar.gz $ cd default-icon-theme $ make install PREFIX=$instxada/share $ cd $ tar xzf ~/Desktop/hicolor-icon-theme-0.12.tar.gz $ cd hicolor-icon-theme-0.12 $ ./configure --prefix=$instxada $ make install i) GTK+ Gtk+ est une bibliothèque graphique en C pour X-Window et Win32. Elle fut développée initialement pour Gimp. $ cd $ tar xzf ~/Desktop/gtk+-2.24.5.tar.gz $ tar xzf ~/Desktop/gtkada-gpl-2.24.2-src.tgz $ cd gtk+-2.24.5 # Appliquer les modifications depuis gtkada-2.24.2-src/contrib $ patch -p0 < ../gtkada-2.24.2-src/contrib/gtk+-2.24.5-darwin.diff $ patch -p0 < ../gtkada-2.24.2-src/contrib/gtk+-2.24.5.diff $ ./configure CC='gcc -g -O0' --prefix=$instxada --enable-debug=yes --enablestatic=yes $ make $ make install 2.3) GtkAda GtkAda est une bibliothèque graphique en Ada 95 basée sur Gtk+. $ cd # tar xzf ~/Desktop/gtkada-gpl-2.24.2-src.tgz # si pas déjà fait au §2.2.i $ cd gtkada-2.24.2-src # Appliquer les correctifs apportés sur Blady : http://blady.pagesperso-orange.fr/telechargements/gtkada/gtkada-gpl-2012.diff $ patch -p0 < gtkada-gpl-2012.diff $ ./configure CC='gcc -g -O0' --prefix=$instxada --with-GL=GL --with-GL-prefix=/usr/ X11 --enable-build=Debug $ make $ make install Voir le positionnement des variables d'environnement pour l'utilisation immédiate de GTKAda au §1 et sur Blady pour une utilisation avec des exemples. 3) Construction de GLADE Glade est un outil graphique de développement d'interfaces utilisateurs pour la bibliothèque GTK. Récupérer les archives suivantes depuis les sites indiqués : . Intltool et LibXML depuis le site Libre d'AdaCore "http:// libre.adacore.com" à la page "Download GNAT GPL", sélectionner plateforme x86_64-linux 2012 puis GtkAda 2.24.2 -> Sources : - intltool-0.40.6.tar.gz 185 KBNov 26, 2009 - libxml2-2.5.7.tar.gz 3.15 MB Jun 16, 2003 . XZ depuis http://tukaani.org/xz http://tukaani.org/xz/xz-5.0.4.tar.gz . Glade depuis http://glade.gnome.org http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-3.8.2.tar.xz . icon-theme depuis http://www.freedesktop.org/wiki/Software/icontheme http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.12.tar.gz Avant de démarrer la compilation, le répertoire d'installation doit être activé avec GTK+ installé (voir §2) ainsi que le compilateur GNAT activé, ajouter les emplacements comme par exemple (si pas déjà fait) : $ instxada=/usr/local/xadalib-2012 # ou tout autre emplacement contenant GTK+ $ PATH=$instxada/bin:$PATH $ PATH=/usr/local/gnat/bin:$PATH 3.1) Intltool Intltool est une bibliothèque pour rendre international les chaînes de caractères utilisées dans les codes sources. $ cd $ tar xzf ~/Downloads/intltool-0.40.6.tar.gz $ cd intltool-0.40.6 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install 3.2) LibXML LibXML est une bibliothèque de lecture et de décodage des fichiers XML. $ cd $ tar xzf ~/Desktop/libxml2-2.5.7.tar.gz $ cd libxml2-2.5.7 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install 3.3) XZ XZ est un utilitaire gratuit de compression de données performant basé sur l'algorithme LZMA2. $ cd $ tar xzf ~/Desktop/xz-5.0.4.tar.gz $ cd xz-5.0.4 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install 3.4) Glade Glade est un outil graphique de développement d'interfaces utilisateurs pour la bibliothèque GTK. Les fichiers XML produits par Glade peuvent être utilisés par de nombreux langage de programmation comme C, C++, C#, Java, Perl, Python et ... Ada ;-) $ cd $ unzx -k ~/Desktop/glade3-3.8.2.tar.xz $ tar xf ~/Desktop/glade3-3.8.2.tar $ cd glade3-3.8.2 $ ./configure CC='gcc -g -O0' --prefix=$instxada $ make $ make install $ cd $ tar xzf ~/Desktop/hicolor-icon-theme-0.12.tar.gz # si pas déjà fait au §2.2.h $ cp -p hicolor-icon-theme-0.12/index.theme $instxada/share/glade3/pixmaps/hicolor 4) Construction de GNATColl GNAT Component Collection (GNATColl) est une bibliothèque d'usage générale utilisée pour les outils d'AdaCore comme GPS. Elle inclue une vingtaine de composants dont les traces, la mémoire, les chaînes de caractères, les e-mail, la logique trois états, JSON, SQL, ReadLine... Récupérer l'archive suivante depuis le site Libre d'AdaCore "http:// libre.adacore.com" à la page "Download GNAT GPL", sélectionner plateforme x86_64-linux 2012 puis GNATColl 2012 -> Sources : - gnatcoll-gpl-2012-src.tgz 4.15 MBMay 10, 2012 Avant de démarrer la compilation, GNAT et le répertoire d'installation avec GTKAda installé doivent être activés, ajouter leur emplacement comme par exemple (si pas déjà fait) : $ instxada=/usr/local/xadalib-2012 # ou tout autre emplacement contenant GTKAda $ PATH=$instxada/bin:$PATH $ export GPR_PROJECT_PATH=$instxada/lib/gnat $ PATH=/usr/local/gnat/bin:$PATH $ cd $ tar xzf ~/Desktop/gnatcoll-gpl-2012-src.tgz $ cd gnatcoll-gpl-2012-src # Appliquer les correctifs apportés sur Blady : http://blady.pagesperso-orange.fr/telechargements/gnat/gnatcoll-gpl-2012.diff $ patch -p0 < gnatcoll-gpl-2012.diff $ ./configure CC='gcc -g -O0' --prefix=$instxada --enable-build=Debug --enable-gpl -disable-shared $ make $ make test_verbose $ make examples $ make install $ cp -Rp examples /usr/local/xadalib-2012/share/examples/gnatcoll Des exemples de programme sont disponibles dans le répertoire $instxada/share/examples/gnatcoll. Une documentation au format PDF et HTML est disponible dans le répertoire $instxada/share/doc/gnatcoll. (Attention la documentation est pré-construite dans l'archive initiale, si "make clean" est exécuté il faudra alors la reconstruire avec les outils sphinx-build et pdflatex) Un plug-in pour GPS est disponible dans le répertoire /usr/local/ xadalib-2012/share/gps/plug-ins. 5) Construction de Florist Florist contient les composants conforment aux standards Posix Ada : IEEE Standards 1003.5: 1992, IEEE STD 1003.5b: 1996 et en partie IEEE STD 1003.5c: 1998. Récupérer l'archive suivante depuis le site Libre d'AdaCore "http:// libre.adacore.com" à la page "Download GNAT GPL", sélectionner plateforme x86_64-linux 2012 puis Florist 2012 -> Sources : - florist-gpl-2012-src.tgz 224 KB May 10, 2012 Avant de démarrer la compilation, GNAT et un répertoire d'installation doivent être activés, ajouter leur emplacement comme par exemple (si pas déjà fait) : $ instxada=/usr/local/xadalib-2012 # ou tout autre emplacement existant $ PATH=$instxada/bin:$PATH $ PATH=/usr/local/gnat/bin:$PATH $ cd $ tar xzf ~/Desktop/florist-gpl-2012-src.tgz $ cd florist-gpl-2012-src # Appliquer les correctifs apportés sur Blady : http://blady.pagesperso-orange.fr/telechargements/gnat/florist-gpl-2012.diff $ patch -p0 < florist-gpl-2012.diff $ ./configure CC='gcc -g -O0' --prefix=$instxada $ Build=Debug make $ make install 6) Construction des contributions de Dmitry A. Kazakov "Ada Industrial Control Widgets Library" (AICWL) de Dmitry A. Kazakov contient les composants : - GtkAda contributions : multi-tâche, vue arborescente, navigation de fichiers, image en code source Ada, fichier de ressources graphiques, modèle de couleur HSL, des boutons, exécution de processus asynchrones... - Strings edit : mise à l'échelle des axes, nombre romains, entiers et réels, codage UTF-8 et Unicode, recherche avec jockers... - Tables : container de données avec recherche par chaines de caractères, - AICWL : collection de widgets de visualisation type compteur de vitesse et vue mètre, d'horloges, d'oscillogramme, éditeur de widget... - Simple components : graphes, ensembles, piles, vecteurs, analyseurs d'expressions, primitives de synchronisation, nombre pseudo-aléatoires... Récupérer les archives suivantes depuis http://www.dmitry-kazakov.de : http://www.dmitry-kazakov.de/ada/components_3_18.tgz http://www.dmitry-kazakov.de/ada/aicwl_1_3.tgz Avant de démarrer la compilation, GNAT et le répertoire d'installation avec GTKAda installé doivent être activés, ajouter leur emplacement comme par exemple (si pas déjà fait) : $ instxada=/usr/local/xadalib-2012 # ou tout autre emplacement contenant GTKAda $ PATH=$instxada/bin:$PATH $ export GPR_PROJECT_PATH=$instxada/lib/gnat $ PATH=/usr/local/gnat/bin:$PATH $ cd $ mkdir aicwl_1_3 $ cd aicwl_1_3 $ tar xzf ~/Desktop/components_3_18.tgz $ tar xzf ~/Desktop/aicwl_1_3.tgz # Appliquer les correctifs apportés sur Blady : http://blady.pagesperso-orange.fr/telechargements/gtkada/aicwl-unix.tgz $ tar xzf ~/Desktop/aicwl-unix.tgz $ patch -p0 < aicwl.diff $ make $ make install PREFIX=$instxada 7) Addendum : Construction de Gate3 Gate3 est un utilitaire qui produit du code Ada à partir d'un fichier Glade. Gate3 a été développé par Francois Fabien sous licence MIT (http:// sourceforge.net/projects/lorenz). Avant de démarrer la compilation, GNAT et le répertoire d'installation avec GTKAda installé doivent être activés, ajouter leur emplacement comme par exemple (si pas déjà fait) : $ instxada=/usr/local/xadalib-2012 # ou tout autre emplacement contenant GTKAda $ PATH=$instxada/bin:$PATH $ export GPR_PROJECT_PATH=$instxada/lib/gnat $ PATH=/usr/local/gnat/bin:$PATH Nous allons d'abord installer Template-Parser (https://forge.open-do.org/ projects/template-parser) utilisé par Gate3 : $ cd $ git clone http://forge.open-do.org/anonscm/git/template-parser/template-parser.git $ cd template-parser $ make DEBUG=true prefix=$instxada $ make doc $ make install Récupérer ensuite sur le bureau le fichier gate3_03.zip à partir du site : http://sourceforge.net/projects/lorenz/files $ cd $ unzip ~/Desktop/gate3_03.zip $ cd gate3_03 $ ./build.sh prêt. Une fenêtre apparait dans X11, cliquer sur son bouton de fermeture : c'est Des exemples sont construits avec : $ ./sample.sh Leur exécution : $ ./editor $ ./calculator $ ./lady $ ./lorenz Pour une utilisation courante, copier les fichiers suivants dans $instxada/ bin : gate3 gate3_license.txt gate3_header.tmplt gate3_main.tmplt gate3_spec.tmplt gate3_body.tmplt exécutable licence MIT par défaut, à changer à votre convenance en-tête de la procédure principale, inclut gate3_license.txt modèle de la procédure principale modèle du paquetage spécification des callbacks modèle du paquetage corps des callbacks Les fichiers modèles peuvent être modifiés en incluant notamment la licence dans les modèles des paquetages spécification et corp. Vous pouvez trouver sur Blady un script basé sur l'ancien Gate de GtkAda pour fusionner les évolutions du fichier Glade avec les codes sources Ada déjà créés (à mettre dans $instxada/bin) : http://blady.pagesperso-orange.fr/telechargements/gtkada/gate3.sh Pascal Pignard, juillet 2011, août-décembre 2012. http://blady.pagesperso-orange.fr