Если вы имеете в виду, автоматизированным способом, то нет. Даже если бы они были, это не имело бы никакого смысла.
Чтобы получить эти предпосылки, вам нужно вызвать make для их вычисления. После того, как эта подзадача вычислила их, она сообщит родительской марке, а родительская марка проверит предварительные условия, а затем, если таковые будут устаревшими, она снова вызовет подзадачу, которая пересчитает предварительные условия для фактического построения цели.
Далекий от того, чтобы быть БОЛЕЕ эффективным, вы фактически выполняете в три раза больше работы!
В рекурсивном сценарии сборки ваш текущий метод делегирования устаревших вычислений подмодулю - лучшее, что вы можете сделать.
Что вы на самом деле просите, так это использовать нерекурсивную среду make, в которой один экземпляр make знает все предварительные условия и определяет, что является устаревшим. Однако обратите внимание, что это не решает проблему «не чтения большого количества make-файлов».
В конечном счете вы не можете знать, что ваш проект полностью обновлен, не проверяя, что он полностью обновлен ... что означает проверку всех отношений зависимости.