for-loop – Makefile:for循环和中断错误
发布时间:2020-12-16 10:24:11 所属栏目:百科 来源:网络整理
导读:我有一个带有for循环的Makefile.问题是当循环内发生错误时,执行继续进行. SUBDIRS += $(shell ls -d */ | grep amore)# breaks because can't write in /,stop execution,return 2test: mkdir / touch /tmp/zxcv# error because can't write in / but carry
我有一个带有for循环的Makefile.问题是当循环内发生错误时,执行继续进行.
SUBDIRS += $(shell ls -d */ | grep amore) # breaks because can't write in /,stop execution,return 2 test: mkdir / touch /tmp/zxcv # error because can't write in / but carry on,finally return 0 tests: @for dir in $(SUBDIRS); do mkdir / ; touch /tmp/zxcv ; done; 如何在遇到错误时让循环停止? 解决方法
@Micheal提供了shell解决方案.你应该真的使用make(然后它将使用-jn).
.PHONY: tests tests: ${SUBDIRS} echo $@ Success ${SUBDIRS}: mkdir / touch /tmp/zxcv 编辑 清洁目标的可能解决方案: clean-subdirs := $(addprefix clean-,${SUBDIRS}) .PHONY: ${clean-subdirs} ${clean-subdirs}: clean-%: echo Subdir is $* do some stuff with $* 这里我使用静态模式规则(good stuff?),因此在配方中$*是模式中匹配的百分比(在这种情况下为subdir). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |