title: Autoconf
text: # Autoconf
  
  GNU Autoconf est un logiciel servant à produire des scripts shell qui configurent automatiquement le code source d'un logiciel pour l'adapter à divers systèmes d'exploitation de type Unix. Les scripts produits par Autoconf sont indépendants de cet outil quand ils s'exécutent, de sorte que les usagers de ces scripts n'ont pas besoin d'avoir Autoconf.
  
  Avec GNU Automake et GNU Libtool, Autoconf forme le système de compilation de GNU.
  
  Autoconf utilise le préprocesseur GNU M4 pour transformer un fichier « configure.ac » (ou « configure.in » anciennement) en un script shell portable nommé « configure ». Le script « configure » exécute de façon non interactive et génère des en-têtes adaptés et des makefiles dérivés de modèles préétablis. On peut considérer qu'Autoconf compile un programme m4 vers un script shell.
  
  ## Approche
  
  Autoconf est semblable au système Metaconfig utilisé par Perl. Le système imake (en) utilisé par le X Window System lui est apparenté, mais est basé sur une philosophie différente.
  
  L'approche employée par Autoconf pour viser la portabilité est de tester des fonctionnalités plutôt que de déterminer la version des logiciels présents sur un système. Par exemple, le compilateur C sous SunOS 4 ne reconnaissait pas la norme de l'ISO pour ce langage. Toutefois, il est possible que l'administrateur du système ait installé un compilateur le reconnaissant. Une approche purement basée sur les versions de logiciels n'aurait pas fait usage de ce compilateur ISO, mais une approche basée sur les fonctionnalités serait capable de découvrir que le compilateur spécifié respecte la norme ISO. Les justifications de cette approche sont les suivantes :
  
  * le script de configuration peut obtenir des résultats raisonnables sur des systèmes récents ou inconnus ;
  * les administrateurs peuvent adapter leur système et voir le script de configuration profiter de ces adaptations ;
  * il n'est pas nécessaire de garder la trace de nombreux détails concernant les versions, les correctifs, etc., pour déterminer si une fonctionnalité particulière est disponible ou non.
  
  ## GNU Autoconf Archive
  
  Autoconf Archive est une collection de plus de 400 macros pour Autoconf distribuée sous la forme d’un projet annexe indépendant.
  
  