GTK+ Traduction Française du Manuel de référence |
---|
Compiler les bibliothèques de GTK+Compiler les bibliothèques de GTK+ — Comment compiler GTK+ lui-même ? |
Ce chapitre va concerner la construcion et l'installation de GTK+ sur des systèmes de types UNIX et de la famille de UNIX comme Linux. La compilation de GTK+ sur Microsoft Windows est différente et légèrement plus compliquée à réaliser parce que les outils nécessaires ne sont pas inclus avec ce système d'exploitation.
Avant d'entrer dans les détails de la compilation de GTK+, nous devons dire que, dans beaucoup de cas, des paquets préconstruits peuvent être disponibles pour votre système d'exploitation, soit auprès de votre fournisseur de système d'exploitation soit via des sources indépendantes. Si de tels ensembles de paquets sont disponibles, leur installation vous permettra de programmer avec la bibliothèque GTK+ beaucoup plus rapidement qu'en la construisant vous même. En fait, il se peut même que GTK+ soit déjà installée sur votre système.Sur les systèmes de la famille de UNIX, GTK+ utilise le système de construction standard GNU qui emploie l'autoconfiguration pour la configuration de paquets et la résolution des problèmes de portabilité, et qui crée lui-même des fichiers "makefiles" ( fichiers contenant la liste des fichiers à compiler) pour la construction de GTK+ en se conformant aux encodages standards de GNU, et aux bibliothèques d'outils de construction des librairies partagées sur les multiples plateformes.
Si vous construisez GTK+ à partir de paquets , vous n'avez
pas besoin des outils d'insatallation; les pièces
nécessaires des outils sont déjà dans les
paquets source. Mais il est utile de connaître un minimum
les principes d'utilisation de ces outils par les paquets. Un
paquet source est distribué en tant que fichier tar.gz
que
vous allez décompresser dans un répertoire
réservé aux fichiers sources, de cette façon :
tar xvfz gtk+-2.0.0.tar.gz |
Au niveau supérieur du répertoire qui a
été créé, il y aura un script shell
appelé configure
que vous allez exécuter pour prendre le modèle de makefiles appelé
Makefile.in
dans le paquet et qui
va créer un fichier makefiles adapté à votre
système d'exploitation. On peut passer des lignes de commandes
variées au script configure
pour déterminer comment le paquet sera construit et
installé. L'argument le plus utilisé
est --prefix
qui détermine l'endroit où le paquet sera installé. Pour installer un paquet dans /opt/gtk
vous devez exécuter configure ainsi:
./configure --prefix=/opt/gtk |
configure
avec l'argument
--help
. En général,
les arguments par défaut sont correctes et on peut leur
faire confiance. Après avoir exécuté
configure
, vous allez utiliser la commande
make pour construire le paquet et l'installer.
make |
make install
.
Ensuite, si vous faite l'installation dans un système de
répertoires, comme sur certains systèmes (comme
Linux),
vous devez exécuter ldconfig après
make install
pour que les bibliothèques nouvellement installées soient trouvées.
Il est utile de passer plusieurs variables d'environnement avant d'exécuter configure. CPPFLAGS
contient les options à passer au compilateur C, et il set
à dire au compilateur où chercher les fichiers includes.
La variable LDFLAGS
sert à la même chose pour l'éditeur de liens (linker). Enfin la variable d'environnement
PKG_CONFIG_PATH
contient un chemin d'accès de recherche que pkg-config
(voir plus bas)
utilise quand il recherche un fichier qui décrit comment un
programme doit être compilé en utilisant
différentes bibliothèques. Si vous avez installé
GTK+ et ces dépendances dans /opt/gtk
, vous pouvez configurer ces variables ainsi :
CPPFLAGS="-I/opt/gtk/include" |
LD_LIBRARY_PATH
,
pour que l'éditeur de liens dynamiques puisse trouver les
bibliothèques nouvellement installées, et le programme
d'environnement PATH
pour que utility binaries installés par les diverses bibliothèques, soient trouvés.
LD_LIBRARY_PATH="/opt/gtk/lib" |
pkg-config est
un outil pour dépister les drapeaux de compilation requis
pour les bibliothèques qui sont employées par les
bibliothèques de GTK+ ( Pour chaque bibliothèque, un
petit fichier texte .pc
est installé dans une localisation standard qui contient les
flags de compilation requis pour cette bibliothèque avec le
numéro de la version.) La version de pkg-config requises pour construire GTK+ est reflété dans le répertoire dependencies
sur le site FTP de GTK.
Les fichiers makefile de GTK+ fonctionneront la plupart du temps avec différentes versions de make, cependant, onp eut rencontrer de rares incompatibilités, ainsi l'équipe de GTK+ recommande d'installer GNU make si vous ne l'avez pas encore sur votre système et de l'utiliser. (Il peut s'appeler gmake plutôt que make.)
Trois des bibliothèque dont GTK+ dépend sont gérées par l'équipe de GTK+ : GLib, Pango, er ATK. Les autres bibliothèques sont gérées séparément.
La bibliothèqye GLib procure des fonctionnalités non graphique au noyau telles que des types de données de haut niveau, la manipulation Unicode, un objet et un système de type pour la programmation en C. Elle est disponnible sur le site FTP de GTK.
Pango est une bibliothèque de manipulation de texte internationale. Elle est disponnible sur le site FTP de GTK.
ATK est une boîte à outils d'accessibilité. Elle apporte un ensemble d'interfaces génériques qui fournissent les technologies d'accessibilité comme les lecteurs d'écran pour interagir avec l'interface graphique utilisateur. Elle est disponnible sur le site FTP de GTK.
GNU
libiconv library est requise pour construire GLib si votre système n'a pas la fonction iconv()
pour faire la conversion entre les codages de caractères. La plupart des systèmes modernes devraient avoir iconv()
.
La bibliothèque libintl du paquet de GNU gettext est nécessaire si votre système ne pocède pas la fonctionnalité
gettext()
pour manipuler les bases de données de traduction de messages.
Les bibliothèques de chargement des images JPEG,
PNG, et
TIFF
sont requises pour compiler GTK+. Vous avez probablement
déjà ces bibliothèques installées, mais si
ce n'est pas le cas, les versions dontvous avez besoin sont disponibles
dans le répertoire dependencies
sur le site FTP de GTK.
( Avant d'installer ces bibliothèques depuis la source, vous
devriez vérifier si votre fournisseur de système
d'exploitation ne
vous as pas procuré de paquets pré-construits de
ces bibliothèques et que vous ne les avez pas installés.)
Les bibliothèques du système X windows est nécessaire pour construire Pango et GTK+. Elles devraient déjà être installées sur votre système, mais il est possible que vous ayez à installer l'environnement de développement pour ces bibliothèques que votre fournisseur de système d'exploitation a fourni.
La bibliothèque fontconfig fournit à Pango une solution standard pour localiser des polices et pour configurer et de personnaliser d'accès à ces polices.
Cairoest une bibliothèque graphique qui supporte les graphiques et les images vectoriels. Pango et GTK+ utilisent cairo dans beaucoup de leurs dessins.
Tout d'abord assurez-vous que vous avez installé les dépendances externes nécessaires : pkg-config, GNU make, les bibliothèques JPEG, PNG, et TIFF , FreeType, et, si nécessaire, libiconv et libintl. Pour obtenir des informations détaillées au sujet de la construction de ces paquets, consultez la documentation fournit avec chacun de ces paquets. Sur le système Linux, c'est facile, ils sont déjà tous installés à l'exception de pkg-config.
Ensuite construisez et installez les librairies GTK+ dans cet ordre
: GLib, Pango, ATK, puis GTK+. Pour chaque bibliothèque, suivez
les étapes configure
, make
,
make install
mentionées plus haut.
Si vous êtes chanceux, ça se passera sans problème,
et vous serez prêt pour commencer à compiler vos propres applications GTK+ . Vous pouvez tester votre installation GTK+ en exécutant le programme gtk-demo que
GTK+ a installé.
Si un des scripts configure
échoue ou si l'exécution de
make échoue,
regardez attentivement les messages d'erreur affichés; ils vous
donneront le plus souvent des informations très utiles sur ce
qui a mal tourné. Quand configure
échoue,
des informations complémentaires, tel que des erreurs pour
un test de compilation, vont être trouvées dans le
fichier config.log
.
l'observation du dernier couple des cent lignes dans ce fichier vous
permettra fréquemment de clarifier l'origine de ce qui ne va
pas. Si autre chose échoue, vous pouvez demander de l'aide
sur la liste des rapports d'erreurs de gtk-liste.
Voir Listes des envoies et des rapports de bogues(3) pour plus dinformation.
En plus des options normales, le script configure pour la bibliothèque GTK+ supporte un certain nombre d'arguments additionnels. (La ligne de commande avec les arguments pour les autres bibliothèques de GTK+ sont décrites dans la documentation distribuée avec ces bibliothèques.)
configure
[[--disable-modules] |
[--enable-modules]] [[--with-included-loaders==LOADER1,LOADER2,...]]
[[--enable-debug=[no|minimum|yes]]] [[--disable-visibility] |
[--enable-visibility]] [[--disable-shm] | [--enable-shm]]
[[--disable-xim] | [--enable-xim]] [[--disable-xim-inst] |
[--enable-xim-inst]] [[--disable-xkb] | [--enable-xkb]]
[[--disable-gtk-doc] | [--enable-gtk-doc]] [[--with-xinput=[no|yes]]]
[[--with-gdktarget=[x11|linux-fb|win32]]] [[--disable-shadowfb] |
[--enable-shadowfb]]
Ne comprenant pas tout, la suite de la traduction peut être assez imprecise !!!
--disable-modules
et
--enable-modules
. Normalement
GTK+ essaiera de construire un fichier au format image GdkPixbuf
en utilisant de petites librairies partagées qui
seront chargées à la demande. L'argument --disable-modules
indique qu'ils(elles?) devraient tous être construits statiquement dans la
bibliothèque de GTK+(je comprends rien ! :) ).
C'est utile pour les personnes qui ont besoin de créer des statically-linked binaries. Si ni l'un ni l'autre des arguments n'est indiqué --disable-modules
nor
--enable-modules
, alors le script configure essaiera d'auto- détecter si des modules partagés travaillent sur votre système.
--with-included-loaders
. Cette
option vous permet de définir quel chargeur d'mages vous voules
inclure; par exemple, vous pouvez inclure seulement un chargeur PNG
pour créer un plus petit GdkPixbuf binaire.
--enable-debug
. Ouvre une
quantité variable de supports de correction. Définissez
le à 'no' pour désactiver
g_assert(), g_return_if_fail(), g_return_val_if_fail() et tous les
controles de cast entre les différents types d'objets.
Définissez le à 'minimum' pour désactiver
uniquement les contrôles de casts. Définissez le
à 'yes' pour activer le runtime debugging. Par défaut il est définit à 'minimum'.
Notez que 'no' est rapide, mais dangereux car, la plupart du temps, il destabilise les logiciels exempt
d'erreur en remplaçant les avertissements
simples par un accident fatal . Ainsi --l'enable-debug=no
ne devrait pas être employé pour des réalisations stables avec GTK+.
--disable-visibility
et
--enable-visibility
.
L'option --disable-visibility
empêche l'utilisation des attributs de visibilité d'ELF
pour enchaîner des optimisations. Ceci se comprends puisque GTK+
lui même est transformé, ainsi la façon dont GTK+
utilise les attributs de visibilité oblige une reconstruction
complète de tous les fichiers sources pour n'importe quelle
modification de header.
--enable-explicit-deps
and
--disable-explicit-deps
. Si --enable-explicit-deps
est sépcifié alors GTK+ écrira l'ensemble
complet des bibliothèques dont GTK+ dépend à ce
moment dans ses fichiers .pc
pour que cela soit utilisé quand des programmes
dépendants de GTK+ sont liés. Autrement, GTK+
va inclure uniquement les bibliothèques GTK+ elles-mêmes,
et dépendra des équipements de dépendance du
système de bibliothèques pour apporter les autres
bibliothèques.
Par défaut GTK+ désactivera les
dépendances explicites à moins qu'il ne détecte
qu'elles sont nécessaires pour le système. ( Si vous
spécifiez --enable-static
pour forcer la construction de bibliothèques statiques,
alors les dépendances explicites seront
écrites puisque les dépendances de
bibliothèque ne fonctionnent pas pour les bibliothèques
statiques.) Spécifiez --enable-explicit-deps
ou
--enable-static
peut provoquer
des problèmes de compatibilité quand les
bibliothèques dont GTK+ dépend changent de versions, cela
devrait être évité si possible.
--disable-shm
et
--enable-shm
. Ces options
peuvent être utilisées pour contrôler quand GTK+
utilise de la mémoire partagée pour communiquer avec le
serveur de X quand c'est possible. L'option par défaut est
'yes'.
--disable-xim
et
--enable-xim
. Ces options
peuvent être utilisées pour contrôler quand GTK+
sera compilé à l'aide de XIM. (Extension de ma methode X
Input, utilisée pour les entrée japonaises.) L'option par défaut est 'yes'.
--disable-xim-inst
and
--enable-xim-inst
. Ces
options détermines si GTK+ emploiera la fonction de rappel (instantiate) de XIM. L'option par défaut est 'yes', sauf si le système hôte est Solaris, où XRegisterIMInstantiateCallback()
semble provoquer un segfault.
--disable-xkb
and
--enable-xkb
.
Par défaut le script configure
essaiera d'auto-détecter si l'extension XKB est
supportée par les X bibliothèques avec lesquelles GTK+
est lié. Ces options peuvent être utilisées pour
contrôler explicitement si GTK+ supportera l'extension XKB.
--disable-gtk-doc
and
--enable-gtk-doc
.
Le paquet gtk-doc
est utilisé pour générer la documentation de
référence inclue avec GTK+. Par défaut ce
support pour gtk-doc est
désactivé parce que il requière des
dépendances variées supplémentaires qui doivent
être installées. Si vous avez gtk-doc installé et que vous modifiez GTK+, vous pouvez activer
le support gtk-doc en passant l'argument --enable-gtk-doc
.
S'il n'est pas activé, des fichiers HTML
pré-générés sont distribués avec
GTK+ et seront installés.???
--with-xinput
. Contrôle
si GTK+ is construit avec le support pour l'extension
XInput . L'extension XInput fournit un interface pour
étendre les dispositifs d'entrée tel que les
tablettes graphiques. Quand ce support est compiler en sus, les
programmes GTK+ peuvent avoir accès aux positions de
subpixel,
à de multiples dispositifs d'entrées simultanés,
et des "axes" supplémentaires fournis par les dispositifs comme
la pression et l'inclinaison. Ceci est connu pour bien fonctionner sur
des systèmes XFree86, bien que d'autres systèmes aient cette extension.
--with-gdktarget
. Bascule entre les backends
supportés pour GDK. L'option par défaut est x11,
à moins que la plateforme soit Windows, dans ce cas le
défaut est win32.
--disable-shadowfb
and
--enable-shadowfb
. Toggles shadow framebuffer support for the linux-fb target, if selected.