在我尝试使用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文件是有点进程和文件之间的联系,但他们提出的几个问题(即竞争条件,独特性等)