GNU build system

El **GNU build system** conocíu tamién como **Autotools** ye un conxuntu de ferramientes producíu pol proyeutu GNU. Estes ferramientes tán diseñaes p'ayudar a crear paquetes de códigu fuente portable a dellos sistemes Unix. El GNU build system forma parte de GNU toolchain y úsase enforma pa desenvolver software llibre. Anque les ferramientes que contién el GNU build system son GPL nun esiste nenguna restricción pa crear software portable non llibre con él.

## Ferramientes incluyíes con GNU build system
El GNU build system entiende los programes d'utilidá GNU Autoconf, Automake y Libtool. Otres ferramientes usaes frecuentemente son el programa GNU make, GNU gettext, pkg-config y la GNU Compiler Collection (GCC).

### GNU Autoconf
Autoconf procesa los archivos `configure.in` o `configure.ac` (anque s'encamienta usar `configure.ac`). Cuando executa'l script de configuración tamién puede procesar otros archivos como `Makefile.in` pa producir como salida un archivu `Makefile`.

Autoconf usar pa intentar salvar les diferencies qu'esisten ente distintos tipos d'Unix. Por casu, dellos sistemes Unix pueden tener funcionalidades que nun esisten o nun funcionar n'otros sistemes. Autoconf puede detectar esi problema y busca la forma de solucionalo. La salida de Autoconf ye un script denomináu configure. Autoconf inclúi la ferramienta Autoheader que s'usa pa remanar los archivo de cabecera de C.

### GNU Automake
Automake ayuda a crear archivos `Makefile` portables. Estos son procesaos dempués pola ferramienta make. Toma como entrada un archivu `Makefile.am` y tresformar nun `Makefile.in`. Este, de la mesma, ye utilizáu por Autoconf pa xenerar l'archivu `Makefile` final.

### GNU Libtool
Libtool ayuda a crear biblioteques estátiques y dinámiques pa dellos sistemes operativos Unix. Libtool abstrae el procesu de creación de les biblioteques despintando les diferencies ente los distintos sistemes (ente GNU/Linux y Solaris por casu).

## Ventayes de GNU build system
El GNU build system aprove d'una redolada de programación que dexa escribir códigu portable. Siquier ente distintos tipos d'Unix. Tamién llogra que'l procesu de construcción seya más fácil pal usuariu. Llogrando que l'usuariu tan solo precise un pequeñu númberu de comandos pa construyir ya instalar el programa.

Les utilidaes usaes pol GNU build system son necesaries puramente na máquina de desenvolvimientu. Los usuarios nun precisen Autoconf, Automake o Libtool pa construyir o instalar el software. Esto fai que'l GNU build system seya *autu conteníu*. Tan solo faen falta ferramientes estándares d'Unix pa construyilo. Esto consíguese usando scripts qu'ayuden a configurar el software pal sistema operativu d'un determináu usuariu.

Les utilidaes disponibles nel GNU build system pueden ser usaes xuntes o separaes. Un proyeutu puede usar una d'elles ensin necesidá d'utilizar el restu.

## Desventaxes del GNU build system
El GNU build system usa scripts compatibles cola shell Bourne p'ayudar al usuariu na configuración y nel procesu de construcción. Sicasí hai dellos sistemes operativos (como la familia de Microsoft Windows) que nun pueden executar los scripts de la shell Bourne por si mesmos. Esto fai más difícil construyir software nos Sistemes Operativos Windows que nun sistema Unix. De toes formes puede instalase el sistema MinGW en Windows p'aprovir d'una capa compatible (y opcionalmente Cygwin p'añader compatibilidá con POSIX). D'esta forma disponer d'una redolada con toles ferramientes propies de Unix.

Los proyeutos qu'usen el GNU build system pueden disponer, o non, d'un archivu configure. Si nun dispón d'él podemos xeneralo siguiendo estos pasos:

`$ aclocal` 
`$ autoheader` 
`$ automake` 
`$ autoconf`

Non tolos comandos son necesarios. Dependiendo del usu que faiga'l proyeutu del GNU build system pue que tengamos qu'utilizar unu o más d'estos pasos.

## Referencies

## Ver tamién
* CMake
* Waf

## Enllaces esternos
* El llibru *GNU Autoconf, Automake and Libtool*, por Gary V. Vaughan, Ben Elliston, Tom Tromey, y Ian Lance Taylor. 
** ISBN 1-57870-190-2
** disponible online en http://sources.redhat.com/autobook so los términos de la Open Publication License (con nenguna de les opciones exercitaes).
* El Estandard de codificación GNU (especialmente'l capítulu sobre *The Release Process*).
* El paquete pkg-config
* GNU Autoconf Sitiu web oficial (n'inglés)
* GNU Libtool Sitiu web oficial (n'inglés)
* GNU Automake Sitiu web oficial (n'inglés)
* GNU Automake homepage Sitiu oficial (n'inglés)
* The GNU Coding Standards (especialmente'l capítulu *The Release Process*).
* pkg-config paquete
* Tutorial sobre Autotools pa primerizos .
* Tutorial pa primerizos Autotools 
* GNU Autoconf, Automake y Libtool, por Gary V. Vaughan, Ben Elliston, Tom Tromey y Ian Lance Taylor. ISBN 1-57870-190-2