[Make] ifeq で条件分岐する

作成日: 2026年03月19日

Makefile では ifeq を使うと、変数の値が一致するかどうかで条件分岐できます。下記の例では、変数 ENV の値に応じて、表示するメッセージを切り替えています。

ENV ?= dev

ifeq ($(ENV),prod)
MESSAGE = deploy to production
else
MESSAGE = deploy to development
endif

message:
    @echo $(MESSAGE)

make message を実行すると、ENV にはデフォルト値の dev が使われるので、出力結果は下記になります。

deploy to development

ENV=prod を指定して make ENV=prod message を実行すると、ifeq の条件が true になるため、出力結果は下記になります。

deploy to production

ifeq を使うときは、条件ブロックの最後に endif が必要です。また、値に空白が含まれる可能性がある場合は、下記のように引用符付きで比較すると安全です。

ifeq ("$(ENV)","prod")
  MESSAGE = deploy to production
endif
Make