2012-01-14 7 views
6

は現在、私たちのインストール手順は以下のとおりです。configure.acが利用可能な場合、 "configure"スクリプトを配布する必要がありますか?

autoreconf -fi 
./configure 
... 

autoreconfステップはconfigure.acMakefile.inからMakefile.inからconfigureファイルを生成します。依存関係の1つ(たとえばpkg-config)がインストールされていない場合は、configureautoreconfの両方が失敗しますが、後者は致命的なエラーメッセージを出力します。

ソースタールボールをリリースするときに、configureスクリプトをパッケージに含める必要がありますか?配布する必要がある場合、他にどのようなファイルを含める必要がありますか?ディレクトリbuild-auxautom4te.cacheとファイルaclocal.m4も作成されました。

+2

SCMリポジトリでは、自動生成されるものは何も存在する必要はありません(configureを含む)。 tarballは、autoreconf -fi/autogen.sh/bootstrapの後の状態を含んでいなければなりません(あるいは 'make dist'を使うだけです)。 –

+0

@jørgensen答えを出すために、私はmake distがここの鍵であることを完全には理解していませんでした – Lekensteyn

+0

また興味があります*なぜ* configureスクリプトを配布するのが良いですか?私には、 'autogen.sh'を実行するのと同じように簡単で(そしてよりクリーンな)ように思えます。 –

答えて

6

SCMリポジトリでは、自動生成されたものは何も存在する必要はありません(ここでは、構成 - しかし、開発者の意見はここにあります)。タールボールには、autoreconf -fiおよび/またはautogen.shのいずれかの名前(またはそれを選択した名前)の後に状態が含まれている必要があります。第3に、make distも使用できますが、tarballに表示されるすべてのファイルもMakefileにリストされている必要があります。

+1

あなたはこれについて間違っているので、エンドユーザはあなたのソフトウェアを構築するためにautotoolsをインストールする必要はありません。 – MoDJ

+1

@MoDJちょうど注記:このソリューションでは、エンドユーザはオートツールをインストールする必要はありません(しかし、開発者は行います)。 –

3

configureスクリプトは、メンテナからビルドし、tarballに配布する必要があります。エンドユーザは決してそれに触れる必要はありません。automakeを使用している場合はAM_MAINTAINER_MODEでこれを確認することをお勧めします。そうでない場合は、Makefile.inがエンドユーザ用に実行されているときにconfigureを再生成しないようにしてください。

automakeは、他に何が属しているか知りたい場合は、あなたのために配信を生成します。補助ディレクトリbuild-auxaclocal.m4 do、automat4e.cacheはありません。

+0

ああ、私はちょうどPHPリポジトリを見てきましたが、gitのソースを含むtarballは配布に使用すべきではないようです。 'configure'スクリプトを含むtarballをリリースした場合(PHPからのダウンロードと同じように)、' make dist'を使う必要がありますか? – Lekensteyn

+3

AM_MAINTAINER_MODEは常に悪い考えです。それは数年前に同意した作者です。現在、(主に)非推奨とされており、automakeからそれを削除するという話があります。それを使用しないでください。 –

+0

@Lekensteyn: 'make dist'は配給用のtarballを作るためにすごくうまく動作します。 – thiton

4

インストール手順がひどく壊れています。ユーザーは、ソフトウェアを構築するためにautotoolチェーンをインストールする必要はありません。あなたのtarballにconfigureスクリプトを配布する必要があります。バージョン管理システムにconfigureスクリプトを含めないでください。

+0

返信いただきありがとうございます。私は今、 'make dist'を使うべきであることを知っています(' configure'ファイルなどを生成するのに最適です)。 – Lekensteyn

+2

@Lekensteyn - 実際には、 'make distcheck'を使うべきです。 –

+0

よく分かりませんが、autotoolsにはたくさんのオプションがありますが、ドキュメントは簡潔ではないので、知っておく必要があります。 http://www.gnu.org/software/automake/manual/html_node/Preparing-Distributions.html – Lekensteyn

関連する問題