c++ - how - make makefile c
No puedo ejecutar Makefile.am, ¿qué debo hacer? (4)
Tengo un proyecto de C para compilar y ejecutar en Linux. Es un proyecto muy grande con muchos subdirectorios. Dentro del directorio principal hay archivos Makefile.am
y Makefile.in
.
Intenté ejecutar make -f Makefile.am
y obtuve el siguiente error:
make: Nothing to be done for `Makefile.am''.
Qué significa eso? ¿Cómo realizo mi tarea?
Estos archivos se utilizan con la suite Autotools . Los archivos Makefile.am se compilan en Makefiles usando automake .
Echa un vistazo para ver si hay un script de configure
en el directorio. Si hay, entonces escriba:
./configure
Si no, entonces ejecuta:
autoreconf
en el directorio, que debe crear la secuencia de comandos de configure
(deberá tener instalado el conjunto de herramientas Autotools para ejecutar esto).
Después de eso, debes tener un script de configure
que puedas ejecutar.
Una vez completada la configuración, debería tener un Makefile normal en el directorio y podrá ejecutar
make
Lo que se ha dejado de lado:
- Makefile.am se transforma en Makefile.in utilizando automake.
- Makefile.in se transforma en Makefile ejecutando configure.
Ninguno de estos (Makefile. {Am, in}) se debe usar con make -f
.
Si el tarball ya se envía con configure, simplemente ejecute eso y haga. Si no lo hace, ejecute ./autogen.sh
o bootstrap
(*). Si eso no existe, use autoreconf
lugar.
(*) autogen / bootstrap: un script de conveniencia agregado por desarrolladores que solo debe llamar a autoreconf
. Desafortunadamente, hay algunas personas que evitan la autocontabilidad y llaman innecesariamente a todos los comandos de bajo nivel.
Para complementar lo que ya se ha dicho: busque un script llamado configure en el directorio del proyecto. Si está ahí, la construcción del proyecto será:
./configura
hacer
y opcionalmente, para instalar:
sudo make install
o su -c "make install"
Incluso si no hay ningún script de configuración . Puede haber un autogen.sh . Ejecute este script para generar el script de configuración y haga lo anterior.
Makefile.am
probablemente se use con automake .
tratar:
automake
También es posible que desee probar
make -f Makefile.in
Dado que este es el producto de correr automake