Требуется автоматическое создание опции '-I' - по одной для каждой папки, содержащей файл заголовка '.h'. Если глубина дерева известна, можно использовать функцию wildcard
. Если глубина дерева неизвестна (или очень велика), можно использовать команду «find».
Приведенный ниже код относится к Makefile верхнего уровня. Это означает, что Makefile существует в папке верхнего уровня, но показывает Makefile в подпапке scripts
# Assuming max 2 level of header files
INC_LIST := $(addprefix -I, $(sort $(dir $(wildcard */*.h */*/*.h))))
Для случая неограниченной глубины используйте find
INC_LIST = $(addprefix -I, $(sort $(dir $(shell find . -name '*.h'))))