make how compiler c++ linux makefile autotools

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