Articulo de referencia

Configuración automática

GNU Autoconf es una herramienta para producir scripts de configuración para construir, instalar y empaquetar software en sistemas informáticos donde está disponible un shell Bou...

GNU Autoconf es una herramienta para producir scripts de configuración para construir, instalar y empaquetar software en sistemas informáticos donde está disponible un shell Bourne .

Autoconf es agnóstico en cuanto a los lenguajes de programación utilizados, pero a menudo se utiliza para proyectos que utilizan C , C++ , Fortran , Fortran 77, Erlang o Objective-C .

Un script de configuración configura un paquete de software para su instalación en un sistema de destino en particular. Después de ejecutar una serie de pruebas en el sistema de destino, el script de configuración genera archivos de encabezado y un archivo makefile a partir de plantillas, personalizando así el paquete de software para el sistema de destino. Junto con Automake y Libtool , Autoconf forma el GNU Build System , que comprende varias otras herramientas, en particular Autoheader.

Descripción general del uso

Diagrama de flujo de Autoconf y Automake . Tenga en cuenta que "configure.ac" se denominaba "configure.in" en las primeras versiones de Autoconf.

El desarrollador especifica el comportamiento deseado del script de configuración escribiendo una lista de instrucciones en el lenguaje GNU m4 en un archivo llamado "configure.ac". Hay disponible una biblioteca de macros m4 predefinidas para describir instrucciones comunes del script de configuración. Autoconf transforma las instrucciones en "configure.ac" en un script de configuración portátil. El sistema que realizará la compilación no necesita tener instalado Autoconf: Autoconf es necesario únicamente para compilar el script de configuración, que generalmente se envía con el software.

Historia

Autoconf fue creado en el verano de 1991 por David Mackenzie para apoyar su trabajo en la Free Software Foundation . En los años siguientes, creció hasta incluir mejoras de diversos autores y se convirtió en el sistema de configuración de compilación más utilizado para escribir software libre o de código abierto portable .

Acercarse

Autoconf es similar al paquete Metaconfig que utiliza Perl . El sistema imake que utilizaba anteriormente X Window System (hasta X11R6.9) está estrechamente relacionado, pero tiene una filosofía diferente.

El enfoque de Autoconf para la portabilidad es probar las características , no las versiones . Por ejemplo, el compilador C nativo en SunOS 4 no era compatible con ISO C. Sin embargo, es posible que el usuario o el administrador hayan instalado un compilador compatible con ISO C. Un enfoque basado puramente en versiones no detectaría la presencia del compilador ISO C, pero un enfoque de prueba de características podría descubrir el compilador ISO C que el usuario había instalado. La razón de este enfoque es obtener las siguientes ventajas:

  • El script de configuración puede obtener resultados razonables en sistemas más nuevos o desconocidos.
  • Permite a los administradores personalizar sus máquinas y hacer que el script de configuración aproveche las personalizaciones.
  • No es necesario realizar un seguimiento de los detalles minuciosos de las versiones, números de parches, etc., para determinar si una característica particular es compatible o no.

Autoconf proporciona una amplia documentación sobre la falta de portabilidad de muchas construcciones de shell POSIX a shells más antiguos y los errores que presentan. También proporciona M4SH, un reemplazo basado en macros para la sintaxis de shell. [2]

Crítica

Hay algunas críticas que afirman que Autoconf utiliza tecnologías obsoletas, tiene muchas restricciones heredadas y complica escenarios simples innecesariamente para el autor de scripts configure.ac . En particular, los puntos débiles de Autoconf que se citan con frecuencia son:

  • Complejidad general de la arquitectura utilizada, la mayoría de los proyectos utilizan múltiples repeticiones. [3] [4]
  • Algunas personas piensan que los scripts de 'configuración' generados por Autoconf proporcionan únicamente una interfaz de línea de comandos controlada manualmente sin ningún tipo de estandarización. [5] Si bien es cierto que algunos desarrolladores no respetan las convenciones comunes, dichas convenciones existen y se utilizan ampliamente. [6]
  • m4 es inusual y desconocido para muchos desarrolladores. Los desarrolladores deberán aprenderlo para ampliar Autoconf con comprobaciones no estándar. [5] [7]
  • La compatibilidad débil con versiones anteriores y posteriores requiere un script contenedor. [8]
  • Los scripts generados por Autoconf suelen ser grandes y bastante complejos. Aunque generan registros extensos, depurarlos puede resultar complicado.

Debido a estas limitaciones, varios proyectos que usaban GNU Build System cambiaron a sistemas de compilación diferentes, como CMake y SCons . [3] [9]

Véase también

Referencias

  1. ^ Zachary Weinberg (22 de diciembre de 2023). «autoconf-2.72 publicado [estable]» . Consultado el 25 de diciembre de 2023 .
  2. ^ "Portable Shell". Autoconf . Consultado el 20 de enero de 2020 .
  3. ^ ab Neundorf, Alexander (21 de junio de 2006). "Por qué el proyecto KDE cambió a CMake y cómo".
  4. ^ Kamp, Poul-Henning (15 de agosto de 2012). "Una generación perdida en el bazar". ACM Queue . 10 (8): 20–23. doi : 10.1145/2346916.2349257 . S2CID  11656592.
  5. ^ ab McCall, Andrew (21 de junio de 2003). "¡Detengamos la locura de la configuración automática! Por qué necesitamos un nuevo sistema de compilación".
  6. ^ "Estándares de codificación GNU".
  7. ^ Kamp, Poul-Henning (20 de abril de 2010). "¿Llamaste a esas herramientas de basura automática?". Archivado desde el original el 11 de septiembre de 2017. Consultado el 16 de agosto de 2017 .
  8. ^ Dickey, Thomas. "¿Por qué sigo usando autoconf 2.13?".
  9. ^ "Blender.org - Construye sistemas". Archivado desde el original el 2008-12-02 . Consultado el 2009-06-10 .
  • Sitio web oficial
  • Archivo de macros de GNU Autoconf
  • La página de inicio de Goat Book (también conocida como Autobook) Archivado el 20 de diciembre de 2010 en Wayback Machine
  • Uso de Automake y Autoconf con C++
  • Uso de bibliotecas C/C++ con Automake y Autoconf.
  • Página de inicio de Autotoolset
  • Autotools: una guía práctica sobre Autoconf, Automake y Libtool
  • Detección de mitos sobre las herramientas automáticas
Obtenido de "https://es.wikipedia.org/w/index.php?title=Autoconf&oldid=1227906127"