Compilation sous Linux/Unix

La compilation de Gwyddion sur les systèmes Unix est basée sur GNU autotools (autoconf, automake, libtool), comme pour la plupart des logiciels Unix libres. Si vous avez déjà compilé un logiciel à partir du code source, vous avez alors sûrement déjà eu affaire avec autotools et vous connaissez donc la manière de procéder. Cette section décrit toutefois la procédure de compilation en détail pour les non initiés. Le fichier INSTALL dans le répertoire racine de archives sources contient les instructions génériques d'installation pour GNU autotools.

Instructions rapides

Si vous connaissez l'exercice :

tar -jxvf gwyddion-2.49.tar.xz
cd gwyddion-2.49
./configure
make
make install

Dépaquetage des sources

Dépaqueter les archives du code source avec

tar -jxvf gwyddion-2.49.tar.xz

en remplaçant 2.49 par le numéro de version actuel. Cette commande créera le dossier gwyddion-2.49 (là encore avec le numéro de version actuel en lieu et place de 2.49), cd vers ce dossier. Toutes les autres étapes de la compilation se dérouleront à cet endroit.

Si votre système d'exploitation ne possède pas bzip2 vous pouvez télécharger gwyddion-2.49.tar.gz (compressé avec gzip) à la place et dépaqueter avec

tar -zxvf gwyddion-2.49.tar.gz

Cependant, les systèmes Unix ou basés sur Unix récents possèdent à la fois bzip2 et gzip, étant donnée sa taille plus petite, gwyddion-2.49.tar.xz devrait être logiquement préféré.

Configuration

Lancez

./configure

pour configurer Gwyddion.

Le script configure tente de déterminer les valeurs correctes de diverses variables du système utilisées lors de la compilation. Il utilise ces valeurs pour créer un Makefile dans chaque répertoire du paquet, quelques fichiers d'en-tête .h contenant des définition propres au système ainsi que quelques fichiers auxiliaires. Il crée finalement un script config.status que vous pourrez lancer pour recréer la configuration actuelle, et un fichier config.log. Ce fichier contient les détails du processus de détection, qu'il est utile d'include dans les rapports de bug liés à la compilation. configure affiche finalement un résumé des fonctionnalités optionnelles activées ou désactivées, en précisant les raisons pour lesquelles certaines fonctionnalités ont été désactivées.

Si configure annonce que certains paquets nécessaires manquent, installez les et re-lancer le. Cela s'applique aussi dans le cas où configure termine correctement mais vous vous rendez compte qu'il manque un paquet optionnel avec lequel vous souhaitez compiler Gwyddion. Il est possible qu'un paquet ne soit mal ou pas détecté du tout bien que vous l'ayez installé, typiquement si celui est installé dans un répertoire non standard. Il est nécessaire dans ce cas de modifier certaines variables d'environnement afin que configure soit capable de trouver ces paquets :

PKG_CONFIG_PATH

La plupart des paquets sont fournis avec des fichiers pkg-config (.pc) qui décrivent la manière dont les programmes doivent se compiler et se lier entre eux. configure utilise les informations fournies dans ces fichiers, il faut donc que PKG_CONFIG_PATH soit ajusté de façon à ce qu'il liste tous les répertoires non standard contenant les fichiers pkg-config utiles. Ainsi pour installer Gtk+ dans /opt/gnome et FFTW3 dans $HOME/opt/fftw3 on pourra faire

PKG_CONFIG_PATH=/opt/gnome/lib/pkgconfig:$HOME/opt/fftw3/lib/pkgconfig
export PKG_CONFIG_PATH

PATH, LD_LIBRARY_PATH DYLD_LIBRARY_PATH

Il peut être nécessaire de modifier ces variables pour inclure des répertoires non standards contenant respectivement des exécutables et des librairies utiles. Les variables LD_LIBRARY_PATH et DYLD_LIBRARY_PATH définissent toutes les deux les chemins de recherche pour les librairies partagées, mais la première est utilisée pour les systèmes Linux et BSD, tandis que la seconde est utilisée sous OS X.

CPPFLAGS, LDFLAGS

Il peut être nécessaire de modifier ces variables pour inclure des répertoires non standards contenant des fichiers d'en-tête et des librairies de paquets n'ayant pas de fichiers pkg-config, par exemple pour libTIFF dans /usr/local on pourra faire :

CPPFLAGS=-I/usr/local/include
export CPPFLAGS
LDFLAGS=-L/usr/local/lib
export LDFLAGS

