Разбираюсь с make.
Стоит задача написать makefile (Windows, MinGW-make, компилятор Keil) для сборки 5 проектов, каждый из которых имеет по 3 конфигурации (всего 15 конфигураций).
В каждый из проектов включается множество сырцов библиотек (одни и те же в каждый проект).
Проекты необходимо собирать или все сразу, или 1 любой на выбор, или несколько на выбор и т. п.
Проекты совершенно независимые. Главное - удобство и скорость сборки.
Структура папки, содержащей все проекты следующая:
obj
Конфигурация1o1
o2
...
...
Конфигурация15o1
o2
...
exe
Конфигурация1hex
map
...
...
Конфигурация15hex
map
...
prj1
prj2,3,4 (в одной папке)
prj5
Написал первый вариант.
В общих чертах работает следующим образом (обвязку инструментария не описываю).
Определяем список общих для всех проектов путей и объектников.
Определяем для каждого проекта в отдельности:
- список дополнительных объектников, дополняем их путями
- свои дефайны
- пути (корректируем общие пути с учетом проекта)
Далее - фиктивные цели (15 штук).
В их правилах следующее.
Создание папок.
Рекурсивный вызов make (без смены дирректории, makefile тот же самый) с множеством параметров: сформированное имя hex-файла (конечная цель), список объектников, список дефайнов и т. д.
Получается один громоздкий makefile с множеством однотиных переменных для каждой конфигурации.
Работает, но хочется оптимизировать

Какую структуру можете порекомендовать?