Questa domanda, e la maggior parte delle altre risposte qui, nascono da un malinteso su come sono distribuiti i progetti che usano il GNU Build System (alias Autotools). In effetti, nel caso della libreria Erlang XMPP menzionata dall'OP, il malinteso sembra essere da parte degli sviluppatori.
Ottenere il software nel modo giusto
Se tutto ciò che vuoi fare è compilare e installare un progetto rilasciato con GNU Autotools, non dovresti verificarlo dal sistema di controllo del codice sorgente . Dovresti invece scaricare la versione del pacchetto fornita dallo sviluppatore. Questi normalmente assumono la forma di tarball distribuiti sul sito Web del progetto. Per i progetti ospitati interamente su GitHub, Savannah o un servizio di hosting simile, questi tarball si trovano di solito dietro alcuni link etichettati "Download" o "Rilasci". Decomprimi il pacchetto e pronunci una variante dell'incantesimo standard ./configure && make && sudo make install
. È tutto; non è necessario richiamare nessuno degli autotools GNU e non è nemmeno necessario che gli autotools GNU siano installati sul sistema.
Il motivo per cui l'utente non ha bisogno degli GNU Autotools per compilare un progetto impacchettato da Autotools è che lo sviluppatore ha già utilizzato i vari programmi Autotools per generare un "tarball di distribuzione" che può essere utilizzato per costruire il software su qualsiasi Sistema simile a Unix. Il tarball di distribuzione contiene uno configure
script altamente portatile che analizza l'ambiente di compilazione, verifica le dipendenze e crea un Makefile
sistema personalizzato per il tuo sistema.
Quindi, quando hai bisogno di autotools?
L'unico motivo per cui dovresti aver bisogno di installare e invocare autonomamente GNU Autotools è se vuoi fare un lavoro di sviluppo su un progetto creato con Autotools. E anche allora, probabilmente non avrai bisogno degli Autotools a meno che non modifichi le dipendenze del progetto. In tal caso, si avrebbe davvero bisogno di controllare la fonte originale, apportare le modifiche appropriate alle Autotools-specifici file di input ( configure.ac
, Makefile.am
, ecc), ed eseguire i Autotools su di loro per generare un nuovo configure
file. Se si desidera pubblicare in modo indipendente il pacchetto rivisto, utilizzare il Makefile generato da Autotools per generare un nuovo tarball di distribuzione e quindi pubblicare quel tarball da qualche parte online.
Il problema è che alcuni sviluppatori rendono pubblicamente disponibile il loro repository di origine ma trascurano di pubblicare i tarball di distribuzione (o rendono difficile trovare dove sono pubblicati). Ad esempio, anziché pubblicare i tarball di distribuzione come rilasci GitHub , i rilasci GitHub della libreria XMPP di Erlang sono tarball del repository di origine non elaborato. Ciò rende impossibile compilare il progetto senza GNU Autotools, vanificando in primo luogo l'intero scopo di utilizzare Autotools.
TL; Riepilogo DR
Gli GNU Autotools sono qualcosa che gli sviluppatori usano per creare pacchetti portatili di codice sorgente per gli utenti. Gli utenti devono scaricare e compilare da questi pacchetti di origine, non il codice originale dal sistema di controllo del codice sorgente. Se gli sviluppatori non forniscono questi pacchetti sorgente, non stanno usando correttamente gli Autotools e dovrebbero essere schiaffeggiati delicatamente con una trota bagnata fino a quando non vedono l'errore delle loro vie.