autoconf | |
---|---|
| |
Tipo de | software de herramienta |
Desarrollador | proyecto GNU |
Escrito en | perlas , m4 |
Sistema operativo | software multiplataforma |
Primera edición | 1991 |
ultima versión |
|
Licencia | GPL |
Sitio web | gnu.org/software/autocon... |
Archivos multimedia en Wikimedia Commons |
Autoconf es una utilidad para crear scripts de configuración ( configure) que configuran automáticamente los paquetes fuente para que se ejecuten en sistemas operativos similares a Unix .
Los scripts de configuración generados por Autoconf no requieren la interacción del usuario para ejecutarse; por lo general, ni siquiera requieren que se proporcionen argumentos que especifiquen el tipo de sistema. En cambio, dichos scripts prueban la presencia de todas las funciones que un paquete determinado podría necesitar. Durante la ejecución de cada una de las comprobaciones, los scripts imprimen un informe de las comprobaciones que se están realizando. Por lo tanto, estos scripts funcionan bien en sistemas que son híbridos o variantes especializadas de la mayoría de las versiones de UNIX. Por lo tanto, no hay necesidad de mantener archivos que enumeren todas las características de todas las versiones de cada variante de UNIX.
Para cada paquete de software que usa Autoconf, se genera un script de configuración a partir de la plantilla que enumera las funciones del sistema que el paquete necesita o puede usar. Una vez que se escribe el código de shell que reconoce y maneja una función, Autoconf permite que ese código se use en todos los paquetes que pueden usar (o necesitar) la función. Si luego, por alguna razón, necesita cambiar el código de shell, entonces los cambios deberán realizarse solo en un lugar; todos los scripts de configuración se pueden volver a crear automáticamente para reflejar los cambios de código.
Hay varias tareas diferentes relacionadas con la creación de software portátil que Autoconf no puede resolver actualmente. Estos incluyen la generación automática de Makefiles con todos los objetivos estándar que necesita y el suministro de reemplazos para funciones de biblioteca estándar y archivos de encabezado en sistemas que carecen de esas funciones o archivos. Sin embargo, se está trabajando en esta dirección y estas características pueden aparecer en futuras versiones.
Autoconf impone algunas restricciones sobre los nombres de las macros que se utilizan en las directivas del #ifdefprograma C.
La creación de scripts con Autoconf requiere el programa GNU m4 . Aprovecha características que no se encuentran en algunas versiones UNIX del programa m4. También supera los límites internos de algunas versiones de m4, incluida la versión 1.0 de GNU m4. Debe usar la versión 1.1 (o posterior) del programa GNU m4. Las versiones 1.3 y posteriores se ejecutarán mucho más rápido que las versiones 1.1 o 1.2.
CFLAGS y CXXFLAGS son nombres de variables de entorno o variables Makefile que se establecen para especificar opciones adicionales que se pasan al compilador durante la generación del software .
Estas variables generalmente se especifican dentro del Makefile y luego sirven como ayuda para la línea de comando cuando se invoca el compilador. Si no se especifican en el Makefile, se leerán del entorno si se especifican allí. Herramientas como la secuencia de comandos de configuración ./configure de la utilidad autoconf normalmente las toman del entorno y las escriben en los Makefiles que generan.
CFLAGS le permite agregar opciones para el compilador de C , mientras que se supone que CXXFLAGS debe usarse al llamar al compilador de C++ . De manera similar, la variable CPPFLAGS se especifica para los parámetros pasados al preprocesador C.
Estas variables se utilizan principalmente para especificar las opciones del compilador al optimizar o depurar-g , por ejemplo: -O2o (que es específico de GCC ) -march=athlon.
Una utilidad que proporciona una interfaz para obtener información sobre las bibliotecas de software instaladas, incluidas las opciones para el compilador C o C++ , las opciones para el enlazador y la versión del paquete [2] . La información se toma del archivo .pc creado por el administrador de paquetes (por ejemplo, RPM o deb ). Originalmente escrito por James Henstridge y luego transcrito por Havok Pennington .