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