Makefile目标依赖项:如何组合变量名

时间:2019-03-15 16:27:36

标签: makefile gnu-make

在我的Makefile中,我想做这样的事情

OBJ_sound =\
    sound/soundaiff.o\
    sound/sounddummy.o\
    sound/sounddump.o

OBJ_video =\
    video/render.o\
    video/rendercrt.o\
    video/renderntsc.o

lib_%.a: $(OBJ_%)
    $(AR) rcs $@ $+

我想要的是,在创建目标lib_video.a时,将$(OBJ_video)中的所有目标文件打包到lib_video.a中,并且在制作lib_sound时,将$(OBJ_sound)中的所有目标文件打包到lib_sound.a中< / p>

但是我上面的Makefile片段不起作用($ +始终为空)。有人知道为什么吗?

1 个答案:

答案 0 :(得分:2)

一种选择是使用secondary expansion

.SECONDEXPANSION:

lib_%.a: $$(OBJ_$$*)
    $(AR) rcs $@ $+