本文へスキップ

Makefileとは?

めいくふぁいる

Makefileとは、ビルドツール「make」が読み込む設定ファイルで、ファイル間の依存関係とビルド手順をルールとして記述したものです。

Makefileは、1976年にベル研究所でスチュアート・フェルドマンが開発したビルド自動化ツール「make」が使う設定ファイルです。ソフトウェアのビルド(コンパイルリンクなど)を自動化するために作られましたが、現在ではタスク自動化全般に広く使われています。

Makefileの基本構造は次のとおりです。

  • ターゲット: 生成したいファイル名またはタスク名
  • 依存関係: ターゲットが依存するファイルやほかのターゲット
  • レシピ: 依存関係が変化した際に実行するシェルコマンド

makeは依存関係のタイムスタンプを比較し、変更があったファイルに関連するターゲットのみを再ビルドするため、大規模なプロジェクトでも効率的にビルドを実行できます。C/C++プロジェクトでの利用が伝統的ですが、Python・Go・Rust・フロントエンドプロジェクトでもタスクランナーとしてMakefileが採用されることがあります。

Makefileの構文はインデントにタブ文字を必須とするなど独特の制約がありますが、追加インストール不要でほぼすべてのUnix/Linux環境で動作する点が強みです。CMake・Ninja・Bazelなど後継ツールも多いですが、シンプルさゆえにMakefileは現在も広く使われています。

使い方・例文

C言語プロジェクトでmake buildと打つとソースコードのコンパイルとリンクが自動実行されたり、make testでテストスイートを走らせたりする仕組みを定義するのがMakefileです。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語