L'option --prefix de configure règle le répertoire de base de l'installation. Les composants du logiciels seront installés dans les sous-répertoires bin, lib, share, etc. (ils seront créés s'ils n'existent pas). Un contrôle plus fin est possible en utilisant des options spécifiant des sous-répertoires particuliers tels que --bindir, --libdir. Le préfixe par défaut est /usr/local/bin, pour installer Gwyddion dans votre répertoire home vous pouvez par exemple utiliser

./configure --prefix=$HOME/opt/gwyddion

Si vous installez Gwyddion pour une utilisation personnelle, nous vous recommandons d'utiliser un répertoire d'installation similaire, car dans ce cas aucune étape ne nécessitera des droits root.

Ajustements supplémentaires

Des fonctionnalités optionnelles peuvent être activées/désactivées avec des paramètres tels que --with-foo/--without-foo ou --enable-foo/--disable-foo. La compilation avec zlib peut par exemple être désactivée avec :

./configure --without-zlib

Toutes les fonctionnalitées optionnelles sont activées par défaut si les pre-requis sont présents. Un résumé des fonctionnalités activées et désactivées sont affichées vers la fin de la sortie de configure.

La liste complète des options de configure et des variables importantes peut être obtenues avec :

./configure --help

La liste est longue et la plupart des options et variables contrôlent l'inclusion ou l'exclusion de fonctionnalités optionnelles ou fournissent au compileur et à l'éditeur de liens les drapeaux pour les diverses librairies. Par exemple, en définissant FFTW3_CFLAGS et FFTW3_LIBS vous pouvez spécifier (ou outrepasser) la manière dont sera faite la compilation et l'édition des liens de FFTW3. Cette définition manuelle n'est toutefois qu'une solution de secours dans le cas où la méthode bien plus pratique utilisant pkg-config ne fonctionnerait pas.

La plupart de ces options contrôlent l'inclusion ou l'exclusion de fonctionnalités optionnelles. Quelques options d'intérêt général sont présentées dans les paragraphes qui suivent.

Options pour les utilisateurs

Gwyddion fournit plusieurs fichiers d'intégration définissant les types MIME, les entrées dans les menus, les associations de fichiers, les générateurs de vignettes, etc. Ceux-ci devraient naturellement se retrouver aux bons emplacements si vous installez Gwyddion dans un répertoire système. Toutefois, si vous l'installez dans un autre répertoire, tel que votre répertoire home, ces fichiers devront être replacés dans des sous-répertoires masqués (dont le nom commence par un point) de votre répertoire home.

Cette option peut être activée en utilisant --enable-home-installation dans configure. Notez que cette option installera des fichiers en dehors du répertoire préfixe spécifié.

Options pour les packageurs

Si Gwyddion est installé dans un répertoire temporaire dans le but d'en faire un paquet, il sera nécessaire de désactiver certaines actions de post-installation ayant normalement lieu sur le système cible, et non lors de la construction du paquet.

La mise à jour des fichiers Freedesktop peut être inactivée avec --disable-desktop-file-update. L'installation des schémas GConf2 peut être inactivée avec --disable-schemas-install. En règle générale il n'est pas nécessaire de le faire de manière explicite car l'installation dans un répertoire temporaire utilise un DESTDIR non vide (voir installation). Si DESTDIR est non vide, le processus de construction omet automatiquement les actions de post-installation.

