我使用'用于'循环来创建子目录,但是当子目录中的make出现一些错误时,它会继续创建下一个目录,我可以在发生错误时停止并且生成' make'在子目录?
all :
for i in $(SUBDIRS); do make -C $$i dll; done;
||
make[1]: *** [bd_snmp.o] error 1
make[1]: Leaving directory `/home/ping/work/svnsocserv/src/bd_snmp'
make[1]: Entering directory `/home/ping/work/svnsocserv/src/bd_snmp_proxy'
答案 0 :(得分:8)
当然,只需在shell脚本中添加一些内容即可检查:
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i dll || exit 1; done
(注意总是使用$(MAKE)
递归调用子作品,而不是make
)。
这不是一个很好的方法,因为虽然它在子make失败时会立即退出,但它不遵循make -k
选项继续运行。