Autotools

El sistema de compilación de GNU o GNU Build System, conocido también como Autotools, es un conjunto de herramientas producido por el proyecto GNU. Estas herramientas están diseñadas para ayudar a crear paquetes de código fuente portable a varios sistemas Unix. El GNU Build System forma parte de la cadena de herramientas de GNU y se usa mucho para desarrollar software libre. Aunque las herramientas que contiene el GNU Build System son GPL no existe ninguna restricción para desarrollar software portable no libre con él.

Herramientas incluidas con GNU Build System

editar
Captura de pantalla de GNU Make building Audacious.

El GNU Build System comprende los programas de utilidad GNU Autoconf, Automake y Libtool. Otras herramientas utilizadas frecuentemente son el programa GNU make, GNU gettext, pkg-config y la GNU Compiler Collection (GCC).

GNU Autoconf

editar

Autoconf procesa los archivos configure.in o configure.ac (aunque se recomienda emplear configure.ac[1]​). Cuando ejecuta el script de configuración también puede procesar otros archivos como Makefile.in para producir como salida un archivo Makefile.

Autoconf se concibe para intentar salvar las diferencias que existen entre distintos tipos de Unix. Por ejemplo, algunos sistemas Unix pueden tener funcionalidades que no existen o no funcionan en otros sistemas. Autoconf puede detectar ese problema y busca la forma de solucionarlo. La salida de Autoconf es un script denominado configure. Autoconf incluye la herramienta Autoheader que se usa para manejar los archivos de cabecera de C.

GNU Automake

editar

Automake ayuda a crear archivos Makefile portables. Estos son procesados después por la herramienta Make. Toma como entrada un archivo Makefile.am y lo transforma en un Makefile.in. Este, a su vez, es utilizado por Autoconf para generar el archivo Makefile final.

GNU Libtool

editar

Libtool ayuda a generar bibliotecas estáticas y dinámicas para varios sistemas operativos Unix. Libtool abstrae el proceso de creación de las bibliotecas ocultando las diferencias entre los distintos sistemas (entre GNU/Linux y Solaris por ejemplo).

Ventajas de GNU Build System

editar

El GNU Build System provee de un entorno de programación que permite escribir código portable. Al menos entre distintos tipos de Unix. También logra que el proceso de construcción sea más fácil para el usuario, logrando que el usuario tan solo necesite un pequeño número de comandos para construir e instalar el programa.

Las utilidades usadas por el sistema de compilación GNU son necesarias exclusivamente en la máquina de desarrollo. Los usuarios no necesitan Autoconf, Automake o Libtool para construir o instalar el software. Esto hace que el GNU Build System sea autocontenido. Únicamente hacen falta herramientas estándares de Unix para construirlo. Esto se consigue por medio de scripts que ayudan a configurar el software para el sistema operativo de un determinado usuario.

Las utilidades disponibles en el GNU Build System pueden ser trabajadas juntas o separadas. Un proyecto puede emplear una de ellas sin necesidad de utilizar el resto.

Desventajas del GNU Build System

editar

El GNU Build System toma los scripts compatibles con el intérprete de comandos Bourne para ayudar al usuario en la configuración y en el proceso de construcción. Sin embargo, hay algunos sistemas operativos (como la familia de Microsoft Windows) que no pueden ejecutar los scripts del intérprete Bourne por sí mismos. Esto hace más difícil construir software en los Sistemas Operativos Windows que en un sistema Unix. De todas formas se puede instalar el sistema MinGW en Windows para proveer de una capa de compatibilidad (y opcionalmente Cygwin para añadir compatibilidad con POSIX). De esta manera se dispondría de un entorno con todas las herramientas propias de Unix.

Los proyectos que usan el sistema de compilación GNU pueden disponer, o no, de un archivo configure. Si no dispone de él podemos generarlo siguiendo estos pasos:

$ aclocal
$ autoheader
$ automake
$ autoconf

No todos los comandos son necesarios. Dependiendo del uso que haga el proyecto del GNU Build System puede que tengamos que utilizar uno o más de estos pasos.

Referencias

editar

Véase también

editar

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

README

la década de 1970.​​ Un archivo README es un requerimiento en los GNU Coding Standards.​ Desde que la web se ha convertido en una plataforma estándar de

GNU Guile

diciembre de 2025). «GNU Guile 3.0.11 released». GNU. Free Software Foundation, Inc. Consultado el 2 de diciembre de 2025.  «GNU Coding Standards: 3.1 Which Languages

M4 (lenguaje de programación)

octubre de 2020. Consultado el 23 de junio de 2020.  «Semantics (GNU Coding Standards)». www.gnu.org. Consultado el 23 de junio de 2020.  Datos: Q292068

Transparencia (compresión de datos)

Marina Bosi y Richard E. Goldberg, Introduction to digital audio coding and standards (“Introducción a la codificación de audio digital y a los estándares”)

Código de seguridad eléctrica

conductors» (en inglés). Consultado el 10 de julio de 2024.  «Wire colour coding abroad» (en inglés). 25 de febrero de 2011.  DS/EN 60364 afsnit 514.3.1

JPEG 2000

compresion» (pdf). Reversible integer-to-integer wavelet tranforms for image coding.  Michael W. Marcellin et al. (2000). An Overview of JPEG-2000 (pdf). Archivado

Espacio entre oraciones

152 pages. ISBN 978-0-8261-0207-2.  «5.2 Commenting Your Work». GNU Coding Standards. Free Software Foundation. 12 de abril de 2010. Consultado el 17

Reproductor de multimedia portátil

de archivo MP3, por ejemplo, Windows Media Audio (WMA), Advanced Audio Coding (AAC), Vorbis, FLAC, Speex y Ogg. Muchos reproductores de MP3 pueden codificar