Esta pergunta, e a maioria das outras respostas aqui, surge de um mal entendido de como os projetos usando o Sistema de Construção GNU (aka Autotools) são distribuídos. De fato, no caso da biblioteca Erlang XMPP mencionada pelo OP, o mal-entendido parece ser da parte dos desenvolvedores.
Obtendo o software da maneira correta
Se tudo o que você quer fazer é compilar e instalar um projeto lançado com o GNU Autotools, então você não deve fazer o checkout do sistema de controle de origem . Em vez disso, você deve fazer o download do lançamento de fonte em pacote fornecido pelo desenvolvedor. Estes normalmente assumem a forma de tarballs distribuídos no site do projeto. Para projetos que são hospedados inteiramente no GitHub, Savannah ou em algum serviço de hospedagem similar, esses tarballs geralmente são encontrados por trás de algum link chamado "Download" ou "Releases". Você descompacta o pacote e expressa alguma variante do padrão ./configure && make && sudo make install
de encantamento. Isso é tudo; você não precisa invocar nenhum dos GNU Autotools e nem precisa ter o GNU Autotools instalado em seu sistema.
O motivo pelo qual você, o usuário, não precisa do GNU Autotools para compilar um projeto empacotado no Autotools é que o desenvolvedor já já usou os vários programas do Autotools para gerar um "tarball de distribuição" que pode ser usado para construir o software em qualquer sistema Unix-like. O tarball de distribuição contém um script configure
altamente portátil que varre o ambiente de construção, verifica as dependências e constrói um Makefile
personalizado para o seu sistema.
Então, quando você precisa do Autotools?
O único motivo pelo qual você precisa instalar e invocar o GNU Autotools é se você quer fazer desenvolvimento funcionar em um projeto construído com o Autotools. E mesmo assim, você provavelmente não precisará dos Autotools, a menos que você altere as dependências do projeto. Nesse caso, você precisaria realmente verificar a fonte original, fazer as alterações apropriadas nos arquivos de entrada específicos do Autotools ( configure.ac
, Makefile.am
, etc.) e executar os Autotools neles para gerar um novo configure
Arquivo. Se você quiser publicar o pacote revisado de forma independente, você usaria o Makefile gerado pelo Autotools para gerar um novo tarball de distribuição e publicá-lo em algum lugar on-line.
O problema é que alguns desenvolvedores disponibilizam seu repositório de origem publicamente, mas deixam de publicar seus tarballs de distribuição (ou dificultam encontrar onde eles são publicados). Por exemplo, em vez de publicar seus tarballs de distribuição como lançamentos do GitHub , o Liberações do GitHub da biblioteca Erlang XMPP são tarballs do repositório de origem bruto. Isso torna impossível compilar o projeto sem o GNU Autotools, derrotando todo o propósito de usar o Autotools em primeiro lugar.
TL; Resumo de DR
O GNU Autotools é algo que os desenvolvedores usam para fazer pacotes de código fonte portáveis para os usuários. Usuários devem baixar e compilar a partir desses pacotes fonte, não do código original do sistema de controle de origem. Se os desenvolvedores não fornecerem esses pacotes de código-fonte, eles não usarão Autotools corretamente e deverão ser gentilmente golpeados truta até que eles vejam o erro de seus caminhos.