Целевые зависимости Makefile: Как собрать имя переменной - PullRequest
0 голосов
/ 15 марта 2019

В моем 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

Но мой фрагмент Makefile выше не работает ($ + всегда пуст). Кто-нибудь знает почему?

1 Ответ

2 голосов
/ 15 марта 2019

Можно использовать вторичное расширение :

.SECONDEXPANSION:

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