Привет, я программирую микроконтроллеры AVR только на C, а не на C ++. Поэтому я расширил make-файл примерно на одну строку в разделе CFLAGS
CFLAGS=-I. $(INC) -g -mmcu=$(MCU) -O$(OPTLEVEL) \
-fpack-struct -fshort-enums \
-funsigned-bitfields -funsigned-char \
-Wall -Wstrict-prototypes \
-o $(firstword $(filter %.o, $(<:.c=.o))) \
-Wa,-ahlms=$(firstword $(filter %.lst, $(<:.c=.lst)))
Это работает для меня, когда у меня есть исходные файлы в подкаталогах.
Я надеюсь, что это поможет вам, хотя это не для C ++