Tengo un Makefile.am que será responsable de la construcción de una binaria aplicación final:¿Cómo especifico en una secuencia de comandos Makefile.am que solo quiero compilar archivos .o de objetos que pueden vincularse posteriormente?
proyecto/src/Makefile.am
también en el directorio src es un sub-directorio llamado ctrnn que contiene una mayor Makefile.am:
proyecto/src/ctrnn/Makefile.am
Ahora, ctrnn/Makefile.am sólo debe generar objeto .o archivos con la idea de que el nivel superior Makefile.am debe utilizar el archivos de objeto generados en el subdirectorio ctrnn para construir el binario.
Este es el ctrnn/Makefile.am
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @[email protected]
Sobre la base de este archivo Makefile.am, quiero terminar con network.o y neuron.o. Estoy generando el Makefile según usando automake etc, pero cuando intento y luego ejecutar el archivo de marca, que no hace nada y se limita a decir:
hacer: nada que hacer para `todo'
I saber por qué es esto, necesito especificar el objetivo de compilación. Pero, ¿cómo hago esto en el script ctrnn/Makefile.am dado que no quiero construir un archivo binario que requiera bin_PROGRAMS sino archivos de objetos reales network.o y neuron.o?
(Tenga en cuenta que si especifico un nombre bin_PROGRAMS, con razón termina quejándose de una referencia indefinida a main).
¿Qué hago mal?
Gracias, Ben.
¡Gracias! Terminé usando el método libtool, funciona perfectamente :-) –
Gracias por ayudarme esforzándome en el infierno autotools/libtool. Y haznos un favor a todos: vive mucho y prospera! – rockdaboot
foo_LDADD? No se supone que es foo_LIBADD –