Makefile 如何避免停止递归的'check'目标?

Makefile 如何避免停止递归的'check'目标?,makefile,gnu-make,autotools,automake,Makefile,Gnu Make,Autotools,Automake,我的项目具有以下目录结构(某些文件为 清晰度): 如果我运行a/、b/和c/中的所有测试 TESTS/Makefile.am的TESTS变量中的子目录,然后使用 进行检查在测试中,所有测试都会运行,即使其中一个测试中有一个测试 子目录失败。假设这就是我想要的行为 但是,使用此配置,我无法转到b/,例如 运行makecheck:因为那里没有测试变量,makecheck 什么也不做 因此,我在a/Makefile.am、b/Makefile.am和 c/Makefile.am,并从TESTS/Mak

我的项目具有以下目录结构(某些文件为 清晰度):

如果我运行
a/
b/
c/
中的所有测试
TESTS/Makefile.am
TESTS
变量中的子目录,然后使用
进行检查
测试
中,所有测试都会运行,即使其中一个测试中有一个测试 子目录失败。假设这就是我想要的行为

但是,使用此配置,我无法转到
b/
,例如 运行
makecheck
:因为那里没有
测试
变量,
makecheck
什么也不做

因此,我在
a/Makefile.am
b/Makefile.am

c/Makefile.am
,并从
TESTS/Makefile.am
中删除
TESTS
变量。现在 我可以转到
a/
b/
c/
并运行
进行检查
,只测试特定的代码 项目的一部分。但是,由于每个
检查
都可以
失败,现在
tests/
中的“全局”
检查一旦失败
子目录失败,这是Make的预期行为

我目前的解决方法是使用
make--keep-going检查
tests/
中的

根据:

出错后尽可能多地继续。而目标是 失败的,以及依赖它的,不能被重新制作,另一个 同样可以处理这些目标的依赖关系

这似乎会运行所有的
检查
并退出
如果其中一个失败,则为0以外的值

我还可以将这个
make--keep going check
包装到一个新的目标中,例如 例如:

现在
maketest
tests/
中实现了我想要的功能

为了达到同样的目标,我还能做些什么? 或者使用
make--keep going check
这里的预期方法,如果我 不想在一个子目录测试失败时立即停止Make吗

Makefile.am
tests/
  Makefile.am
  a/
    Makefile.am
  b/
    Makefile.am
  c/
    Makefile.am
test:
        $(MAKE) $(AM_MAKEFLAGS) --keep-going check