使用标准的项目布局
$(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
其余的工具不受影响?
答案 0 :(得分:1)
在Automake中无法做到这一点。
一种解决方法是简单地更改目标的名称。也就是说,不要键入make check
,而是键入make mycheck
(或任何您喜欢的内容)。然后mycheck
规则很容易编写。
另一个想法是简单地省去子目录Makefile。如今,整个树只有一个Makefile
,这通常会更好。然后这个问题就消失了 - 或者,如果你真的想要,你可以写一个只有src/Makefile
目标的小check
。