Autotools

Un article de Haypo.

(Différences entre les versions)
Version du 4 juillet 2007 à 21:31 (modifier)
Haypo (Discuter | Contributions)

← Différence précédente
Version actuelle (12 décembre 2007 à 13:59) (modifier) (défaire)
Haypo (Discuter | Contributions)
(Makefile.am)
 
(4 révisions intermédiaires masquées)
Ligne 5 : Ligne 5 :
Les '''autotools''' sont des outils de [http://fr.wikipedia.org/wiki/Torture torture] des développeurs de [[Logiciels libres|logiciel libre]]. Les '''autotools''' sont des outils de [http://fr.wikipedia.org/wiki/Torture torture] des développeurs de [[Logiciels libres|logiciel libre]].
-Fichier à écrire :+== Fichier à écrire ==
 + 
* '''autogen.sh''' : appelle aclocal, automake, (libtoolize), autoconf * '''autogen.sh''' : appelle aclocal, automake, (libtoolize), autoconf
* '''configure.ac''' ou '''configure.in''': deviendra configure * '''configure.ac''' ou '''configure.in''': deviendra configure
Ligne 15 : Ligne 16 :
** config.guess, config.sub, libltdl, libtool.m4, ltmain.sh ** config.guess, config.sub, libltdl, libtool.m4, ltmain.sh
-Outils « haut niveau » :+== Outils « haut niveau » ==
* autoheader * autoheader
* autom4te * autom4te
Ligne 21 : Ligne 22 :
* autoupdate * autoupdate
-Fichier génénés :+== Fichier génénés ==
* aclocal.m4: généré par le programme aclocal à partir de configure.in * aclocal.m4: généré par le programme aclocal à partir de configure.in
* configure: Makefile.in => Makefile, config.h (optionnel), xxx.in => xxx * configure: Makefile.in => Makefile, config.h (optionnel), xxx.in => xxx
Ligne 27 : Ligne 28 :
* missing (copie de /usr/share/automakeX.Y/missing) * missing (copie de /usr/share/automakeX.Y/missing)
* depcomp (copie de /usr/share/automakeX.Y/depcomp) * depcomp (copie de /usr/share/automakeX.Y/depcomp)
 +
 +== 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
 +
 +== 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)

Version actuelle

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)