Pregunta

He estado herramientando con Autotools durante los últimos días, y finalmente he hecho un progreso significativo. Un problema que tengo es que tengo dos bibliotecas que deben compilarse antes del código de aplicación principal. No estoy muy seguro de cómo hacer esto. La estructura de mi directorio está debajo y también un fragmento de mi configuración.

AC_CONFIG_FILES([Makefile
         src/Makefile
         gtkworkbook/Makefile
         csv/Makefile])
AC_OUTPUT

Necesito el CSV/Makefile y gtkworkbook/makefile a ambos ser compilados antes src/makefile; ¿Hay alguna forma de especificar esto? En este momento recibo un error sobre la biblioteca (CSV) no existente durante el proceso de compilación de aplicaciones.

¿Fue útil?

Solución

El orden de los elementos en ac_config_files () no afecta el orden de compilación. Si está utilizando AutoMake, que supongo que es, atravesará su árbol de directorio en el orden en que enumere los directorios en cada lista de subdirs de Makefile.am.

Dicho esto, debe tener el orden de los elementos en ac_config_files () reflejar el orden de compilación, para obtener consistencia/mantenimiento.

Ejemplo de cómo los subdirs de su makefile.am toplevel para construir en el orden deseado:

SUBDIRS = csv gtkworkbook src

Además, para este caso simple no necesita tanto ac_config_files () como ac_output (). Puede pasar su directorio de lista a ac_output ():

AC_OUTPUT([
    Makefile
    src/Makefile
    gtkworkbook/Makefile
    csv/Makefile
])
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top