Круговые зависимости полностью независимы от того, что существует на диске или не существует на диске. Когда make запускает, он анализирует make-файл и создает график, представляющий отношения зависимости между целями. Этот график должен быть acycli c, потому что make будет ходить по графику в поисках устаревших целей. Если в графике есть цикл, то make будет возвращаться навсегда, пытаясь обойти график.
Например:
a: b ; touch $@
b: a ; touch $@
Не имеет значения, существуют эти файлы или нет: make все еще необходимо убедиться, что «a» новее, чем «b», чтобы удовлетворить первую зависимость, и что «b» новее, чем «a», чтобы удовлетворить вторую зависимость.
Это не может быть правдой, очевидно.