stringtranslate.com

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 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 únicamente 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:

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:

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 .

Enlaces externos