我有一个设置,其中make通过一堆子目录并在这些目录中进行.我希望它立即停止构建失败.下面的代码片段说明了这一点.有人能指出我应该如何设置makefile的正确方向,或者有关从顶层到子目录构建的文档? 
  
  
 
SUBDirs = \
test1 \
test2 
all clean check :
    @for dir in $(SUBDirs); do \
        if [ -d $$dir ]; then (cd $$dir; $(MAKE) $@) fi \
    done
解决方法
 我是(明显的)少数民族,不同意“Recursive Make Considered Harmful”.我已经为大型,混乱的代码库编写了递归Make系统,并且它们工作得非常好. 
  
 
        这是怎么做的:
all: $(SUBDirs)
$(SUBDirs): force
    @ $(MAKE) -s -C $@
.PHONY: force
force :; 
 (我添加了-s以使事情变得更安静.)
编辑:
将目标传递给子制作(我之前应该这样做):
.PHONY: all check clean
all check clean: $(SUBDirs)
all: TARGET=all
check: TARGET=check
clean: TARGET=clean
# No,you can't do TARGET=$@,or at least I don't kNow how to.
# recursive call to make
$(SUBDirs): force
    @ $(MAKE) -s -C $@ $(TARGET)
.PHONY: force
    force :;