Autotools

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

autoconf est un outil faisant partie de la suite autotools, aussi connue sous le nom GNU build system. Cet outil permet au développeur d'automatiser la configuration nécessaire pour compiler un logiciel. Ce n'est en fait qu'une façon de permettre de configurer automatiquement les fichiers Makefile pour le logiciel Make. Lorsqu'un logiciel est bâti à l'aide de autoconf, la première étape est d'appeler le script configure:


[nom@serveur $] ./configure


autoconf vérifie alors les versions des logiciels présents sur l'ordinateur, et s'assure que le nécessaire est présent pour compiler notre logiciel.

Ensuite, on appelle make de la manière habituelle:

[nom@serveur $] make


Enfin, la cible install installe les fichiers aux bons endroits. ne veut pas installer le logiciel pour tous les usagers de Colosse, mais seulement pour soi, il faut habituellement préciser à quel endroit installer notre logiciel. On peut (habituellement) le faire de la manière suivante:


 
 [nom@serveur $] mkdir $HOME/LOGICIEL
 


pour l'installer dans le répertoire LOGICIEL. Enfin, il ne restera qu'à Créer un module pour indiquer au système les chemins vers notre nouveau logiciel.

Une compilation de base d'un logiciel utilisant autoconf peut ainsi être aussi simple que

[nom@serveur $] ./configure && make && make install --prefix=$HOME/LOGICIEL


Options fréquentes des scripts configure

Les scripts configure acceptent généralement une grande variété d'options. Celles-ci varieront selon le projet que vous tentez de compiler. Néanmoins, certaines options sont très communes et méritent d'être mentionnées. Dans tous les cas, vous pouvez exécuter

[nom@serveur $] ./configure --help


pour obtenir une liste détaillée des options supportées.

Répertoire d'installation

Une option qui est toujours présente est l'option --prefix. Celle-ci permet de définir dans quel répertoire la directive make install installera l'application ou la bibliothèque. Par exemple, pour installer une application dans le sous-répertoire programmes de votre répertoire personnel, vous pourriez utiliser

[nom@serveur $] ./configure --prefix=$HOME/programmes/


Options de fonctionnalités

La plupart des scripts de configuration permettent d'activer ou de désactiver certaines fonctionnalités du programme ou de la bibliothèque à compiler. Ces options sont généralement du type --enable-fonctionalite ou --disable-fonctionnalite. En calcul informatique de pointe, il est fréquent que ces options incluent par exemple la parallélisation via fils d'exécution ou via MPI. Vous pourriez ainsi avoir

[nom@serveur $] ./configure --enable-mpi


ou encore

[nom@serveur $] ./configure --enable-threads


Il est aussi fréquent d'avoir des options --with-... pour paramétrer spécifiquement les fonctionnalités. On recommande généralement de ne pas utiliser ces options et de laisser autoconf trouver les paramètres automatiquement. Cependant, il est parfois nécessaire de spécifier des paramètres via les options --with-.... Par exemple, vous pourriez spécifier

[nom@serveur $] ./configure --enable-mpi --with-mpi-dir=$MPIDIR



Options définies par des variables

Vous pouvez généralement spécifier le compilateur à utiliser et les options qui doivent lui être passées en déclarant des variables après la commande ./configure. Par exemple, pour définir le compilateur C et les options à lui passer, vous pourriez exécuter

[nom@serveur $] ./configure CC=icc CFLAGS="-O3 -xHost"


Parmi les variables communes, on retrouve

Option Description
CFLAGS Options à passer au compilateur C
CPPFLAGS Options à passer aux préprocesseurs et compilateurs C, C++, Objective C, Objective C++
CXXFLAGS Options à passer au compilateur C++
DEFS Permet de définit des macro pour le préprocesseur
FCFLAGS Options à passer au compilateur Fortran
FFLAGS Options à passer au compilateurs Fortran 77
LDFLAGS Options à passer à l'éditeur de liens
LIBS Bibliothèques à lier

Une liste plus exhaustive de variables et d'options typiques est disponible dans la documentation d'autoconf.


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager