Cette question, et la plupart des autres réponses ici, découlent d'une incompréhension de la manière dont les projets utilisant le système de construction GNU (Autotools) sont distribués. En fait, dans le cas de la bibliothèque Erlang XMPP mentionnée par l'OP, le malentendu semble être de la part des développeurs.
Obtenir le logiciel de la bonne façon
Si tout ce que vous voulez, c'est compiler et installer un projet publié avec les outils automatiques GNU, vous ne devez pas l'extraire du système de contrôle de code source . Vous devriez plutôt télécharger la version source packagée fournie par le développeur. Celles-ci prennent normalement la forme d'archives distribuées sur le site Web du projet. Pour les projets hébergés entièrement sur GitHub, Savannah ou un service d'hébergement similaire, ces archives se trouvent généralement derrière un lien intitulé "Télécharger" ou "Versions". Vous décompressez le paquet et énoncez une variante de l' ./configure && make && sudo make install
incantation standard . C'est tout; vous n'avez pas besoin d'appeler l'un des outils automatiques GNU et vous n'avez même pas besoin d'installer les outils automatiques GNU sur votre système.
Si vous, l’utilisateur, n’avez pas besoin de GNU Autotools pour compiler un projet emballé par Autotools, c’est que le développeur a déjà utilisé les divers programmes Autotools pour générer une "archive tar de distribution" qui peut être utilisée pour créer le logiciel sur n’importe quel logiciel. Système de type Unix. L’archive tar de la distribution contient un configure
script hautement portable qui analyse l’environnement de construction, recherche les dépendances et crée un environnement Makefile
personnalisé pour votre système.
Alors, quand avez-vous besoin d'Autotools?
Si vous souhaitez effectuer des travaux de développement sur un projet construit avec Autotools, la seule raison pour laquelle vous auriez besoin d'installer et d'appeler GNU Autotools est . Et même dans ce cas, vous n’auriez probablement pas besoin d’Autotools si vous ne modifiez pas les dépendances du projet. Dans ce cas, vous devez bien vérifier la source d' origine, apporter des modifications appropriées aux fichiers d'entrée spécifiques Autotools ( configure.ac
, Makefile.am
, etc.), et exécuter les Autotools sur eux pour générer un nouveau configure
fichier. Si vous souhaitez publier indépendamment le package révisé, vous utiliseriez le fichier Makefile généré par Autotools pour générer une nouvelle archive tar de distribution, puis publiez cette archive quelque part en ligne.
Le problème est que certains développeurs mettent leur référentiel source à la disposition du public, mais négligent de publier leurs archives de distribution (ou rendent difficile la localisation de leur publication). Par exemple, plutôt que de publier leurs archives tar de distribution sous forme de versions GitHub , les versions GitHub de la bibliothèque Erlang XMPP sont des archives du référentiel source brut. Cela rend impossible la compilation du projet sans les outils automatiques GNU, annulant ainsi l’objectif premier d’utiliser Autotools.
Résumé TL; DR
Les outils automatiques GNU sont quelque chose que les développeurs utilisent pour créer des paquets de code source portables pour les utilisateurs. Les utilisateurs doivent télécharger et compiler à partir de ces packages source, et non du code d'origine du système de contrôle de source. Si les développeurs ne fournissent pas ces packages sources, ils n'utilisent pas correctement Autotools et doivent être giflés doucement avec une truite mouillée jusqu'à ce qu'ils voient l'erreur de leur manière.