在我正在进行的项目中,我有一个充满源文件的目录,需要一个特殊的可执行文件才能编译。我最初的反应是:
SomeDirectory/%.o: my-special-compiler
...为所有%.o
个文件添加依赖项。
除了当然这不起作用,因为模式规则是特殊的,而上述索引将为非模式规则添加先决条件,对于模式规则,它似乎什么都不做。
我在构建系统中此时没有SomeDirectory中所有.o文件的列表。有没有办法可以实现相同的效果,而无需重构我的构建系统?
这是GNU Make,如果有帮助的话。
答案 0 :(得分:1)
不仅仅是添加新规则。您必须列出每个目标文件,并将该先决条件专门添加到它们。没有配方cancels the pattern rule的模式规则。
可能您最好的选择是遵循为auto-dependency generation创建的模型,并自动生成包含该额外先决条件的文件,作为创建目标文件的副作用...然后包含它。