Makefile GNU make:后缀规则与自定义规则相结合

Makefile GNU make:后缀规则与自定义规则相结合,makefile,gnu-make,Makefile,Gnu Make,假设我有以下几点: myfile.xyz: myfile.abc mycommand .SUFFIXES: .SUFFIXES: .xyz .abc .abc.xyz: flip -e abc "$<" > "logs/$*.log" myfile.xyz:myfile.abc 菌毛 .后缀: .后缀:.xyz.abc .abc.xyz: flip-e abc“$在gnu make中不可能执行您想要执行的操作。有双冒号规则允许为一个目标使用多个配

假设我有以下几点:

myfile.xyz: myfile.abc
        mycommand

.SUFFIXES:
.SUFFIXES: .xyz .abc

.abc.xyz:
        flip -e abc "$<" > "logs/$*.log"
myfile.xyz:myfile.abc
菌毛
.后缀:
.后缀:.xyz.abc
.abc.xyz:

flip-e abc“$在gnu make中不可能执行您想要执行的操作。有双冒号规则允许为一个目标使用多个配方,但它们不适用于后缀规则或模式规则。有关详细信息,请参阅

以下是一个解决方法:

.SUFFIXES:           # Delete the default suffixes
.SUFFIXES: .xyz .abc # Define our suffix list

.abc.xyz: 
        flip -e abc "$<" > "logs/$*.log"
        if [ myfile.abc = "$<" ]; then mycommand; fi
.suffix:#删除默认后缀
.后缀:.xyz.abc#定义我们的后缀列表
.abc.xyz:
翻转-e abc“$
%.xyz: %.abc
        flip -e abc "$<" > "logs/$*.log"
        if [ myfile.abc = "$<" ]; then mycommand; fi