如何从Makefile运行所有输入测试文件?

时间:2015-06-30 05:13:18

标签: bash makefile

这可能是一个非常noob的问题,但我不知道如何解决它。我有一个C程序和一个名为“input”的文件夹。是否可以编写允许我键入“make run”然后执行所有测试实例的规则,将结果写入单个文件中?

我想它就像是:

run: test1 test2 test3

test1:
    ./myproj < arq1.in > output.out

test2:
    ./myproj < arq2.in > output.out

...

但是我如何实现每个人都写入同一个文件,即附加结果,而不是重写它?有可能吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

首先切换到&#34;&gt;&gt;&#34; 追加到输出文件:

run: test1 test2 test3

test1:
    ./myproj < arq1.in >> output.out

test2:
    ./myproj < arq2.in >> output.out

test3:
    ./myproj < arq3.in >> output.out

然后将这些目标设为PHONY,因为它们是(即它们不构建名为&#34; test1&#34;,&#34; test2&#34;&#34; test3&#34;)的文件:

.PHONY: test1 test2 test3

然后切换到static pattern rule

run: test1 test2 test3

.PHONY: test1 test2 test3

test1 test2 test3: test%:
    ./myproj < arq$*.in >> output.out

可以进行进一步的改进,但现在已经足够了。