Autoherramientas
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 [2] [3] .
Componentes de GNU Autotools
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 .
GNU Autoconf
Autoconf lee el archivo configure.ac(o uno heredado configure.in[5] ) 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.
GNU Automake
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 .
GNU libtool
Libtool gestiona la creación de bibliotecas estáticas y dinámicas en varios sistemas operativos tipo UNIX .
Gnulib
Gnulib simplifica el proceso de creación de programas portátiles utilizando Autoconf y Automake.
Limitaciones de las herramientas de compilación de GNU
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.
Véase también
Notas al pie
- ↑ Documentación del sistema de compilación GNU . Fecha de acceso: 9 de enero de 2011. Archivado desde el original el 23 de diciembre de 2010.
- ↑ Excepción de licencia de autoconf . Consultado el 6 de noviembre de 2010. Archivado desde el original el 21 de julio de 2011.
- ↑ libtool HACKING Archivado el 21 de julio de 2011 en Wayback Machine , incluidas todas las excepciones de licencia pertinentes.
- ↑ Aprendiendo las herramientas de desarrollo de GNU: Prefacio . Consultado el 6 de noviembre de 2010. Archivado desde el original el 1 de diciembre de 2010.
- ↑ "Escribiendo configure.ac" . Consultado el 6 de noviembre de 2010. Archivado desde el original el 25 de diciembre de 2010.
Enlaces externos
- El sistema de configuración y compilación de GNU Archivado el 28 de agosto de 2007 en Wayback Machine .
- The pkg-config Archivado el 21 de agosto de 2008 en el paquete Wayback Machine .
- manual de fabricación automática
- Documentación de GNU automake . Archivado el 3 de diciembre de 2010 en Wayback Machine .
- Documentación de GNU autoconf (ruso)
- Tutorial de Autotools Archivado el 27 de diciembre de 2010 en Wayback Machine .
- GNU Autoconf, Automake y Libtool Archivado el 20 de diciembre de 2010 en Wayback Machine .
- Autotools: una guía práctica para Autoconf , Automake y Libtool
- Una serie de artículos sobre GNU Autotools (ruso)
- Uso de GNU Autotools. Creando su script de configuración y Makefile Archivado el 22 de marzo de 2018 en Wayback Machine (ruso)
- Libro de cabras Archivado el 15 de abril de 2017 en Wayback Machine .
- Autotools Mythbuster (licencia CreativeCommons Attribution-NonCommercial-ShareAlike 3.0 Unported) Archivado el 11 de junio de 2017 en Wayback Machine .