首先通过调用shell命令获取当前目录下的子目录列表
dirs := $(shell ls -d */)
再通过makefile语法中已有的foreach函数循环进入每个目录中执行make指令
make指令的-C选项表示在执行之前先跳转到对应目录中
finddirs:
$(foreach N,$(dirs),make -C $(N);)
clean:
$(foreach N,$(dirs),make -C $(N) clean;)