Que sont et que font au juste les auto-tools ? Les auto-tools sont les outils autoconf, automake, libtool et ceux qui gravitent autour (nous évoquerons aclocal plus loin). Au premier abord, ils permettent de générer des fichiers Makefile que l'on peut paramétrer avec les options fournies au script configure
. Si leur intérêt se limitait à cela, les développeurs préféreraient faire leurs propres fichiers Makefile
et expliquer comment modifier les options par exemple dans un fichier que les Makefile
pourraient inclure.
Les auto-tools permettent de générer des fichiers Makefile
de façon portable, ce qui signifie qu'un programme, tant qu'il ne fait pas appel aux fonctionnalités propres de la plateforme sur laquelle il doit tourner, pourra être compilé partout où les auto-tools (et les dépendances de votre programme) fonctionnent. Notre exemple, conçu sur Darwin (Mac OS X) fonctionnera aussi bien sur Linux que sur Cygwin (MS Windows). Vous n'avez pas à tenir compte vous-même de la version de make
et implicitement du format des fichiers Makefile
et de leurs particularités par exemple.
Mieux, les auto-tools respectent les standards GNU et Unix, en particulier le FHS. Cela fait entre autre la joie des personnes qui créent des paquets pour nos distributions favorites lorsqu'elles respectent aussi le FHS. Ces personnes n'auront aucun mal à adapter les répertoires que votre programme utilise à l'arborescence du système.
Parmi les avantages des auto-tools par rapport à de simples fichiers Makefile
, nous citerons encore le fait que les cibles (pour make) clean
, distcheck
et d'autres sont systématiquement générées, sans le moindre paramétrage supplémentaire de votre part. Il est aussi possible de paramétrer la compilation avec des options --enable-fonctionnalité
ou --with-option
pour le script configure
de notre commande magique. Et j'en passe...
© 2005 Yves Mettier