Есть недопонимание: оба вышеприведенных утверждения верны, но применяемый вами контекст ( для явно объявленных целей .INTERMEDIATE ) неверен;это утверждение было ответом на вопрос, заданный в комментарии к моему ответу, который отличался от первоначального вопроса.
Без специальных переопределений цель может быть промежуточной, если она полностью определяется make (неперечислены где-либо явно в make-файле, но обнаружены только при неявном поиске правил).
Если цель указана как цель или обязательное условие в make-файле, по умолчанию она не может быть промежуточной.Специальная форма .INTERMEDIATE
позволяет вам объявить, что указанная цель является промежуточной, даже если это так.
Чтобы убедиться, что цель является не промежуточной, достаточно просто упомянуть ее вmakefile как цель или предварительное условие некоторой цели где-то (не обязательно должна быть той, которая фактически создается во время этого вызова make).
Чтобы гарантировать, что цель является промежуточным звеном , оналибо не следует упоминать, либо объявить обязательным условием .INTERMEDIATE
.