この質問、およびここでのその他の回答のほとんどは、GNU Build System(別名Autotools)を使用するプロジェクトがどのように配布されるかについての誤解から生じています。実際、OPが言及しているErlang XMPPライブラリの場合、誤解は開発者側にあるようです。
正しい方法でソフトウェアを入手する
GNU Autotoolsでリリースされたプロジェクトをコンパイルしてインストールするだけであれば、ソース管理システムからチェックアウトしないでください。代わりに、開発者が提供するパッケージ化されたソースリリースをダウンロードする必要があります。これらは通常、プロジェクトのWebサイトで配布されるtarballの形式を取ります。GitHub、Savannah、または同様のホスティングサービスで完全にホストされているプロジェクトの場合、これらのtarballは通常「ダウンロード」または「リリース」というラベルの付いたリンクの後ろにあります。パッケージを展開し、標準の./configure && make && sudo make install
呪文のバリエーションを発声します。それで全部です; GNU Autotoolsを呼び出す必要はなく、システムにGNU Autotoolsをインストールする必要さえありません。
ユーザーであるあなたがAutotoolsパッケージのプロジェクトをコンパイルするのにGNU Autotoolsを必要としない理由は、開発者が既に様々なAutotoolsプログラムを使用して、あらゆるソフトウェアのビルドに使用できる「配布tarball」を生成しているからですUnixライクなシステム。配布tarballにはconfigure
、ビルド環境をスキャンし、依存関係をチェックMakefile
し、システムに合わせてカスタマイズされたものを構築する、移植性の高いスクリプトが含まれています。
Autotoolsが必要になるのはいつですか?
GNU Autotoolsをインストールして起動する必要があるのは、Autotoolsでビルドされたプロジェクトで開発作業を行う場合のみです。その場合でも、プロジェクトの依存関係を変更しない限り、おそらくAutotoolsは必要ありません。その場合、あなたは確かに、元のソースをチェックアウトする必要がAutotool群固有の入力ファイル(に適切な変更になるだろうconfigure.ac
、Makefile.am
など)、および新しい生成するためにそれらの上にAutotool群を実行しconfigure
、ファイルを。修正されたパッケージを独立して公開する場合は、Autotoolsによって生成されたMakefileを使用して新しい配布tarballを生成し、そのtarballをオンラインのどこかに公開します。
問題は、一部の開発者がソースリポジトリを公開しているが、配布tarballを公開することを怠っている(または、公開されている場所を見つけにくくする)ことです。たとえば、配布tarballをGitHub Releasesとして公開するのではなく、Erlang XMPPライブラリのGitHub Releasesは生のソースリポジトリのtarballです。これにより、GNU Autotoolsなしでプロジェクトをコンパイルすることが不可能になり、そもそもAutotoolsを使用する目的全体が無効になります。
TL; DRの概要
GNU Autotoolsは、開発者がユーザー向けのポータブルソースコードパッケージを作成するために使用するものです。 ユーザーは、ソース管理システムの元のコードではなく、これらのソースパッケージからダウンロードしてコンパイルする必要があります。開発者がこれらのソースパッケージを提供しない場合、彼らはAutotoolsを正しく使用していないので、自分たちのやり方の誤りを見るまで濡れたマスで優しく叩かれるべきです。