2011-07-13 9 views
8

Tengo un gran proyecto autoconf/automake, dividido en componentes usando AC_CONFIG_SUBDIRS. ¿Hay alguna forma de hacer que autoconf/configure funcione más rápido? ¿Quizás haciendo subdirectorios en paralelo, o almacenando en caché los resultados reutilizables?acelerar autoconf/configure del proyecto grande

Podría escribir fácilmente un script de compilación que construiría componentes en paralelo, pero preferiría no agregar un punto secundario de mantenimiento de la estructura de compilación.

Respuesta

7

Puede resultados de caché entre múltiples configure (varias carreras de la misma configure, o sub-recursivo configure) utilizando el configure cache feature. Basta con ejecutar

./configure -C 

Sin embargo, usted debe recordar para borrar la memoria caché cuando los cambios de configuración del sistema (como tras la instalación de nuevos paquetes que no fueron encontrados por una corrida de configuración anterior). Si usa algunas macros de terceros, también puede tener que corregir algunas de ellas al cache their results correctamente (un error común es tomar una decisión de configuración durante una prueba que podría omitirse si el resultado de esa prueba se almacena en caché).

Si desea compartir su caché entre varios proyectos, puede configurarlo en config.site.

+2

De acuerdo en casi todos los aspectos, pero la configuración de las variables de caché en 'config.site' me parece una mala idea. ¿No intentó gentoo un confcache hace unos años? IIRC, tuvieron que retroceder porque rompió un montón de cosas. –

3

Estoy pensando en un paralelo configure que hace las comprobaciones en paralelo haciendo el mejor uso de la multinúcleo del host. Probablemente el autoconf debería generar el script bash que puede ser vectorizado/canalizado para hacerlo posible.

Cuestiones relacionadas