/ / Makefile.in sin Makefile.am en proyectos - c, compilación, makefile, automatización de compilación, autotools

Makefile.in sin Makefile.am en proyectos - c, compilación, makefile, automatización de compilación, autotools

En varios proyectos he visto el Makefile.in sin Makefile.am. P.ej. golpetazo http://git.savannah.gnu.org/cgit/bash.git/tree/ y dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

Siempre he pensado que Makefile.Fue generado por automake. Además, como Makefile.am es un archivo escrito por el usuario, no habría pensado que se omitiera del repositorio de códigos. En el árbol de origen de bash, Makefile.in es demasiado grande para ser escrito a mano y Makefile.in en dtach también parece generado. ¿Cómo se generó Makefile.in en proyectos como estos dos?

Respuestas

4 para la respuesta № 1

los libtool y automake Los autotools se pueden usar independientemente uno del otro (o no), dependiendo de lo que necesite autoconf que hacer. Por lo tanto, no es necesario usar automake para generar Makefile.in.

los automake La herramienta también muestra claramente que se ha utilizado:

# Makefile.in generado por automake 1.11.1 de Makefile.am.

Así que es probable que la Makefile.inLas que has visto están editadas "a mano".


1 para la respuesta № 2

Un Makefile.in se parece a un Makefile normal pero generalmente se completa con el script de configuración (por ejemplo, con la ubicación de una biblioteca que el usuario tiene en un directorio diferente).

Makefile.Automake utiliza a am para crear un Makefile.in de este tipo. Si los desarrolladores que crearon el paquete que está utilizando ya tenían un Makefile y escribieron un Makefile.am porque fue demasiado esfuerzo, simplemente lo convirtieron en un Makefile.in.