НЕ СДАЧА --- Исправляем Makefile
ЭТО НЕ ПОПЫТКА СДАЧИ ЛАБЫ.
Если генерировать файл зависимости отдельным проходом с -M, то у препроцессора недостаточно информации, чтобы сгенерировать имя цели для рецепта: он не знает, куда мы складываем объектные файлы. Он угадывает путь до объектного файла неправильно, и механизм транзитивных зависимостей не работает.
Можно избежать отдельного прохода с -MD, что заодно исправит эту проблему. В таком случае имя файла зависимостей генерируется заменой расширения, а не добавлением, как сейчас; исправляем это с -MF.