我使用'for'循环来创建子目录,但是当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'
Run Code Online (Sandbox Code Playgroud)
当然,只需在shell脚本中添加一些内容即可检查:
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i dll || exit 1; done
Run Code Online (Sandbox Code Playgroud)
(注意总是使用$(MAKE)递归调用sub-make,从不make).
这不是一个很好的方法,因为虽然它在子make失败时会立即退出,但它不遵循make -k选项继续运行.