Automake:将本地便利行为添加到"进行检查"

时间:2016-09-01 16:21:55

标签: testing makefile automated-tests autotools automake

使用标准的项目布局

$(src_topdir)/include
$(src_topdir)/src
$(src_topdir)/tests

我想在键入" make check"时在$(src_topdir)/tests中运行所有测试。在$(src_topdir)/src中除了在$(src_topdir)/src中运行任何已配置的测试之外。{/ p>

Automake提供了一个扩展,通过添加(在Makefile.am中)我可以定义的目标check

,为local-check Makefile目标添加其他目标
local-check:
        cd ../tests && $(MAKE) $(AM_MAKEFLAGS) check

虽然这允许我在make check目录中$(src_topdir)/src满意,但不幸的是它打破了make check目录中对$(src_topdir)的调用。这是因为来自$(src_topdir)的调用以递归方式输入$(src_topdir)/src$(src_topdir)/tests两次触发$(src_topdir)/tests中的测试。

我是否有办法在Makefile.am中修改$(src_topdir)/src,以便本地make check来电可以触发所需的额外测试make check其余的工具不受影响?

1 个答案:

答案 0 :(得分:1)

在Automake中无法做到这一点。

一种解决方法是简单地更改目标的名称。也就是说,不要键入make check,而是键入make mycheck(或任何您喜欢的内容)。然后mycheck规则很容易编写。

另一个想法是简单地省去子目录Makefile。如今,整个树只有一个Makefile,这通常会更好。然后这个问题就消失了 - 或者,如果你真的想要,你可以写一个只有src/Makefile目标的小check