GNU build system

De Wikipedia
diagrama

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ódigo 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[editar | editar la fonte]

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[editar | editar la fonte]

Autoconf procesa los archivos configure.in o configure.ac (anque s'encamienta usar configure.ac[1]). 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[editar | editar la fonte]

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[editar | editar la fonte]

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[editar | editar la fonte]

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[editar | editar la fonte]

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[editar | editar la fonte]

Ver tamién[editar | editar la fonte]

Enllaces esternos[editar | editar la fonte]