Makeでは、条件に応じて処理を変えられることが判明。 以下の例では、カレントディレクトリに index.html が 存在している場合は、proc-a マクロを実行、そうでない場合は proc-b マクロを実行します。
indexhtml := $(shell ls | egrep "^index.html$$")
define proc-a
@echo "index.html found."
endef
define proc-b
@echo "index.html not found."
endef
test :
$(if $(indexhtml) ,$(proc-a),$(proc-b))
$ make
index.html not found.
$ make
index.html found.