Makefile で「デバッグビルドのときだけフラグを足したい」「OS ごとにコマンドを変えたい」といった分岐をしたいとき使うのが ifeq と ifdef です。書き方に少しクセがあるので、実例つきでまとめました。挙動はすべて手元の GNU Make で実行して確認しています。
仕様の詳細は GNU Make 4.4 日本語マニュアル 第7章「Makefileの条件分岐」 を参照してください。この記事はその実例版です。
4つの条件ディレクティブ
| ディレクティブ | 分岐の条件 |
|---|---|
ifeq |
2つの値が等しい |
ifneq |
2つの値が等しくない |
ifdef |
変数が定義されている(空でない) |
ifndef |
変数が定義されていない(空) |
いずれも else と endif で閉じます。else は省略できますが endif は必須です。