Makefile, исключая файлы

Я создаю GNU Makefile, и у меня возникает следующая проблема:

У меня есть список исключаемых файлов (и каталогов), которые необходимо исключить из список источников. Теперь удаление перечисленных файлов из списка не является большой проблемой. Я просто делаю следующее:

NEWSRC := $(shell find $(SOURCEDIR) -name '*.c')
EXCLUDES := $(shell cat ./$(TARGET12)_exclude.txt) #TARGET12 is a Makefile parameter
CSRC := $(filter-out $(EXCLUDES),$(NEWSRC))

Проблема в том, что EXCLUDES содержат каталог (а не имя файла), и все имена файлов в одном каталоге также должны быть исключены. Например, если одним из членов переменной EXCLUDES является ../sources/filesystem/SomePath, то все файлы в этом каталоге также должны быть исключены из CSRC. Например, это могут быть следующие файлы:

../sources/filesystem/SomePath/something.c
../sources/filesystem/SomePath/src/something.c
../sources/filesystem/SomePath/Some1/src/something.c

Вы знаете, как это можно решить в Makefile?

Заранее спасибо!

7
задан Tunaki 28 August 2015 в 20:17
поделиться