在我嘗試使用GNU Make Makefile實現的軟件構建自動化的某些步驟中,我遇到了不僅要求將目標作爲源文件的情況,而且作爲一種不同類型的要求,我希望啓動依賴於另一軟件的目標,因此作爲操作系統進程存在。GNU makefiles規則是否可以將流程作爲需求來處理,如果是這樣的話?
這樣的程序可以是後臺進程,也可以是前臺進程,例如運行HTML5應用程序的Webbrowser,它可能在構建過程中發揮作用,例如通過與通過構建過程饋送的文件進行交互。
我會因此喜歡有點編寫規則是這樣的:
.PHONY: firefoxprocess
Html5DataResultFile: HTML5DataSourceFile firefoxprocess
cp HTML5DataSourceFile folder/checked/by/html5app/
waitforHtml5DataResultFile
firefoxprocess:
/usr/bin/firefox file://url/to/html5app &
正如所看到的我採取的想法,.PHONY目標是有點非文件的目標,因此將允許requirering的過程是開始了嗎?但我不確定這是否正確。 GNU make的文檔非常好,而且相當大,我完全不能理解它。就我所知,文檔並沒有真正報告規則中使用的流程的使用情況,這引發了這裏的問題。
我的感覺一直是PID文件是有點進程和文件之間的聯繫,但他們提出的幾個問題(即競爭條件,獨特性等)