Раздел 4.13 руководства GNU Make описывает так называемые правила двойной толстой кишки:
Правила двойной толстой кишки - это правила, написанные с помощью ":: вместо": после имен целей. Они обрабатываются иначе, чем обычные правила, когда одна и та же цель отображается более чем в одном правиле.
Когда цель появляется в нескольких правилах, все правила должны быть одного типа: все обычные или все двойные двоеточие. Если они представляют собой двойную кишку, каждая из них не зависит от других. Команды каждой команды двойного двоеточия выполняются, если цель старше любых предварительных условий этого правила. Если для этого правила нет предпосылок, его команды всегда выполняются (даже если цель уже существует). Это может привести к выполнению ни одного, ни одного или всех правил с двумя двоеточиями.
Правила двойной толстой кишки с одной и той же целью фактически полностью отделены друг от друга. Каждое правило двойной толстой кишки обрабатывается индивидуально, так же, как обрабатываются правила с разными целями.
Правила двойной толчки для цели выполняются в том порядке, в каком они появляются в make файле. Однако случаи, когда правила двойной толчки действительно имеют смысл, - это те, где порядок выполнения команд не имеет значения.
Правила двойной толстой кишки несколько неясны и не часто очень полезны; они обеспечивают механизм для случаев, когда метод, используемый для обновления целевого объекта, отличается в зависимости от того, какие необходимые файлы вызвали обновление, и такие случаи встречаются редко.
Каждое правило двойной толстой кишки должно указывать команды; если это не так, будет использоваться неявное правило, если оно применяется. См. Раздел Использование неявных правил.
Я как бы понимаю смысл каждого предложения этого раздела в отдельности, но мне все еще не ясно, для чего предназначены правила двойной толстой кишки. Что касается редкостей, я еще не видел ни одного проекта с открытым исходным кодом, чей Makefile не начинался с
all::
Следовательно: Какова предполагаемая цель правил с двумя двоеточиями в Make файлах?