模式特定变量表示依赖关系

时间:2016-03-25 05:46:17

标签: makefile

我需要表达一个模式规则,其中目标的依赖关系是使用模式在变量名中定义的。我怎么表达这个?

myvar_image1:=a.o b.o c.o d.o
myvar_image2:=f.o g.o h.o i.o j.o

myimage-%: $(myvar_%)
    ld -o $@ $(myvar_$*)

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

据我了解,一个解决方案就是:

# For testing:
# touch {a..e}.c
# make all
Sources = a.c b.c c.c d.c e.c
# Now $(Objects) = a.o b.o ...
Objects = $(Sources:.c=.o)

%.o: %.c
    @echo "Say hi from $< to $@"

all: $(Objects)
    @echo Say hi $^

获得源后,makefile可以创建对象的正确扩展。稍后让make使用模式样式创建每个对象:%.o: %.c