GNU Automake es una herramienta de desarrollo de software que automatiza partes del proceso de compilación. Facilita problemas comunes de compilación. Por ejemplo, indica las dependencias necesarias.
Genera automáticamente uno o más Makefile.in a partir de archivos llamados Makefile.am . Cada Makefile.am contiene, entre otras cosas, definiciones de variables útiles para el software compilado, como indicadores del compilador y del enlazador , dependencias y sus versiones, etc. Los " Makefile.in " generados son portables y cumplen con las convenciones Makefile de los Estándares de codificación GNU , y pueden ser utilizados por scripts de configuración para generar un Makefile funcional . [2]
La Free Software Foundation mantienemarca de autocomo uno de los programas GNU y como parte del sistema de compilación GNU . Se utiliza para compilar varias aplicaciones y bibliotecas GNU, como GTK , [3] así como software no GNU como XCircuit . [4]
Proceso

Automake tiene como objetivo permitir al programador escribir un makefile en un lenguaje de alto nivel, en lugar de tener que escribir todo el makefile manualmente. En casos sencillos, basta con dar:
- Una línea que declara el nombre del programa a construir
- Una lista de archivos fuente
- Una lista de opciones de línea de comandos que se pasarán al compilador (por ejemplo, en qué directorios se encontrarán los archivos de encabezado)
- Una lista de opciones de línea de comandos que se pasarán al enlazador (qué bibliotecas necesita el programa y en qué directorios se encontrarán)
Automake también se encarga de generar automáticamente la información de dependencias , [5] de modo que cuando se modifica un archivo fuente, la siguiente invocación del comando make sabrá qué archivos fuente necesitan ser recompilados. Si el compilador lo permite, Automake intenta hacer que el sistema de dependencias sea dinámico: siempre que se compila un archivo fuente, las dependencias de ese archivo se actualizan solicitando al compilador que regenere la lista de dependencias del archivo. En otras palabras, el seguimiento de dependencias es un efecto secundario del proceso de compilación.
Esto intenta evitar el problema con algunos sistemas de dependencia estática, donde las dependencias se detectan solo una vez cuando el programador comienza a trabajar en el proyecto. [6]
Diseño
Automake está escrito en Perl y debe utilizarse con GNU Autoconf . [2] Automake contiene los siguientes comandos:
- alocal
- marca de auto
Sin embargo, aclocal es un programa de propósito general que puede resultar útil para los usuarios de autoconf. La Colección de compiladores GNU (GCC), por ejemplo, utiliza aclocal aunque su archivo makefile esté escrito a mano.
Al igual que Autoconf, Automake no es totalmente compatible con versiones anteriores . Por ejemplo, un proyecto creado con automake 1.13 no necesariamente funcionará con automake 1.14. [7]
Véase también
- Script de configuración : script de shell para generar archivos de configuración de compilación en un entorno similar a Unix
- Make (software) : herramienta de automatización de la creación de software
Referencias
- ^ Jim Meyering (11 de julio de 2024). «automake-1.17 released [stable]» ( publicado [estable]) . Consultado el 12 de julio de 2024 .
- ^ ab "GNU Automake". GNU . Free Software Foundation . 2021-10-01 . Consultado el 2024-04-26 .
- ^ "Compilación de las bibliotecas GTK+" . Consultado el 26 de abril de 2024 .
- ^ "Compilación e instalación de XCircuit" . Consultado el 26 de abril de 2024 .
- ^ "Manual de Automake: seguimiento automático de dependencias". GNU.org . Consultado el 26 de abril de 2024 .
- ^ "Historia de Automake". GNU.org . Consultado el 26 de abril de 2024 .
- ^ "Re: ¿"make distclean" está roto?". 2013-07-16 . Consultado el 2024-04-26 .
Fuentes
- Vaughan, Gary V.; Elliston, Ben; Tromey, Tom (2000). GNU Autoconf, Automake y Libtool . Sams. ISBN 1-57870-190-2.
Enlaces externos
- Sitio web oficial
- Versión en línea de The Goat Book, también conocido como Autobook Archivado el 20 de diciembre de 2010 en Wayback Machine.
- Manual combinado para Automake y Autoconf
- Página de inicio de Autotoolset