Compilación de dependencia de autoconf antes de la aplicación
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.
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
])