工作目录下辖两个子目录./test6 ./test9,里面各含一个可执行的makefile

 1  sources=./test6 ./test9
 2  var=$(foreach dir,$(sources),$(MAKE) -C $(dir))
 3  all:
 4      @echo $(var)

    运行:
    make -C ./test6 make -C ./test9
 完全没达到,运行两目录下的makefile的目的
  1. var=$(foreach dir,$(sources),$(MAKE) -C $(dir);)
    需要在$(dir)变量后面加一个分号$(dir);
    因为相当于是要执行多条make命令,需要分号来分割

  2. all:
    $(var)
    去掉@echo, 不然会和第一个make语句连成一个echo语句,这就会造成打印第一个make语句,而仅执行第二make语句
    图片说明