Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ]; del inglés - "autotools") es el sistema de compilación de proyectos GNU , un conjunto de herramientas de software diseñadas para admitir la portabilidad del código fuente del programa entre sistemas similares a UNIX [ 1 ] .
Transferir código de un sistema a otro puede ser una tarea abrumadora. Las diferentes implementaciones del compilador de C pueden variar significativamente: es posible que falten algunas funciones del lenguaje, que tengan un nombre diferente o que estén en bibliotecas diferentes. El programador puede resolver este problema utilizando macros y directivas de preprocesador, por ejemplo #if, #ifdefy otros. Pero en este caso, el usuario que compila el programa en su sistema tendrá que definir todas estas macros, lo que no es tan fácil, ya que existen muchas distribuciones y variaciones del sistema diferentes. Autotools son llamados por una secuencia de comandos ./configure && make && make instally resuelven estos problemas automáticamente.
El sistema de compilación GNU Autotools es parte de la cadena de herramientas GNU y se usa ampliamente en muchos proyectos de código abierto . Las herramientas de compilación se distribuyen bajo la Licencia pública general de GNU y se pueden usar en proyectos comerciales [3] .
Las herramientas de compilación incluyen Autoconf , Automake y Libtool [4] . Otras herramientas utilizadas con GNU Autotools son make , gettext , pkg-config y, por supuesto, GCC y binutils .
Autoconf lee el archivo configure.ac(o uno heredado configure.in ) y genera un script de configuración llamado configure. Autoconf utiliza la implementación GNU del lenguaje de macros m4 para procesar archivos .
El script de configuración generado es ejecutado por el usuario. El script lee archivos con la extensión " " .in, por ejemplo Makefile.in, los procesa (descubriendo todas las características del sistema) y obtiene el resultado final - Makefile.
Autoconf usa algunos programas de ayuda que están escritos para facilitar las cosas. Por ejemplo, Autoheader funciona con archivos de encabezado , autoscan examina el código en busca de problemas típicos de portabilidad y crea el archivo configure.ac.
Automake lee los archivos Makefile.amy crea un portable Makefile, es decir Makefile.in, que luego, después de ser procesado por el script de configuración, se convierte y es utilizado por la Makefileutilidad make .
Libtool gestiona la creación de bibliotecas estáticas y dinámicas en varios sistemas operativos tipo UNIX .
Gnulib simplifica el proceso de creación de programas portátiles utilizando Autoconf y Automake.
Las herramientas de compilación usan secuencias de comandos sh para la personalización en el momento de la compilación.
Las herramientas de compilación se pueden usar tanto para crear programas para la misma arquitectura en la que se está compilando como para compilar de forma cruzada para una arquitectura diferente. [1] . También es posible configurar una compilación para compilar en Windows utilizando MinGW o instalando Cygwin o MSYS encima de Windows para proporcionar el nivel de compatibilidad necesario para ejecutar el script de configuración.
Las herramientas de compilación y el script de configuración tienden a ser lentos porque llaman a varios programas, como el compilador de C, muchas veces para verificar la presencia de varias bibliotecas, archivos de encabezado y funciones de lenguaje.
Sistemas de automatización de montaje | |
---|---|
Proyecto GNU | ||
---|---|---|
Historia | ||
Licencias |
| |
Software _ |
| |
Alusiones personales | ||
Otros temas |
|