Описанная вами зависимость от изменений уже является частью Make, но Make достаточно гибок, чтобы ее можно было использовать неэффективно.Если медлительность действительно вызвана рекурсией (make -C
командами) - что это, вероятно, - то вам следует уменьшить рекурсию.(Вы можете попытаться вставить свою собственную условную логику, чтобы решить, выполнять ли make -C
, но это было бы очень не элегантным решением.)
Грубо говоря, если ваши make-файлы выглядят так
# main makefile
foo:
make -C bar baz
и это
# makefile in bar/
baz: quartz
do something
вы можете изменить их на это:
# main makefile
foo: bar/quartz
cd bar && do something
Есть много деталей, чтобы получить право, но теперь, если bar/quartz
не был изменен,foo
Правило не будет работать.