ビルド (ソフトウェア)
実行ファイル形式のプログラムを成果物(最終出力)とする方式のソフトウェア開発では、まずソースファイル(ソースコード)をコンパイルしてオブジェクトファイル(オブジェクトコード)に変換した後、そのオブジェクトファイルをリンクし、コンピュータ(オペレーティングシステム)が直接実行できるバイナリ形式のファイルを生成する作業が必要となる。ソースファイルが1つしかないならば、それらの作業をコマンドラインから実行するのも簡単だが、ソースファイルが多数存在するプロジェクトでは、正しい順序とオプションで手作業するのは至難の業である。この問題を解決する手段としてmakeのようなスクリプト言語が登場した。それにより、コンパイルやリンクを正しい順序で行うスクリプトを書くことができる。GNU Makeでは更にソースコードの依存関係を管理でき、変更された部分だけをコンパイルするインクリメンタルビルドが可能になった。これがビルドの自動化の始まりである。その第一の目的はコンパイラやリンカの呼び出しを自動化することだった。ビルドプロセスが複雑化するに従い、コンパイラ呼び出しの前後に様々な作業(バージョン管理システムからのチェックアウトや生成した実行ファイルのテスト環境への投入など)を追加するようになった。
さらに、ビルドツールは進化し、スクリプト(Makefile)自体を生成するものが登場した。