2. Aclocal, autoconf et automake

Qui fait quoi ? Nous avons trois commandes et deux types de fichiers (configure.ac et les fichiers Makefile.am). Au résultat, nous obtenons un fichier configure et en l'exécutant, des fichiers Makefile. C'est touffu !

Autoconf a pour but de générer un fichier configure qui, lorsqu'on le lance, génère des fichiers à partir de fichiers modèles d'extension .in. Ainsi, ce script transforme les fichiers Makefile.in en fichiers Makefile. Voici un mystère d'éclairci.

Mais d'où viennent ces fichiers Makefile.in ? C'est ici le rôle d'automake. Cet outil prend en compte des fichiers Makefile.am et génère des fichiers Makefile.in aux mêmes endroits.

Le rôle d'aclocal est de générer un fichier aclocal.m4 dont nous parlons peu. En effet, il contient des macros (écrites dans le langage m4), dont nous n'avons rarement besoin de connaître l'existence. Sachez cependant qu'elles sont utilisées par le script configure pour effectuer certains tests et définir des variables dont les fichiers Makefile auront l'usage.

Enfin, le fichier configure.ac, fichier de configuration d'autoconf, est utilisé par celui-ci, par aclocal et indirectement par automake. Le premier génère le fichier configure en fonction du contenu de configure.ac. Le deuxième n'y fait que rechercher les noms des macros afin de copier celles nécessaires dans le fichier aclocal.m4 à partir de son dépôt (par exemple /usr/share/aclocal/*). Le dernier prévoit des variables pour ses fichiers Makefile.in en fonction des tests définis dans configure.ac.

L'ordre d'exécution des commandes est donc aclocal en premier, et ensuite indifféremment autoconf ou automake. Enfin, avant de compiler avec make, lancez le configure de la commande magique.

création est mise à disposition sous un contrat Creative Commons