Error de creación automática ''./ltmain.sh'' no encontrado
autotools automake (1)
He instalado mingw y msys utilizando mingw-get-setup.exe . También instalé Autotools (autoconf, automake, m4, libtool) en C://opt/autotools .
Cuando ejecuto automake, siempre ocurre el siguiente error:
configure.ac:11: error: required file ''./ltmain.sh'' not found
Si copio ltmain.sh del árbol instalado de libtool, la ejecución finalizará normalmente.
¿Cómo puedo configurar automake para encontrar ltmain.sh sin copiar?
En un proyecto autoconf / automake / libtool tienes que invocar:
-
libtoolize: esto copia / enlaza algunos scripts de soporte, incluidoltmain.sh(que es el componente principal de libtool). -
aclocal: busca todas las macros m4 que necesitará su script de configuración y haga una copia local para facilitar el acceso. -
autoheader: opcional, si desea usarconfig.h/AC_CONFIG_HEADERS, de lo contrario, todas las macros de resultados de prueba estarán en línea cuando llame al compilador. -
autoconf: para expandir todas las macros utilizadas porconfigure.acen el script deconfigure. -
automake: para convertir todos losMakefile.amen plantillasMakefile.in. Probablemente desee invocar esto con--add-missingpara que se puedan vincular / copiar scripts de soporte adicionales a su proyecto (comocompile,missing,depcomp,test-driver, etc.).
Lo más probable es que desee agregar un script bootstrap a cada uno de sus proyectos, que invoque todas esas herramientas, en este orden. O puede ser perezoso y simplemente invocar autoreconf -i y ver si eso funciona para su proyecto.
Después de (y mientras) tienes Makefile trabajo generado por el script de configuración, autotools se encarga de sí mismo; es decir, si edita configure.ac , o cualquier Makefile.am , las herramientas correctas de arriba se invocarán nuevamente para mantener todo actualizado, simplemente ejecutando make . Solo tenga cuidado de no crear un error de sintaxis en los archivos Makefile.am , de lo contrario podría terminar con Makefile rotos, lo make provocará make rechace la ejecución, en cuyo caso debe ejecutar el script bootstrap (o autoreconf ) manualmente.
EDITAR:
El manual de automake dice esto acerca de aclocal:
Se espera que
aclocaldesaparezca.
Y más abajo:
Desde el punto de vista del usuario, la eliminación de un
aclocalpuede resultar dolorosa. Hay una simple precaución que puede tomar para hacer que el cambio sea más transparente: nunca llame a un local local . Mantén a este tipo bajo el control exclusivo de las reglas de reconstrucciónautoreconfy de autoformación.
Así que ahí lo tienen: use autoreconf -i para estar autoreconf -i para el futuro, a menos que tenga una muy buena razón para usar las herramientas directamente.