次のメイクファイルを実行しました
.PHONY: check
check:
@[ -f `which cmake` ] || $(error Install cmake first)
.PHONY: check2
check2:
@[ -f `which cmake` ] || echo "Install cmake first"
.PHONY: exec
exec: check
@echo "Compiling executable ..."
@[ -d ./build ] || mkdir ./build
@cd ./build; cmake ../src; make
ターゲット チェック 2 が機能している間( cmake が存在する場合、「最初に cmake をインストールします」というメッセージが表示されません。存在しない場合、メッセージが表示されます)、ターゲットチェックは、cmake が存在する場合でも常に終了します。
そのため、 target execに target checkを使用できません。ターゲットcheck2を使用する必要があります。もちろん、cmake が見つからないため、 make を終了します。
「Compiling executable ...」というメッセージが表示される前に、makeを終了させたいと思います。