Autotools 1 …

24 10 2007

En la sección anterior vimos un ejemplo sencillo de cómo hacer un sencillo programa Hola Mundo usando las herramientas configure y automake. Por lo general es la variante que más se utiliza, aunque, como dijimos al principio se pueden usar las herramientas por separado. Abordaremos en detalle cada una:

Autoconf

Autoconf es una herramienta para producir scripts por consola que configuren automáticamente paquetes de código fuente que se adapten a systemas de tipo POSIX. Los usuarios no necesitan de la herramienta una vez que se generen estos archivos.

El fichero configure.ac como regla general necesita de dos etiquetas como mínimo que encapsulen las opciones que albergue:

AC_INIT()
..
.
AC_OUTPUT

En el AC_INIT pudiésemos incluir opciones relacionadas con nuestro proyecto, por ejemplo:

AC_INIT([ejemplo], [0.1], [usuario@lector.com])
..

La herramienta permite también la creación de otros ficheros que se distribuirán y que muchos usan para brindar otro tipo de información relevante a nuestro proyecto. Entre ellos se encuentran registros de cambio de versiones ( ChangeLog ), noticias, guías de instalación así como otros. No es objetivo tratar cómo se crearán estos ficheros, para ello es necesario consultar la documentación de la herramienta.

Ignoraremos la creación de los ficheros expuestos anteriormente añadiendo al configure.ac la siguiente línea:

AM_INIT_AUTOMAKE([-Wall -Werror foreign])

Como pudieron notar esta directiva empieza con “AM” lo que significa que pertenece a una directiva del automake. Ya necesitamos en este punto usar esta otra herramienta.

Debemos definir también elementos característicos de nuestro proyecto, como es el lenguaje de programación que se usa ( puede ser múltiple ), si trabajamos con bibliotecas estáticas o dinámicas, si exportamos cabeceras, entre otras cosas.

Expondremos las opciones para especificar el lenguaje de programación en que desarrollemos:

AC_PROG_CXX >> si deseamos trabajar en C++
AC_PROG_CC >> si deseamos trabajar en C
AC_PROG_FC >> si deseamos trabajar en Fortran
AC_PROG_F77 >> si deseamos trabajar en Fortran 77
AC_PROG_OBJC >> si deseamos trabajar en Objective C

Luego nos quedaría por incluir los Makefile que usaremos en el proceso de construcción. Para el ejemplo que expusimos anteriormente quedaría de la siguiente forma:

AC_CONFIG_FILES([
Makefile
])

El fichero nos quedaría de esta forma finalmente:

AC_INIT([ejemplo], [0.1], [usuario@lector.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CXX
AC_CONFIG_FILES([
Makefile
])
AC_OUTPUT

Crearemos ahora también un script que nos ayudará a generar los ficheros que se encargarán de construir nuestro proyecto:
autogen.sh:

#!/bin/sh
aclocal
autoconf
autoheader
automake --add-missing --foreign
./configure

Si hasta este punto usaremos solamente el autoconf es necesario que el usuario cree su propio Makefile y elimine la llamada a automake del autogen.sh No es objetivo de esta serie de artículos orientan sobre cómo crear manualmente los Makefile. Para ello explicaremos en más detalle, en la siguiente sección, la herramienta automake.

Advertisements

Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s




%d bloggers like this: