Makefile.in sans Makefile.am dans les projets

Dans plusieurs projets, j’ai vu le fichier Makefile.in sans le fichier Makefile.am. Exemple: bash http://git.savannah.gnu.org/cgit/bash.git/tree/ et dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

J’ai toujours pensé que Makefile.in avait été généré par automake. De plus, Makefile.am étant un fichier écrit par l’utilisateur, je n’aurais pas pensé qu’il serait omis du référentiel de code. Dans l’arborescence des sources de bash, le fichier Makefile.in est beaucoup trop gros pour être écrit à la main et le fichier Makefile.in dans dtach est également généré. Comment le Makefile.in a-t-il été généré dans des projets comme ceux-ci?

Les libtool automatiques libtool et libtool peuvent être utilisés indépendamment l’un de l’autre (ou pas du tout), en fonction de ce que vous avez besoin de faire avec autoconf . Par conséquent, il n’est pas nécessaire d’utiliser automake pour générer Makefile.in .

L’outil automake indique également clairement qu’il a été utilisé:

# Makefile.in généré par automake 1.11.1 à partir de Makefile.am.

Il est donc probable que les Makefile.in vous avez vus soient édités “à la main”.

Un fichier Makefile.in ressemble à un fichier Makefile standard, mais attend généralement d’être complété par le script configure (par exemple, avec l’emplacement d’une bibliothèque que l’utilisateur a dans un autre répertoire).

Le fichier Makefile.am est utilisé par Automake pour créer un tel fichier Makefile.in. Si les développeurs qui ont créé le paquet que vous utilisez possédaient déjà un Makefile et écrivaient un fichier Makefile.am, ils le convertissaient simplement en un fichier Makefile.in