关于跨平台:如何向我的顶级 Makefile.am 添加预单元测试步骤?

How do I add a pre-unit-test step to my top-level Makefile.am?

我应该在我的顶级 Makefile.am 中添加什么以使 make check 在进入任何子目录之前运行自定义命令?

这里有一些上下文:

当我们的 make check 进程进入源代码树中的每个子目录时,它会构建该子目录的单元测试二进制文件,使用 scp 将二进制文件复制到目标硬件板,并使用 。我们的开发人员比板子多,所以我们是共享的,而目标平台只设置了一个用户 ID,所以如果我们两个或更多人同时运行 make check,我们会破坏彼此的单元测试二进制文件在目标上。

我希望 make check 为每个开发人员在目标上使用一个唯一的子目录,可能在目标唯一用户的主目录中。在 make check 运行期间执行任何其他操作之前,我需要确保此子目录存在。

我希望我可以将 ssh <board-ip> mkdir -p <unique-dirname-based-on-user> 行中的命令添加到我的顶级 Makefile.am 中的变量或目标中,这将导致该命令在 make check 运行开始时运行,在输入任何子目录并进行任何复制之前。


只需使 check-recursive 依赖于您要执行的目标。
例如将以下内容添加到您的 Makefile.am:

1
2
3
4
5
check-recursive: pre-check-recursive

.PHONY=pre-check-recursive
pre-check-recursive:
    @echo"called before running check recursively (YOUR CODE HERE)"