2011-11-29 53 views
0

讓我想簡化工作流程,這樣,而不是發出這些命令調用從構建

$ make program_unittest 
    ... output of $MAKE ... 
$ ./program_unittest args 

我可以有我的程序自動嘗試編譯本身(如果源已被更新),當它是跑步,這樣我就不必回去跑步了。

下面是我的想法:我的單元測試版本應該首先檢查它所在的目錄中是否有makefile,如果是,則fork和exec make,目標對應於它自己。如果make確定「無事可做」,它將繼續運行(運行單元測試)。但是,如果make實際執行編譯,則可能發生以下兩種情況之一。 gcc(由make調用)可能能夠在編譯過程中覆蓋構建版本(其中的較舊版本已在運行),在這種情況下,我可以隨後執行它。如果我的系統不允許gcc覆蓋正在使用的程序,那麼我必須在運行make之前退出程序。

所以這已經變得相當複雜了。有沒有更優雅的解決方案?也許我可以使用bash腳本?如何確定make是否發佈了編譯命令?

回答

1

爲什麼不能運行單元測試?

+0

非常有效,這一點是。 –