首页 文章

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

提问于
浏览
0

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

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

subtask_%:
        make -C $* subtask

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

我已经尝试使用 @make... ,但这并不掩盖从其他Makefile运行的命令的输出 .

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

1 回答

  • 1

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

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

相关问题