Как "сказать" компилятору, чтобы файлы искались также и в подкаталогах?
Например, я указываю искать в -I./mysources, но там есть ещё куча подкаталогов. Как прописать поиск и в них, чтобы не писать каждый по отдельности?
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Решение, конечно, «на коленке», но у меня работает (POSIX Make):
.POSIX:
SUBDIRS = $$(find . -type d ! -name . | sed -e 's/^/-I/g' | paste -d ' ' -s)
build:
$(CC) $(SUBDIRS) src.c
Макро SUBDIRS расширяется в команду, которая
находит все дочерние директории в рабочей директории
кроме ., подставляет перед всеми флаг
-I, и соединяет
в одну строчку. В вашем случае, наверное,
исключать саму директорию ./mysources/
не понадобится.
Если у вас GNU Make, можно вычислить значение один раз вместо вычисления при каждой замене с помощью:
SUBDIRS := $(shell find . -type d ! -name . | sed -e 's/^/-I/g' | paste -d ' ' -s)