オートメイク

オートメイク
開発者GNUプロジェクト
初回リリース1996年5月28日 (1996年5月28日
安定版リリース
1.18.1 [ 1 ] ウィキデータで編集する / 2025年6月26日 (2025年6月26日
リポジトリ
オペレーティング·システムクロスプラットフォーム
タイププログラミングツール
ライセンスGNU一般公衆利用許諾契約書
Webサイトwww .gnu .org /ソフトウェア/automake /Wikidataで編集する

GNU Automakeは、コンパイルプロセスの一部を自動化するソフトウェア開発ツールです。よくあるコンパイルの問題を軽減します。例えば、必要な依存関係を指摘してくれます。

Makefile.amと呼ばれるファイルから、1つ以上のMakefile.in を自動的に生成します。各Makefile.amには、コンパイラリンカーのフラグ、依存関係とそのバージョンなど、コンパイルされたソフトウェアに必要な変数定義が含まれています。生成されたMakefile.inは移植性が高く、 GNU コーディング標準の Makefile 規約に準拠しているため、configure スクリプトで使用してMakefile を生成することができます。[ 2 ]

フリーソフトウェア財団オートメイクGNUプログラムの一つとして、またGNUビルドシステムの一部として使用されている。GTK[ 3 ]などのGNUアプリケーションやライブラリ、またXCircuit[4]などの非GNUソフトウェアのビルド使用いる

プロセス

autoconfとautomakeのフロー図

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

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

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

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

デザイン

AutomakeはPerlで書かれており、 GNU Autoconfと一緒に使わなければなりません。[ 2 ] Automakeには次のコマンドが含まれています。

  • 非ローカル
  • オートメイク

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

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

参照

参考文献

  1. ^ Karl Berry (2025年6月26日). 「automake-1.18.1 リリース [安定版]」 . 2025年6月26日閲覧
  2. ^ a b「GNU Automake」 . GNU .フリーソフトウェア財団. 2021年10月1日. 2024年4月26日閲覧
  3. ^ 「GTK+ライブラリのコンパイル」2024年4月26日時点のオリジナルよりアーカイブ2024年4月26日閲覧。
  4. ^ 「XCircuitのコンパイルとインストール」2024年4月26日閲覧。
  5. ^ 「Automakeマニュアル -- 自動依存関係追跡」 . GNU.org . 2024年4月26日閲覧
  6. ^ 「Automakeの歴史」 . GNU.org . 2024年4月26日閲覧。
  7. ^ 「Re: "make distclean" は壊れている?」 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