LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

то make не имеет права сам вписать себе в Makefile зависимость main.cpp -> file.h, даже если она существует в природе реально

С чего вы взяли? В классических Makefile была безусловная цель вызывающая gcc -M, которая генерировала .mk-инклуд с зависимостями. Не знаю уж как make это там переваривал - очевидно ему нужно было перечитать Makefile с инклудом после того как он появится. А CMake никто не мешает вызвать gcc -M самому и сразу сгенерить Makefile со всеми зависимостями. Хотя может у него и своя парсилка есть. Где - смотри в исходники.

Исходная версия slovazap, :

то make не имеет права сам вписать себе в Makefile зависимость main.cpp -> file.h, даже если она существует в природе реально

С чего вы взяли? В классических Makefile была безусловная цель вызывающая gcc -M, которая генерировала .mk-инклуд с зависимостями. Не знаю уж как make это там переваривал - очевидно ему нужно было перечитать Makefile с инклудом после того как он появится. А CMake никто не мешает вызвать gcc -M самому с сразу сгенерить Makefile со всеми зависимостями.