Automake - Automake

Automake
Heckert GNU blanco.svg
Desarrollador (es) Proyecto GNU
Versión inicial 28 de mayo de 1996 ; Hace 25 años ( 28 de mayo de 1996 )
Lanzamiento estable
1.16.4 / 26 de julio de 2021 ; Hace 40 dias ( 07/26/2021 )
Repositorio
Sistema operativo Multiplataforma
Escribe Herramienta de programación
Licencia Licencia pública general GNU
Sitio web www .gnu .org / software / automake / Edita esto en Wikidata

En el desarrollo de software , GNU Automake es una herramienta de programación para automatizar partes del proceso de compilación. Alivia los problemas habituales de compilación. Por ejemplo, apunta a 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 enlazador , dependencias y sus versiones, etc. Los " Makefile.in " generados son portátiles y cumplen con las convenciones de Makefile en el Estándares de codificación GNU , y puede ser utilizado por los scripts de configuración para generar un Makefile funcional .

La Free Software Foundation mantieneautomakecomo uno de los programas GNU y como parte del sistema de compilación GNU . Se utiliza para construir varias aplicaciones y bibliotecas GNU, como GTK , así como software que no es GNU como XCircuit .

Proceso

Diagrama de flujo de autoconf y automake

Automake tiene como objetivo permitir que el programador escriba un archivo MAKE en un lenguaje de nivel superior, en lugar de tener que escribir todo el archivo MAKE manualmente. En casos sencillos, basta con dar:

  • Una línea que declara el nombre del programa a construir.
  • Una lista de archivos de origen
  • Una lista de opciones de la 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 la línea de comandos que se pasarán al enlazador (qué bibliotecas necesita el programa y en qué directorios se encuentran)

Automake también se encarga de generar automáticamente la información de dependencia , de modo que cuando se modifica un archivo fuente, la próxima invocación del comando make sepa qué archivos fuente deben recompilarse. 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 pidiendo al compilador que vuelva a generar 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.

Diseño

Automake está escrito en Perl y debe usarse con GNU Autoconf . Automake contiene los siguientes comandos:

  • local
  • automake

aclocal , sin embargo, es un programa de propósito general que puede ser útil para los usuarios de autoconf. La Colección de compiladores GNU (GCC), por ejemplo, usa un local aunque su archivo MAKE esté escrito a mano.

Al igual que Autoconf, Automake no es completamente compatible con versiones anteriores . Por ejemplo, un proyecto creado con automake 1.13 no necesariamente funcionará con automake 1.14.

Ver también

Referencias

Fuentes

  • Vaughan, Gary V .; Elliston, Ben; Tromey, Tom (2000). GNU Autoconf, Automake y Libtool . Sams. ISBN 1-57870-190-2.

enlaces externos