我在Makefile中执行以下命令: -
@ls export_mojave/marker_*.tcl > export_mojave.list
@for file in `cat export_mojave_tcl_files.list`; do \
diff $$file bk_marker > $$file.diff ; \
if ! [ -s $$file.diff ]; then\
rm -f $$file.diff ; \
else \
echo $$file >> marker.fill.tcl.diff; \
fi \
done ;
如果在上述目录中存在与上述表达式相关的文件, 它会运行正常,但如果没有退出任何匹配上面的表达式的文件,它标记错误。 Makefile中是否存在类似“catch”的内容?
答案 0 :(得分:0)
如果您需要在makefile的规则中跳过错误,那么使用' - '符号前缀命令:
-@ls .... > some_file || echo Error: no file;
if [ -e some_file ] ....
或者修改为make-style更多:
FILES := $(shell ls ...)
ifeq ($(FILES),)
$(error no files)
endif
....
target:
$(foreach file,$(FILES), ...)