To pytanie i większość innych odpowiedzi tutaj wynika z nieporozumienia, w jaki sposób dystrybuowane są projekty korzystające z systemu kompilacji GNU (znanego również jako narzędzia automatyczne). W rzeczywistości, w przypadku biblioteki Erlang XMPP wspomnianej przez OP, nieporozumienie wydaje się być po stronie programistów.
Uzyskanie oprogramowania we właściwy sposób
Jeśli wszystko, co chcesz zrobić, to skompilować i zainstalować projekt wydany za pomocą GNU Autotools, nie powinieneś tego sprawdzać w systemie kontroli źródła . Zamiast tego należy pobrać pakietową wersję źródłową dostarczoną przez programistę. Zwykle mają one postać tarballi dystrybuowanych na stronie internetowej projektu. W przypadku projektów, które są w całości hostowane na GitHub, Savannah lub innej podobnej usłudze hostingowej, te archiwum zwykle znajduje się za linkiem oznaczonym jako „Pobierz” lub „Wydania”. Rozpakowujesz pakiet i wypowiadasz wariant standardowej ./configure && make && sudo make install
inkantacji. To wszystko; nie musisz wywoływać żadnej z GNU Autotools, a nawet nie musisz mieć zainstalowanych GNU Autotools w swoim systemie.
Powodem, dla którego użytkownik nie potrzebuje GNU Autotools do kompilacji projektu pakietu Autotools jest to, że deweloper użył już różnych programów Autotools do wygenerowania „tarballa dystrybucyjnego”, którego można użyć do zbudowania oprogramowania na dowolnym System uniksowy. Tarball dystrybucyjny zawiera wysoce przenośny configure
skrypt, który skanuje środowisko kompilacji, sprawdza zależności i tworzy Makefile
niestandardowy system.
Kiedy potrzebujesz Autotools?
Jedynym powodem, dla którego powinieneś sam zainstalować i wywołać GNU Autotools, jest to, że chcesz wykonać prace programistyczne nad projektem zbudowanym z Autotools. I nawet wtedy prawdopodobnie nie będziesz potrzebować Autotools, chyba że zmienisz zależności projektu. W takim przypadku można rzeczywiście trzeba sprawdzić oryginalnego źródła, dokonać odpowiednich zmian w Autotools specyficzne pliki wejściowe ( configure.ac
, Makefile.am
etc.), a następnie uruchomić program Autotools na nich, aby wygenerować nowy configure
plik. Jeśli chcesz niezależnie opublikować poprawiony pakiet, skorzystaj z pliku Makefile wygenerowanego przez Autotools, aby wygenerować nowy pakiet dystrybucyjny, a następnie opublikuj go w Internecie.
Problem polega na tym, że niektórzy programiści udostępniają publicznie swoje repozytorium źródłowe, ale zaniedbują publikowanie swoich archiwów dystrybucyjnych (lub utrudniają znalezienie miejsca ich publikacji). Na przykład, zamiast publikować swoje archiwa dystrybucyjne jako prasowe GitHub tego, Biblioteka Erlang XMPP za GitHub prasowe są tarballi repozytorium źródła surowca. Uniemożliwia to skompilowanie projektu bez GNU Autotools, co w pierwszej kolejności jest sprzeczne z całym celem korzystania z Autotools.
Podsumowanie TL; DR
Narzędzia GNU Autotools są czymś, czego programiści używają do tworzenia przenośnych pakietów kodu źródłowego dla użytkowników. Użytkownicy powinni pobierać i kompilować z tych pakietów źródłowych, a nie oryginalnego kodu z systemu kontroli źródła. Jeśli programiści nie dostarczą tych pakietów źródłowych, oznacza to, że nie używają Autotools poprawnie i powinni być delikatnie uderzani mokrym pstrągiem, dopóki nie zobaczą błędu na swojej drodze.