两个先决条件之一匹配的Makefile规则

两个先决条件之一匹配的Makefile规则,makefile,Makefile,我想为一个案例制定一个makefile规则,其中 .bbb和.ccc类型的文件被编译成.aaa 我可以简单地写两条规则: %.aaa: %.bbb process $< %.aaa: %.ccc process $< %.aaa:%.bbb 过程$< %.aaa:%.ccc 过程$< 但我想知道这是否可以通过一条规则来实现,比如: %.aaa: %.bbb OR %.ccc process $< %.aaa:%.bbb或%.ccc 过程$< 请注意,b

我想为一个案例制定一个makefile规则,其中 .bbb和.ccc类型的文件被编译成.aaa

我可以简单地写两条规则:

%.aaa: %.bbb
   process $<
%.aaa: %.ccc
   process $<
%.aaa:%.bbb
过程$<
%.aaa:%.ccc
过程$<
但我想知道这是否可以通过一条规则来实现,比如:

%.aaa: %.bbb OR %.ccc
   process $<
%.aaa:%.bbb或%.ccc
过程$<

请注意,bbb或ccc文件中只有一个足以进行编译,在我的例子中,只有一个文件存在(因此x.bbb或x.ccc,而不是两者都存在)

第一种方式是如何表达这一点。所有makefile规则都隐式地或在一起。表示您可以从%.bbb或%.ccc中创建%.aaa与表示您可以从%.bbb中创建%.aaa和您可以从%.ccc中创建%.aaa是相同的


如果规则的主体很复杂,并且您希望“重用主体”,则许多Make都有宏功能,可以让您在一个位置定义它并重用它。

是的,主要思想是重用主体。谢谢你的回答。