Autoherramientas

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 27 de enero de 2018; las comprobaciones requieren 13 ediciones .

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] .

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 .

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.

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

  1. 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.
  2. libtool HACKING Archivado el 21 de julio de 2011 en Wayback Machine , incluidas todas las excepciones de licencia pertinentes.
  3. 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.

Enlaces externos