我们目前正在使用NMake将我们的古老构建系统从一堆批处理脚本升级到makefile系统。这很有挑战性,因为我们使用自定义中间语言,最终转换为C ++,我们的一些翻译人员可以生成10个文件,这些文件在文件名中有共同的部分。另一个具有挑战性的事情是我们使用一堆CSV文件来配置我们的接口,这些文件会传递给我们的配置工具,从而生成更多的源代码文件。现在我专注于为配置文件创建简单的规则,但似乎无法找到一种方法,如果依赖关系存在,则将依赖关系与规则相关联。我试图使用$(通配符xxx.csv),但发现这个命令对于NMake不存在,就像它对GNU Make一样。
那么,如果我有两个始终存在的依赖性csv文件,并且只有当我的项目调用它时才存在的第三个csv文件,那么如何创建我的规则以便它执行并运行我的命令?
答案 0 :(得分:0)
[..]只有在我的项目需要它时才会存在?
这有点不清楚。假设有一个命令 - 根据一些外部情况 - 可能会生成第三个csv文件,你可以使用“戳文件”(我认为他们称之为NMAKE中的“伪目标”):
stamp:
command_that_might_generate_csv3
touch stamp # updates timestamp of "stamp" (or creates it)
target: csv1 csv2 stamp
command_using_all_of csv1 csv2 csv3