我正在设置一个makefile来运行一个测试,该测试涉及将生成的文件列表与主目录中的对应项进行区分。我可以让循环工作并在diff失败时退出,但我还没想出如何包含失败消息并仍然立即退出for循环(和make过程)。
这是我所拥有的核心:
OUTFILE = $(patsubst $(MASTER_DIR1)/%,$(OUTDIR1)/%,$$file)
default: test
$(OUTDIR1):
$(MKDIR) $(OUTDIR1)
test: $(OUTDIR)
@for file in $(MASTER_LIST1); do \
echo $$file; \
diff $(IGNORE_OPT) \
$$file \
$(OUTFILE) \
&& exit 1; \
done
退出失败但未通知用户原因。我尝试将&& exit 1;
行更改为:
&& (echo "Diff failed"; exit 1; ); \
显示错误消息但不再退出。
如何添加错误消息并立即退出?
TIA!
答案 0 :(得分:1)
根据Etan Reisner在对原始问题的评论中提供的帮助,这是有效的解决方案:
test: $(OUTDIR)
@for file in $(MASTER_LIST1); do \
echo $$file; \
diff $(IGNORE_OPT) \
$$file \
$(OUTFILE) \
&& { echo "Diff failed"; exit 1; }; \
done