コンテンツにスキップ

Automake

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Automake
開発元 GNUプロジェクト
初版 1996年5月28日 (28年前) (1996-05-28)
最新版
1.18[1] ウィキデータを編集 / 2025年5月27日 (22時間前)
リポジトリ ウィキデータを編集
対応OS クロスプラットフォーム
種別 プログラミングツール
ライセンス GNU General Public License
公式サイト www.gnu.org/software/automake/ ウィキデータを編集
テンプレートを表示

GNU Automake は、コンパイルプロセスの一部を自動化するソフトウェア開発ツールである。必要な依存関係を特定するなどして、一般的なコンパイルの問題を軽減する。

Automakeは Makefile.am というファイルから、1 つ以上の Makefile.in を自動的に生成する。各 Makefile.am には、コンパイラやリンカのフラグ、依存関係とそのバージョンなど、コンパイルされたソフトウェアに便利な変数定義が含まれている。生成された Makefile.in は移植可能で、GNUコーディング標準英語版Makefile 規則に準拠しており、実用的な Makefile を生成するためにconfigureスクリプトによって使用される[2]

フリーソフトウェア財団は、Automake を GNU プログラムの 1 つとして、また GNU Build System の一部として管理している。Automake は、GTK などのいくつかの GNU アプリケーションやライブラリ、またXCircuit英語版 などの非 GNU ソフトウェアのビルドにも使用される[3] [4]

プロセス

[編集]
autoconf と automake のフローチャート

Automake は、プログラマが Makefile 全体を手動で記述するのではなく、高水準言語で Makefile を記述できるようにすることを目的としている。単純なケースでは、次のコードで十分である。

  • ビルドするプログラムの名前を宣言する行
  • ソースファイルのリスト
  • コンパイラに渡されるコマンドラインオプションのリスト(たとえば、ヘッダーファイルが見つかるディレクトリ)
  • リンカに渡されるコマンドラインオプションのリスト(プログラムに必要なライブラリと、そのライブラリが見つかるディレクトリ)

Automake は依存関係情報を自動的に生成する機能も備えており[5]、ソースファイルが変更されると、次に make コマンドを呼び出す際に、どのソースファイルを再度コンパイルする必要があるかがわかる。コンパイラが許可する場合、Automake は依存関係システムを動的にしようとする。つまり、ソースファイルがコンパイルされるたびに、コンパイラにファイルの依存関係リストを再生成するように要求し、そのファイルの依存関係を更新する。言い換えれば、依存関係の追跡はコンパイルプロセスの副次的な影響である。

これは、プログラマがプロジェクトに取り組み始めたときに依存関係が一度だけ検出されるという、一部の静的依存関係システムの問題を回避しようとするものである[6]

設計

[編集]

Automake は Perl で書かれており、GNU Autoconf と一緒に使用する必要がある[2]。Automake には次のコマンドが含まれている。

  • aclocal
  • automake

ただし、aclocal は autoconf ユーザーにとって便利な汎用プログラムである。たとえば、GNUコンパイラコレクション (GCC) は、Makefile が手書きであっても aclocal を使用する。

Autoconf と同様に、Automake は完全な下位互換性があるわけではない。たとえば、automake 1.13 で作成されたプロジェクトは、必ずしも automake 1.14 で動作するとは限らない[7]

関連項目

[編集]

脚注

[編集]
  1. ^ "automake-1.18 released [stable"]; 作品または名前の言語: 英語; 出版日: 2025年5月27日; 閲覧日: 2025年5月27日.
  2. ^ a b GNU Automake”. GNU. Free Software Foundation (2021年10月1日). 2024年4月26日閲覧。
  3. ^ Compiling the GTK+ libraries”. 2024年4月26日時点のオリジナルよりアーカイブ。2024年4月26日閲覧。
  4. ^ XCircuit Compile and Install”. 2024年4月26日閲覧。
  5. ^ Automake Manual -- Automatic Dependency Tracking”. GNU.org. 2024年4月26日閲覧。
  6. ^ Automake History”. GNU.org. 2024年4月26日閲覧。
  7. ^ Re: "make distclean" broken?” (2013年7月16日). 2024年4月26日閲覧。

参考文献

[編集]
  • Vaughan, Gary V.; Elliston, Ben; Tromey, Tom (2000). GNU Autoconf, Automake, and Libtool. Sams. ISBN 1-57870-190-2 
[編集]