如果文件myFile
不存在,那么makefile的片段应该停止执行:
test:
if [ -e myFile ] ; then \
echo "Error Message"; \
fi;
如果我用$(error: Error Message); \
替换echo-statement,则在两种情况下都会停止make文件。但是如果文件存在,我需要停止makefile。
答案 0 :(得分:1)
$(error )
由make本身解释,因此如果在读取文件时遇到它,则会产生错误。如果在执行配方期间需要错误,则必须运行返回错误退出代码的命令。大多数直截了当的是false
,例如
test:
if [ -e myFile ] ; then \
echo "Error Message"; false; \
fi;
当然,您可以使用$(shell )
检查文件,而无需配方:
ifeq ($(shell test -e myFile && echo yes),)
$(error Error Message)
endif