2011-09-26 10 views
7

Tengo un gran proyecto en mi mano (maestro) que se divide en varios componentes (liba, b, c, d) para facilitar la construcción y el mantenimiento. Al construir todo el paquete, todos los subcomponentes deben construirse en secuencia, y algunos de estos paquetes dependen uno del otro.¿Sub directorios de autoconf con subpaquetes que dependen entre sí?

En términos más explícitos, liba es un requisito previo para b, c y d, y la presencia de liba se comprueba mediante el script de configuración. Esta comprobación es definitivamente necesaria para proporcionar mensajes de error fáciles de usar al construir la distribución b por sí mismo. Sin embargo, al compilar el paquete maestro y todos sus subpaquetes, liba se genera como un secundario. Por lo tanto, cuando configure se ejecuta en el paquete maestro, liba aún no está instalado y la comprobación de liba en b falla.

Podría corregir este problema pasando un --with-liba = marcador interno o similar al script de configuración de b; sin embargo, no he encontrado ninguna documentación sobre dicho paso de banderas para autoconf. Por el momento, tengo un Makefile personalizado largo y largo en master que hace lo mismo que autoconf/automake con subdirectorios, pero reordena las dependencias un poco para que en lugar de (configure liba) => (configure b) => (compilación liba) => (compilación b), el orden es (configure liba) => (compilación liba) => (install liba) => (configure b) => (compilación b).

¿Alguna idea de cómo podría refactorizar esto con los subdirectorios autoconf/automake estándar?

+0

Las autotools no son una herramienta de embalaje. Intentar usarlos como tales es doloroso, en el mejor de los casos. Construye paquetes separados. Deje que apt/yum/pkg/etc se ocupe de las dependencias. –

Respuesta

Cuestiones relacionadas