GNU Automake は、コンパイルプロセスの一部を自動化するソフトウェア開発ツールである。必要な依存関係を特定するなどして、一般的なコンパイルの問題を軽減する。
Automakeは Makefile.am というファイルから、1 つ以上の Makefile.in を自動的に生成する。各 Makefile.am には、コンパイラやリンカのフラグ、依存関係とそのバージョンなど、コンパイルされたソフトウェアに便利な変数定義が含まれている。生成された Makefile.in は移植可能で、の Makefile 規則に準拠しており、実用的な Makefile を生成するためにconfigureスクリプトによって使用される。
フリーソフトウェア財団は、Automake を GNU プログラムの 1 つとして、また GNU Build System の一部として管理している。Automake は、GTK などのいくつかの GNU アプリケーションやライブラリ、また などの非 GNU ソフトウェアのビルドにも使用される 。
プロセス
Automake は、プログラマが Makefile 全体を手動で記述するのではなく、高水準言語で Makefile を記述できるようにすることを目的としている。単純なケースでは、次のコードで十分である。
ビルドするプログラムの名前を宣言する行 ソースファイルのリスト コンパイラに渡されるコマンドラインオプションのリスト(たとえば、ヘッダーファイルが見つかるディレクトリ) リンカに渡されるコマンドラインオプションのリスト(プログラムに必要なライブラリと、そのライブラリが見つかるディレクトリ)
Automake は依存関係情報を自動的に生成する機能も備えており、ソースファイルが変更されると、次に make コマンドを呼び出す際に、どのソースファイルを再度コンパイルする必要があるかがわかる。コンパイラが許可する場合、Automake は依存関係システムを動的にしようとする。つまり、ソースファイルがコンパイルされるたびに、コンパイラにファイルの依存関係リストを再生成するように要求し、そのファイルの依存関係を更新する。言い換えれば、依存関係の追跡はコンパイルプロセスの副次的な影響である。
これは、プログラマがプロジェクトに取り組み始めたときに依存関係が一度だけ検出されるという、一部の静的依存関係システムの問題を回避しようとするものである。
設計 Automake は Perl で書かれており、GNU Autoconf と一緒に使用する必要がある。Automake には次のコマンドが含まれている。
aclocal automake
ただし、aclocal は autoconf ユーザーにとって便利な汎用プログラムである。たとえば、GNUコンパイラコレクション (GCC) は、Makefile が手書きであっても aclocal を使用する。
Autoconf と同様に、Automake は完全な下位互換性があるわけではない。たとえば、automake 1.13 で作成されたプロジェクトは、必ずしも automake 1.14 で動作するとは限らない。
関連項目
Autoconf
脚注
参考文献
External links
Online version of The Goat Book aka Autobook Combined manual for Automake and Autoconf Autotoolset home page