2015-06-30 24 views
0

這可能是一個很小的問題,但我不知道如何解決它。我有一個C程序和一個名爲「輸入」的文件夾。是否可以編寫允許我輸入「make run」的規則,然後執行所有測試實例,將結果寫入單個文件?如何從Makefile運行所有輸入測試文件?

我想象它是這樣的:

run: test1 test2 test3 

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

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

... 

但是我怎麼做到這一點大家都寫入到同一個文件,即追加的結果,而不是改寫呢?可能嗎?

在此先感謝

回答

3

首先切換到「>>」到追加到輸出文件:

run: test1 test2 test3 

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

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

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

然後使這些目標的假,因爲他們(即它們不建立文件命名爲 「測試1」, 「TEST2」 和 「TEST3」):

.PHONY: test1 test2 test3 

然後切換到一個static pattern rule

run: test1 test2 test3 

.PHONY: test1 test2 test3 

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

進一步改進是可能的,但現在已經足夠了。

+0

@EtanReisner:完全沒有,謝謝你的糾正。 – Beta

相關問題