将子句的输出控制为`make`

时间:2014-11-04 16:23:18

标签: makefile gnu-make

我有一个Makefile,其中一个目标如下:

task: $(foreach t,$(SUBDIRS),subtask_$t)

subtask_%:
        make -C $* subtask

简而言之,task运行列表subtask目录中的每个Makefile中定义的$(SUBDIRS)目标。默认情况下,控制台的输出是子任务的所有输出的组合。有没有办法简单输出,例如$* SUCCESS$* FAILED取决于退出代码?

我尝试过使用@make...,但这并没有掩盖从其他Makefile运行的命令的输出。

理想情况下,我想保持子Makefile不变,因为我偶尔也想直接使用它们并获得完整的输出。

1 个答案:

答案 0 :(得分:1)

一种可能的方法是让每个子任务将其输出写入自己的日志文件。如:

subtask_%:
        make -C $* subtask 2>&1 > subtask/make.log