web-dev-qa-db-ja.com

aclocalのポイントは何ですか?

Autotoolsを使用してソースファイルを構成する場合のaclocalスクリプトとaclocal.m4ファイルの意味は何ですか?私が読んだ内容から、aclocalはマクロファイルをスキャンして、後でautomakeが使用するマクロを探します。私はこのプロセスを詳しく理解していませんが、スキャン機能がautomakeに組み込まれただけの可能性があるようです。

43
theactiveactor

Alexandre Duret LutzのAutotoolsチュートリアル を参照してください。

これには、autotoolsプロジェクトのさまざまなファイルが相互にどのように相互作用し、それらがどのツールによって使用されるかを説明する図が含まれています。configureconfig.hconfig.statusaclocal.m4など

編集:John Calcoteはまた、Autotoolsに関する本の 本の最初の章でaclocalおよびaclocal.m4の目的を説明しています第1章=GNU Autotools の簡単な紹介:

Aclocalユーティリティは、実際にはGNUマニュアルによってAutoconfの柔軟性の特定の欠如に対する一時的な回避策として文書化されています。Autoconfは最初に設計および記述され、それから数年後にAutomakeはAutoconfのアドオンとして考えられていましたが、AutoconfはAutomakeが必要とする規模で拡張できるようには設計されていません。

...

基本的に、aclocalの仕事は、Autoconfがそれらをすべて1か所で見つけることができるように、インストールされたAutotoolパッケージおよびユーザー指定の場所からさまざまなマクロファイルを統合することによってaclocal.m4ファイルを作成することです。

...

ただし、両方のツールセットの最新のドキュメントでは、aclocal/acincludeパラダイム全体が廃止され、m4マクロファイルを含むディレクトリを指定する新しい方法が推奨されていることが示されています。現在の推奨事項は、プロジェクトディレクトリに単にm4という名前のディレクトリを作成し(この作成者にはacincludeがより適切と思われます)、このディレクトリに個別の.m4ファイルの形式でマクロを追加することです。 Autoconfがconfigure.acファイルを処理する前に、このディレクトリ内のすべてのファイルがaclocal.m4に収集されます。最終的に、aclocalはAutoconf自体の機能に置き換えられます。

41
Gregory Pakosz

私のソフトウェアでは、aclocal.m4は、ソフトウェアのビルド中に使用するさまざまな非標準のAutoconfマクロを収集します。そのようなマクロのセットの1つは、1秒未満のタイミングを扱います-利用可能なオプションの最良のものを選択します(何が「最良」かについてのいくつかの事前に決定された基準に従って)。このようなマクロの別のセットは、過去20年間に進化したIBM Informix ESQL/Cコンパイルシステムの複雑さを扱います(ESQL/C 5.20を処理します。バージョン5.00は1990年にリリースされ、最新バージョンも処理します)。 IBM Informix ClientSDK 3.50の一部-2008年にリリースされたにもかかわらず、これはESQL/C 3.50が含まれています。

そう、 aclocal.m4は、必ずしも通常のAutoconfの一部ではないが、特定のソフトウェアで使用されるローカルマクロ用です。

10

http://freesoftwaremagazine.com/articles/brief_introduction_to_gnu_autotools/ によるJohn Calcoteの記事へのリンク。私はその投稿についてコメントしたでしょうが、ここでの私の評判は低すぎます。

重要な段落:

基本的に、aclocalの仕事は、Autoconfがそれらをすべて1か所で見つけることができるように、インストールされたAutotoolパッケージとユーザー指定の場所からさまざまなマクロファイルを統合してaclocal.m4ファイルを作成することです。

0
Earnie