GNU Automake
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 construcci贸n para GNU. El archivo Makefile generado sigue la directiva est谩ndar de codificaci贸n GNU.
Automake | ||
---|---|---|
Parte de Proyecto GNU y GNU build system | ||
![]() | ||
![]() | ||
Informaci贸n general | ||
Tipo de programa | Herramienta de programaci贸n | |
Desarrollador | The GNU Project | |
Licencia | GNU General Public License | |
Estado actual | En desarrollo | |
Informaci贸n t茅cnica | ||
Programado en | Perl | |
Plataformas admitidas | Multiplataforma | |
Versiones | ||
脷ltima versi贸n estable | 1.16.5 (info) ( 3 de octubre de 2021 (11 meses y 8 d铆as)) | |
Enlaces | ||
Est谩 escrita con el lenguaje de programaci贸n Perl y debe ser usado con GNU autoconf. Automake contiene los siguientes comandos:
- aclocal
- automake
Sin embargo aclocal es un programa de uso general que puede ser usado por los usuarios de autoconf. La Colecci贸n de compiladores GNU usa aclocal aunque sus archivos makefile est谩n escritos a mano.
Al igual que Autoconf, Automake puede ser dif铆cil de utilizar porque no es completamente compatible con versiones anteriores. Por ejemplo, un proyecto creado con la versi贸n 1.4 no tiene porque ser compatible con la 1.9.
Introducci贸n
Automake intenta que el programador pueda escribir un archivo makefile en un lenguaje de alto nivel en vez de tener que escribir todo el makefile manualmente. En los casos simples es suficiente con dar:
- una l铆nea que declare el nombre del programa a construir;
- una lista de archivos fuente;
- una lista de opciones para pasar al compilador (los directorios donde localizar los archivos de cabecera);
- una lista de opciones para pasar al enlazador (las bibliotecas que necesita el programa y en qu茅 directorios se encuentran).
Con esta informaci贸n Automake genera un archivo makefile que permite que el usuario pueda:
- compilar el programa;
- limpiar (eliminar los archivos resultantes de la compilaci贸n);
- instalar el programa en los directorios est谩ndar;
- desinstalar el programa donde se haya instalado;
- crear un archivo fuente de distribuci贸n (com煤nmente llamado tarball);
- comprobar que el archivo es autosuficiente y en concreto que el programa puede ser compilado en un directorio diferente al que se descomprimi贸 los fuentes.
Automake tambi茅n tiene cuidado de generar la informaci贸n de dependencias; as铆 como cu谩ndo se ha modificado un archivo fuente. La siguiente invocaci贸n del comando make sabr谩 qu茅 archivos fuente se van a recompilar. Si el compilador lo permite automake intentar谩 hacer un sistema de dependencias din谩mico. Cada vez que un archivo fuente es compilado las dependencias del archivo son actualizadas. Para ello pregunta al compilador la lista de dependencias de ese archivo. En otras palabras, el seguimiento de dependencias es un efecto secundario del proceso de compilaci贸n.
Esto intenta evitar los problemas con algunos sistemas de dependencia est谩ticos en los que las dependencias solo son detectadas cuando el programador empieza a trabajar en un proyecto. En tal caso si un archivo fuente tiene una nueva dependencia (si el programador a帽ade una nueva directiva #include en el archivo fuente en C se a帽ade una discrepancia entre las dependencias reales y aquellas que son usadas por el sistema de compilaci贸n. El programador debe regenerar las dependencias pero corre el riesgo de olvidar hacerlo.
Automake tambi茅n puede ayudar en la compilaci贸n de bibliotecas generando autom谩ticamente archivos makefile que invocar谩n la herramienta GNU Libtool. El programador no necesita conocer como llamar directamente a Libtool y el beneficio de usar una utilidad de creaci贸n de bibliotecas portable.
V茅ase tambi茅n
Portal:Software libre. Contenido relacionado con Software libre.
- CMake
- imake
Referencias
- Gary V. Vaughan, Ben Elliston, Tom Tromey: Gnu Autoconf, Automake, and Libtool, Sams, ISBN 1-57870-190-2
Enlaces externos
- P谩gina principal de Automake
- Versi贸n En l铆nea version de The Goat Book alias Autobook
- Tutorial "Aprendiendo Autoconf y Automake" por Eleftherios Gkioulekas
- Tutorial for beginners "Autotools Tutorial" por Sarah George
- Article "Usando Automake y Autoconf with C++" por Murray Cumming
- P谩gina principal de Autotoolset
- The "Autotools Tutorial" por Alexandre Duret-Lutz introduce Autoconf, Automake, Libtool, y Gettext.