Esta pergunta, e a maioria das outras respostas aqui, surgem de um mal-entendido de como os projetos que usam o GNU Build System (aka Autotools) são distribuídos. De fato, no caso da biblioteca Erlang XMPP mencionada pelo OP, o mal-entendido parece estar da parte dos desenvolvedores.
Obtendo o software da maneira certa
Se tudo o que você deseja fazer é compilar e instalar um projeto lançado com o GNU Autotools, não deve fazer check-out no sistema de controle de origem . Em vez disso, você deve baixar o release de origem empacotado fornecido pelo desenvolvedor. Normalmente, eles tomam a forma de tarballs distribuídos no site do projeto. Para projetos hospedados inteiramente no GitHub, Savannah ou em algum serviço de hospedagem semelhante, esses tarballs geralmente são encontrados atrás de algum link chamado "Download" ou "Releases". Você descompacta o pacote e pronuncia alguma variante do ./configure && make && sudo make install
encantamento padrão . Isso é tudo; você não precisa invocar nenhum dos GNU Autotools e nem precisa ter o GNU Autotools instalado no seu sistema.
A razão pela qual você, usuário, não precisa do GNU Autotools para compilar um projeto empacotado pelo Autotools é que o desenvolvedor já usou os vários programas do Autotools para gerar um " pacote de distribuição" que pode ser usado para criar o software em qualquer Sistema Unix-like. O tarball de distribuição contém um configure
script altamente portátil que verifica o ambiente de construção, verifica dependências e constrói um Makefile
personalizado para o seu sistema.
Então, quando você precisa do Autotools?
O único motivo para você precisar instalar e chamar o GNU Autotools por si mesmo é se você deseja fazer um trabalho de desenvolvimento em um projeto criado com o Autotools. E mesmo assim, você provavelmente não precisará do Autotools, a menos que altere as dependências do projeto. Nesse caso, você seria realmente precisa verificar a fonte original, fazer mudanças apropriadas aos Autotools-specific arquivos de entrada ( configure.ac
, Makefile.am
, etc.), e executar os Autotools sobre eles para gerar um novo configure
arquivo. Se você deseja publicar independentemente o pacote revisado, use o Makefile gerado pelo Autotools para gerar um novo pacote de distribuição e, em seguida, publique esse pacote em algum lugar online.
O problema é que alguns desenvolvedores disponibilizam seu repositório de origem publicamente, mas deixam de publicar seus tarballs de distribuição (ou dificultam a localização de onde são publicados). Por exemplo, em vez de publicar seus tarballs de distribuição como GitHub Releases , o GitHub Releases da biblioteca Erlang XMPP são tarballs do repositório de origem bruta. Isso torna impossível compilar o projeto sem o GNU Autotools, derrotando todo o propósito de usar o Autotools.
Resumo de TL; DR
As GNU Autotools são algo que os desenvolvedores usam para criar pacotes portáteis de código fonte para os usuários. Os usuários devem baixar e compilar a partir desses pacotes de origem, não o código original do sistema de controle de origem. Se os desenvolvedores não fornecerem esses pacotes de código-fonte, eles não estarão usando o Autotools corretamente e devem ser gentilmente batidos com uma truta molhada até verem o erro de seus caminhos.