Autotools

Un article de Haypo.

Retour à la page précédente Retour aux articles de programmation

Hierarchie des autotools
Hierarchie des autotools

Les autotools sont des outils de torture des développeurs de logiciel libre.

Sommaire

[modifier] Fichier à écrire

  • autogen.sh : appelle aclocal, automake, (libtoolize), autoconf
  • configure.ac ou configure.in: deviendra configure
  • aclocal: configure.in => aclocal.m4 : concaténation de scripts provenant de /usr/share/aclocal/*.m4 ou /usr/share/aclocalX.Y/*.m4
  • autoconf: configure.in => configure
  • automake: Makefile.am => Makefile.in
  • libtoolize: add libtool support for your package
    • config.guess, config.sub, libltdl, libtool.m4, ltmain.sh

[modifier] Outils « haut niveau »

  • autoheader
  • autom4te
  • autoscan
  • autoupdate

[modifier] Fichier génénés

  • aclocal.m4: généré par le programme aclocal à partir de configure.in
  • configure: Makefile.in => Makefile, config.h (optionnel), xxx.in => xxx
  • install-sh (copie de /usr/share/automakeX.Y/install-sh)
  • missing (copie de /usr/share/automakeX.Y/missing)
  • depcomp (copie de /usr/share/automakeX.Y/depcomp)

[modifier] configure.ac

Commandes :

  • AC_xxx : commandes pour autoconf
  • AM_xxx : commandes pour automake
  • AC_OUTPUT : Demander à générer tous les fichiers, ceux listés dans AC_CONFIG_FILES par exemple

[modifier] Makefile.am

  • @XXX@ : remplacé par la valeur de la variable XXX
    • dans configure.ac, il faudra écrire AC_SUBST([XXX])
  • EXTRA_DIST : liste des fichiers inclus en plus dans l'archive (make dist-gzip / make dist-bzip2)
EXTRA_DIST = squid_nufw_helper.conf
  • Règle « install-data-am: » : commandes pour copier des données supplémentaires. Exemple :
install-data-am:
     install -d $(SQUIDDIR)
     test -e $(SQUIDDIR)/squid_nufw_helper.conf || install -o root -g $(SQUID_GROUP) -m 640 squid_nufw_helper.conf $(SQUIDDIR)