![]() | |
開発元 | GNUプロジェクト |
---|---|
初版 | 1996年5月28日 (28年前) (1996-05-28) |
最新版 | |
リポジトリ | ![]() |
対応OS | クロスプラットフォーム |
種別 | プログラミングツール |
ライセンス | GNU General Public License |
公式サイト | www![]() |
テンプレートを表示 |
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]。
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]。
歴史 | ||
---|---|---|
ライセンス | ||
ソフトウェア (一覧) | ||
代表者 | ||
その他 | ||