GNU Automake

GNU Automake

GNU Automake est un logiciel générant des makefiles portables qui peuvent être utilisés par make pour compiler des programmes. C'est un logiciel libre développé et maintenu par le projet GNU et utilisé dans le processus de compilation du système GNU. Les makefiles produits se conforment aux normes de programmation de GNU.

Diagramme de flux de données d'autoconf et d'automake

Automake est écrit en Perl et doit être utilisé avec Autoconf, un autre outil GNU. Il contient les commandes suivantes:

  • aclocal
  • automake

Automake peut présenter des difficultés à cause du fait que les versions récentes ne sont pas compatibles avec les plus anciennes. Par exemple, un projet créé avec Automake 1.4 ne fonctionnera pas avec Automake 1.9.

Sommaire

Approche

Automake vise à permettre au programmeur d'écrire un makefile dans un langage de plus haut niveau, plutôt que d'avoir à écrire le makefile au complet à la main. Dans les cas simples, il suffit de donner :

  • une ligne qui déclare le nom du programme à compiler;
  • une liste de fichiers sources;
  • une liste d'options à passer au compilateur (notamment, dans quels répertoires les en-têtes seront trouvés);
  • une liste d'options à passer à l'éditeur de liens (de quelles bibliothèques le programme a besoin et dans quels répertoires elles se trouvent);

À partir de cette information, Automake génère un makefile qui permet à l'usager de :

  • compiler le programme;
  • nettoyer (supprimer les fichiers produits par la compilation);
  • installer le programme dans les répertoires prévus par les normes GNU;
  • désinstaller le programme des répertoires où il a été installé;
  • créer une archive de distribution des sources (souvent appelée tarball en anglais);
  • vérifier que cette archive est auto-suffisante, et en particulier qu'il est possible de compiler le programme dans un répertoire autre que celui où les sources sont déployées);

Automake s'occupe aussi de générer automatiquement les informations de dépendances, afin que lorsqu'un fichier source est modifié, la prochaine invocation de la commande make sache quels fichiers sources ont besoin d'être recompilés en conséquence. Si le compilateur le permet, Automake tente de rendre le système de dépendances dynamique: chaque fois qu'un fichier source est compilé, les dépendances de ce fichier sont mises à jour en demandant au compilateur de regénérer la liste des dépendances de ce fichier. Autrement dit, la gestion des dépendances est un effet de bord du processus de compilation.

Ceci tente d'éviter le problème avec certains systèmes de dépendances statiques où les dépendances ne sont détectées qu'une seule fois quand le programmeur commence à travailler sur un projet. Dans un tel cas, si un fichier source acquiert une nouvelle dépendance (par exemple, si on ajoute une directive #include à un fichier source en C), une disparité apparaît alors entre les vraies dépendances et celles qui sont utilisées par le système de compilation. Le programmeur devrait alors regénérer les dépendances, mais il risque d'oublier de le faire.

Automake facilite aussi la compilation de bibliothèques en générant automatiquement des makefiles qui invoquent GNU Libtool. Le programmeur est alors exempté d'avoir à utiliser Libtool directement et le projet bénéficie d'un outil capable de créer des bibliothèques de façon portable.

Bibliographie

  • (en) « A Practitioner's Guide to GNU Autoconf, Automake, and Libtool » (par John Calcote - ISBN 978-1-59327-206-7).

Voir aussi

Articles connexes

Références externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GNU Automake de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • GNU Automake — es una herramienta de programación que produce programas makefiles portables para el uso de make usado en la compilación de software. Es mantenido por la Fundación de Software Libre como uno de los programas GNU y es parte del sistema de… …   Wikipedia Español

  • Automake — GNU Automake est un logiciel générant des makefiles portables qui peuvent être utilisés par make pour compiler des programmes. Il provient de la Free Software Foundation et fait partie du système de compilation GNU. Les makefiles produits se… …   Wikipédia en Français

  • GNU build system — GNU logo The GNU build system, also known as the Autotools, is a suite of programming tools designed to assist in making source code packages portable to many Unix like systems. It can be difficult to make a software program portable: the C… …   Wikipedia

  • GNU GLOBAL — Code source du noyau Linux 2.6.18 …   Wikipédia en Français

  • Automake — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU Autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU Build System — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Automake — Infobox Software name = Automake developer = The GNU Project latest release version = 1.10.1 latest release date = January 21, 2008 operating system = Cross platform genre = Programming tool license = GNU General Public License website =… …   Wikipedia

  • GNU build system — Se ha sugerido que este artículo o sección sea fusionado con Sistema de construcción para GNU (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí. El GNU build system conocido también como Autotools …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”