Makefile中的问题

时间:2011-07-12 11:26:06

标签: shell makefile

我在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”的内容?

1 个答案:

答案 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), ...)