make-файл GNU фильтрует список исходных файлов через список папок, чтобы игнорировать - PullRequest
0 голосов
/ 14 января 2019

Допустим, у меня есть следующие переменные:

SOURCES = folder1/a.c folder1/b.c folder2/c.c folder3/d.c folder3/e.c
FILTERS = folder2 folder3

Теперь я хочу установить переменную, которая содержит только folder1/a.c folder1/b.c. Я попытался $(filter-out folder2%,$(SOURCES)), и это действительно удаляет элементы watwatned folder2. Так что, может быть, я смогу каким-то образом пройти через ФИЛЬТРЫ?

Или есть лучший способ сделать это?

1 Ответ

0 голосов
/ 14 января 2019

Вы можете просто использовать:

OUTPUT := $(filter-out $(addsuffix /%,$(FILTERS)),$(SOURCES))

filter-out может принимать несколько фильтров и применять их все. Я рекомендую вам использовать /% вместо %, чтобы не перехватывать имена файлов, которые начинаются с имени каталогов.

...