Makefile の書き方のルール
Makeファイルを作成する際には、いくつかのルールに従う必要があります。以下は、一般的に使われるMakeファイル記述ルールです。
- makefile(またはMakefile)というファイル名にし、プロジェクトのルートディレクトリに配置する。
- # で始まる行はコメントを表しています。Makefileでは、ルールや変数の意味を説明するためにコメントを含めることができます。
- Makefileは一連のターゲットルールから構成されます。ターゲットルールはターゲット、前提条件、およびコマンドから構成されます。
- ターゲット(target):ビルドする目的のオブジェクトファイル、実行ファイル、その他の成果物
- 前提条件( prerequisites ):ターゲットが依存するファイルや他のターゲットを示す。
- レシピ:目標を構築するために必要な具体的な操作の手順を記載した文書。
- ネイティブルールのおおまかなフォーマットは以下となります。
- 前提条件
- 変数の定義: Makefile では変数を使用してコンパイラやコンパイルオプションなどの一般的な値を定義できます。変数の定義形式は次のとおりです。変数 = 値。
- 明示ルールと暗黙ルール:明示ルールとは、明確にターゲットと依存関係を指定して定義されたルール、暗黙ルールとは、パターンマッチングで定義されたルール
- 定義済みのルール:Makefileには、生成されるターゲット・ファイルを自動的に決定するための定義済みのルールが含まれています。
- 特殊ターゲット: Makefileにはclean、installなどの特定の操作を実行する特殊なターゲットがあります。
- makeコマンド:Makefile内に記載されたルールに従ってターゲットファイルをビルドするmakeコマンド。makeコマンドは自動的にMakefileファイルを検索して、記載されたルールを実行します。
これらのルールはメイクファイルで書かれた基本ルールであり、プロジェクトの要件やコンパイル環境に応じて、Makefile内のルールとコマンドを拡張、カスタマイズできます。