Le fait de passer --enable-library-bloat à configure force la liaison des modules avec toutes les librairies. Ceci est activé automatiquement sous MS Windows car cela est nécessaire. Sous les systèmes Unix, la liaison des modules avec les librairies chargées par ailleurs avec le programme principal ne fait que ralentir inutilement les choses (à la fois pendant la compilation et durant l'exécution du programme). Les modules ne sont donc pas explicitement liés avec les librairies de base come GLib. Si votre environnement ou votre stratégie exige la liaison des modules avec toutes les librairies, cette option vous permettra de vous en assurer.

Passer --disable-module-bundling à configure empêche le regroupent de tous les modules de même classe (fichier, traitement…) dans une seule librairie partagée, ce qui est fait en temps normal pour économiser de l'espace disque et accélérer le démarrage du programme. Bien que le regroupement ne change rien d'un point de vue fonctionnel, il change considérablement l'ensemble des fichiers installés. Si pour une raison ou pour une autre vous dépendez du fichier gwyfile.so existant sur le disque dur, alors arretez tout de suite. Mais vous pouvez utiliser cette option pour forcer l'installation traditionnelle pour laquelle chaque module apparaît dans un fichier séparé.

Options pour les développeurs

Si vous souhaitez corriger ou modifier d'une quelconque manière le code source de Gwyddion, passez l'option --enable-maintainer-mode à configure pour activer les mises à jour et reconstruire les règles non utilisées dans la compilation de base. En fonction de la nature des modifications, certains des outils supplémentaires décrits dans la section Subversion, Développement peuvent être nécessaires.

La documentation de référence des API C n'est pas reconstruite par défaut. Un HTML pré-compilé est distribué avec les sources, la documentation change rarement et la générer prend un temps relativement long. Pour activer la génération de la documentation API, passez l'option --enable-gtk-doc à configure. Dans ce cas vous aurez bien évidemment besoin de gtk-doc.

Compilation

Lancez

make

et attendez jusqu'à ce que Gwyddion soit compilé. Si configure s'est terminé sans erreur alors la compilation devrait se dérouler sans problème. Pour réduire l'attente, vous pouvez activer la compilation parallèle en lançant make sous la forme

make -j6

en remplaçant le 6 par le nombre de processeurs souhaité.

S'il pour vous il s'avère nécessaire de faire des choses inhabituelles pour compiler le paquet, essayez de déterminer comment configure permettrait de régler le problème, et envoyer par e-mail des correctifs ou des instructions à l'adresse de rapport de bug, de manière à ce qu'ils soient pris en compte pour la version suivante.

Installation

Gwyddion doit être installé pour pouvoir être lancé, il est impossible de le faire tourner s'il n'est pas installé.

Lancez

make install

pour installer Gwyddion dans le dossier ciblé. Si vous installez Gwyddion dans un dossier système, vous devez avoir les privilèges root pour lancer cette commande, en utilisant par exemple sudo :

sudo make install

Pour installer Gwyddion dans un répertoire temporaire, pour créer un paquet par exemple, modifiez la variable make DESTDIR avec un préfixe qui sera utilisé pour tous les répertoires cibles :

make install DESTDIR=/var/tmp/gwyddion-buildroot

Ne modifiez pas les variables des dossiers individuels telles que bindir, libdir.

Si vous n'installez pas dans un dossier système, par exemple avec l'installation dans un sous-dossier ou votre dossier home, il vous faudra peut être ajuster les variables suivantes durant l'installation :

  • GCONF_SCHEMA_CONFIG_SOURCE – emplacement des schémas GConf2
  • KDE4_MODULE_DIR – emplacement des modules KDE4

Il se peut que la variable XDG_DATA_DIRS doive être modifiée après l'installation pour obtenir une intégration complète dans le bureau.

Si vous installez Gwyddion dans /usr/local et obtenez le message comme quoi libgwyapp.so.0 ne peut être trouvé, il y a de fortes chances que votre système ne possède pas certains répertoires de librairies standards dans la configuration de l'éditeur de liens dynamiques. Cela arrive par exmple sous Ubuntu. Editez le fichier /etc/ld.so.conf et ajoutez-y la ligne suivante :

/usr/local/lib

.

Lancement

Le lancement de Gwyddion ne nécessite normalement pas de réglage supplémentaire.

Toutefois, les fonctionnalités de certains environnements de bureau peuvent rendre inutilisable Gwyddion et celles-ci doivent être désactivées. Le détournement du menu principal des programmes dans Unity rend inaccessible la plupart des menus de Gwyddion. Cela peut être désactivé en modifiant UBUNTU_MENUPROXY pour le lancement de Gwyddion :

UBUNTU_MENUPROXY= gwyddion

Désinstallation

Lancez

make uninstall

dans le dossier où Gwyddion a été compilé afin de le supprimer. Dans le cas où vous auriez perdu le répertoire original, vous pouvez essayer d'extraire les fichiers de compilation, configurer et compiler de la même manière que lors de l'installation puis lancer make uninstall, mais le succès de cette opération dépend de votre capacité à reproduire le processus de compilation.

Paquets RPM

Il est possible de compiler des paquets RPM sur les distributions GNU/Linux basées sur RPM directement à partir des archives du code source grâce à la commande

rpmbuild -tb gwyddion-2.49.tar.xz

, où 2.49 doit être remplacé par le numéro de version actuel. Cette méthode a été testée sur Fedora, openSuSE et Mandriva, et le fichier de spécifications RPM contient certaines informations pour ces systèmes. Un support spécifique à d'autres systèmes basés sur RPM peut être ajouté sur demande.