GNU Build System、一般にAutotoolsとして知られるものは、ソースコードパッケージを多くのUnixライクシステムに移植可能にするために設計された一連のプログラミングツールです。.amファイル拡張子は具体的にはAutomakeファイルを指し、移植可能なMakefileを生成するためのテンプレートとして機能します。これらのファイルは、ソースファイル、ヘッダー、ターゲット実行可能ファイルやライブラリを含むプロジェクト構造を記述する高水準の構文で記述されています。automakeツールが実行されると、これらの.amファイルを処理してMakefile.inファイルを生成します。その後、Autoconfによって生成されたconfigureスクリプトが、これらのMakefile.inファイルを使用して、ユーザーシステムの特定の環境に合わせて調整された最終的なMakefileを作成します。この多段階プロセスにより、ソフトウェアが多様なハードウェアアーキテクチャやオペレーティングシステムディストリビューション間で一貫してコンパイルおよびインストールされることが保証されます。Autotoolsは、依存関係の追跡、クロスコンパイル、インストールパスなどの複雑なタスクを処理し、これらは手動での労力や開発者によるプラットフォーム固有の知識を大幅に必要とする作業です。これは、CおよびC++プロジェクトのオープンソースコミュニティにおける標準であり続けています。