web-dev-qa-db-fra.com

Quel est le point de aclocal?

Quel est l'intérêt du fichier aclocal script et du fichier aclocal.m4 dans le contexte de l'utilisation d'autotools pour configurer les fichiers source? D'après ce que j'ai lu, aclocal analyse les fichiers de macro pour rechercher les macros utilisées plus tard par automake. Je ne comprends pas ce processus en profondeur, mais il semble que la fonctionnalité de numérisation aurait pu être simplement intégrée à automake. 

35
theactiveactor

Voir Tutoriel Autotools d'Alexandre Duret Lutz , à lire absolument.

Il contient des diagrammes expliquant comment les différents fichiers d'un projet autotools interagissent et par quel outil ils sont utilisés: configure, config.h, config.status, aclocal.m4, etc.

EDIT: John Calcote explique également le but de aclocal et aclocal.m4 dans le premier chapitre de son livre sur Autotools : Chapitre 1: Une brève introduction à GNU Autotools :

L'utilitaire aclocal est en fait documenté par les manuels GNU comme un moyen temporaire de contourner un certain manque de flexibilité dans Autoconf. Autoconf a d'abord été conçu et écrit, puis quelques années plus tard, l'idée d'Automake a été conçue comme une extension pour Autoconf. Mais Autoconf n'a pas été conçu pour être extensible à la taille requise par Automake.

...

Le travail de aclocal consiste essentiellement à créer un fichier aclocal.m4 en consolidant divers fichiers de macros à partir des packages Autotool installés et des emplacements spécifiés par l'utilisateur, de manière à ce qu'AutoConf puisse tous les trouver au même endroit.

...

Cependant, la documentation la plus récente issue des deux jeux d’outils suggère que le paradigme aclocal/acinclude est désormais obsolète, au profit d’une méthode plus récente de spécification d’un répertoire contenant des fichiers de macro m4. La recommandation actuelle est de créer un répertoire dans votre répertoire de projet appelé simplement m4 (acinclude semble plus approprié pour cet auteur) et d'ajouter des macros sous la forme de fichiers .m4 individuels à ce répertoire. Tous les fichiers de ce répertoire seront rassemblés dans aclocal.m4 avant le traitement par Autoconf de votre fichier configure.ac. En fin de compte, aclocal sera remplacé par une fonctionnalité propre à Autoconf.

37
Gregory Pakosz

aclocal.m4 recueille dans mon logiciel les différentes macros Autoconf non standard que j'utilise lors de la compilation de mon logiciel. L'un de ces macros concerne le minutage en moins d'une seconde: choisir la meilleure des options disponibles (en fonction d'un critère prédéterminé de la «meilleure»); Un autre ensemble de macros de ce type traite des subtilités du système de compilation IBM Informix ESQL/C tel qu’il a évolué au cours des deux dernières décennies. de IBM Informix ClientSDK 3.50 - qui, à mon grand chagrin, contient ESQL/C 3.50 bien qu’il ait été publié en 2008).

Ainsi, aclocal.m4 concerne les macros locales qui ne font pas nécessairement partie de Autoconf standard, mais qui sont utilisées par votre logiciel spécifique.

9
Jonathan Leffler

Le lien vers l'article de John Calcote tel que donné par http://freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotools/ . J'aurais commenté cet article mais ma réputation ici est trop basse.

Le paragraphe essentiel:

Le travail de aclocal consiste essentiellement à créer un fichier aclocal.m4 en consolidant divers fichiers de macros à partir de packages Autotool installés et d'emplacements spécifiés par l'utilisateur, de manière à ce qu'Autoconf puisse les trouver tous au même endroit.

0
Earnie