Инструмент make создает направленный ациклический граф зависимостей, указанных в файле make. Это обычно говорит, что исполняемый файл зависит от количества объектных файлов. Объектные файлы зависят от исходных файлов, каждый исходный файл зависит от заголовков и т. Д.
Это создает по существу многоходовое дерево. Дерево будет иметь исполняемый файл в качестве своего корня, и, как правило, заголовочные узлы будут иметь главным образом заголовки (хотя, если вы используете какой-либо генератор кода, он также может иметь входной файл для этого генератора кода в качестве листа).
Затем он проходит по этому дереву, проходя путь от листовых узлов до корневого узла и строя по ходу дела. Ответы, которые сказали «это не имеет значения», в основном указывают на то, что он может выбрать любую ветвь этого дерева, чтобы построить сначала. Однако важно, что когда он выбирает ветку, он строит в порядке, указанном для этой ветви.