GNU Automake

GNU Automake es una herramienta soportada por el FSF que se encarga de generar automáticamente los archivos Makefile.

Categorías: Documentación Técnica

1. Contexto

es una herramienta que permite generar los archivos Makefile, facilitando el desarrollo pues ya no es necesario escribir el Makefile manualmente, solo basta con establecer una serie de detalles en unos archivos y usar esta herramienta y el trabajo esta listo.

para mas información por favor ver el http://www.gnu.org/software/automake/manual/automake.pdf

2. Pre-requisitos

para poder utilizar esta herramienta es necesario tener instalado Perl, y haber generado los archivos de configuración usando Autoconf

3. Instalación

La instalación de automake es muy sencilla luego de obtener el paquete de automake http://www.gnu.org/software, simplemente se debe proceder a instalar el paquete con el siguiente comando

rpm -i automake.... .rpm

4. Configuración

el trbajo de automake es basicamente leer un archivo makefile.am y generar a aprtir de este un archivo makefile.in

los makefile.am son un conjunto de macros con una serie de reglas que son requeridas en unos casos y en otros no. Debe existir un makefile.am en cada directorio o subdirectorio del paquete a distribuir y la información que contiene es relativa a ese directorio que representa.

4.1. Tipos estructuras de directorios

Automake reconoce 3 tipos de estructuras de directorios 1)flat: Todos los ficheros que componen la distribución se concentran en un directorio que no contiene subdirectorios. Se ahí su significado de plano.

2)shallow: En el directorio principal se encuentra los fuentes del programa principal mientras que el resto se ubican en un determinado subdirectorio

3)deep: En el directorio principal se tienen la configuración del paquete que se va a distribuir por ejemplo los fuentes pueden estar ubicados en un subdirectorio concreto.

En los paquetes con estructura de directorios no flat el makefile.am de nivel superior debe decir a Automake cuales directorios van a ser construidos. Esto se hace por medio de la variable 'SUBDIRS'.

4.2. Variables y tipos

En automake se suelen utilizar variables para saber que objetos deben ser construidos y podemos diferenciar varios tipos de variables:

-Variables primarias

Las primarias son aquellas que contiene valores generales sobre el paquete suelen ser:

pkglibdir , pkgincludedir , pkgdatadir

Está claro qué contienen estas variables. Solamente decir que se refieren a dónde el paquete va a ser instalado.

La variable PROGRAMS hace referencia a los programas que deberán ser compilados y montados.

La variable SOURCES hace referencia a los programas fuentes.

La variable LIBRARIES hace referencia a las librerías.

La variable HEADERS hace referencia a las librerías.

-Variables secundarias

Suelen depender de las primarias. aquí mencionamos las 'EXTRA_' que suelen tener l a forma EXTRA_Nombre_Variable_primaria. Estas variables pueden ser construidas o no dependiendo de la configuración.

4.3. Opciones más importantes de Automake

--include-deps Incluye automáticamente toda la información de dependencias generadas.

--generate-deps Genera un fichero concatenando automáticamente toda la información de las dependencias generadas en un fichero `.dep_segment'.

--output-dir=dir Pone el fichero `Makefile.in' en el directorio especificado por 'dir'. Aunque si no se le dice nada lo suele crear en el mismo directorio donde está en Makefile.am.

5. Que falta

un ejemplo que integre autoconf y automake.

AutoMake (last edited 2009-03-09 00:27:16 by NicolasRobles)