Этот вопрос и большинство других ответов здесь возникают из-за неправильного понимания того, как распределяются проекты, использующие систему сборки GNU (или Autotools). Фактически, в случае библиотеки Erlang XMPP, упомянутой в OP, недоразумение, по-видимому, принадлежит разработчикам.
Правильно получить программное обеспечение
Если все, что вы хотите сделать, это скомпилировать и установить проект, выпущенный с помощью GNU Autotools, то вам не следует проверять его из системы контроля версий . Вместо этого вы должны загрузить упакованный исходный выпуск, предоставленный разработчиком. Они обычно принимают форму тарболлов, распространяемых на веб-сайте проекта. Для проектов, которые полностью размещены на GitHub, Savannah или подобном хостинг-сервисе, эти архивы обычно находятся по какой-либо ссылке, помеченной как «Скачать» или «Релизы». Вы распаковываете пакет и произносите какой-то вариант стандартного ./configure && make && sudo make install
заклинания. Вот и все; вам не нужно вызывать какие-либо из инструментов GNU Autotools, и вам даже не нужно устанавливать в вашей системе инструменты GNU Autotools.
Причина, по которой вам, пользователю, не нужны GNU Autotools для компиляции проекта, упакованного в Autotools, заключается в том, что разработчик уже использовал различные программы Autotools для создания «архива распространения», который можно использовать для сборки программного обеспечения на любом Unix-подобная система. Дистрибутивный дистрибутив содержит легко переносимый configure
скрипт, который сканирует среду сборки, проверяет зависимости и создает Makefile
индивидуальные настройки для вашей системы.
Итак, когда вам нужны автоинструменты?
Единственная причина, по которой вам нужно самостоятельно установить и запустить GNU Autotools, - это если вы хотите заняться разработкой проекта, созданного с помощью Autotools. И даже тогда вам, вероятно, не понадобятся автоинструменты, если вы не измените зависимости проекта. В этом случае, вам действительно нужно будет проверить оригинальный источник, внести соответствующие изменения в Autotools конкретного входных файлов ( configure.ac
, Makefile.am
и т.д.), и запустить Autotools на них , чтобы создать новый configure
файл. Если вы хотите независимо публиковать исправленный пакет, то вы должны использовать Makefile, сгенерированный Autotools, для создания нового архива дистрибутива, а затем опубликовать этот архив где-нибудь в сети.
Проблема в том, что некоторые разработчики делают свой исходный репозиторий общедоступным, но забывают публиковать свои дистрибутивы (или затрудняются найти, где они опубликованы). Например, вместо того, чтобы публиковать свои tar-архивы распространения как GitHub Releases , релизы GitHub библиотеки Erlang XMPP являются tarballs из исходного хранилища исходного кода. Это делает невозможным компиляцию проекта без автоинструментов GNU, что в первую очередь сводит на нет все цели использования автоинструментов.
TL; DR сводка
GNU Autotools - это то, что разработчики используют для создания переносимых пакетов исходного кода для пользователей. Пользователи должны загружать и компилировать эти исходные пакеты, а не исходный код из системы контроля версий. Если разработчики не предоставляют эти исходные пакеты, то они не используют Autotools правильно, и их следует осторожно шлепать мокрой форелью, пока они не увидят ошибку своего пути.