Сделал то, что давным-давно хотел в репозитории
всякой всячины для разных STM32: чтобы не копировать туда-сюда один и тот же Makefile (а потом искать, где у меня новенькое, где старенькое и массово внедрять новые фичи), сделал один общий Makefile верхнего уровня - makefile.stm32 (где содержатся все эти разные цели, выбор профиля debug/release, версионирование, отладка через gdb и т.д., и т.п.) - и файл для конкретной архитектуры - makefile.fx или makefile.g0 (здесь уже общие определения hard/soft float и архитектура). Ну, а уже конкретно в каждой директории с очередным рукоделием находится совсем небольшой Makefile, где содержатся специфичные определения (DEFINES), название бинарника и линкер-скрипта. Например:
BINARY := rtc
# MCU code
MCU := G070xx
# change this linking script depending on particular MCU model,
LDSCRIPT := stm32g070xb.ld
include ../makefile.g0
include ../../makefile.stm32
Теперь уж если какую фичу придумаю, достаточно будет makefile самого верхнего уровня отредактировать, а у остальных автоматом все подхватится при новых компиляциях.
Теперь остается еще самое страшное: сделать общую для всех директорию 'inc', в которой собраны заголовочные файлы, стартап и линкер-скрипты. Пока все лень, т.к. это ж нужно сливать уйму стартапов (хоть некоторые уже подготовлены для разных архитектур)… Да и что-то придумать с линкер-скриптами F303 (у которых есть дополнительная оперативка, хоть я ее и не использую пока).