Проблема здесь заключается в отслеживании многошаговых операций в процессе сборки.Ваши исходные файлы производят промежуточные файлы некоторого вида, которые в свою очередь производят окончательный результат сборки.В плохом юниверсе вы можете внести изменения в исходный файл, и тогда ваши окончательные двоичные файлы все еще могут быть собраны из устаревших версий промежуточных файлов.Очевидно, что это было бы плохо.
В GNU make используется метод одновременного моделирования всего дерева зависимостей и отслеживания измененных файлов вплоть до вывода.Это замечательно, если make - единственный инструмент для сборки, который вы используете.Это не очень хорошо работает, если у вас очень большие проекты, поэтому вам нужно сделать их в определенном порядке.Это не очень хорошо работает, если make не поддерживает некоторые инструменты вашего процесса сборки, поэтому вам все равно придется запускать make несколько раз.: Делать только один проход за раз.Предполагается, что он станет частью более широкой цепочки инструментов.Поэтому, если у вас есть многопроходные зависимости, вам понадобится несколько проходов nmake.Если ваш процесс сборки требует более 3 проходов, вы, вероятно, делаете A Bad Thing, и вам следует исправить свой процесс.А чтобы громко кричать, если вам нужно несколько проходов, просто напишите сценарий, чтобы сделать это.