.SECONDARY для шаблонного правила с GNU Make

Я хочу использовать специальную цель .SECONDARY GNU Make, чтобы указать, что результаты определенного шаблонного правила не должны удаляться при создании как промежуточных файлов. .PRECIOUS работает с паттернами, но, как ни странно, не .SECONDARY. Я не хочу использовать .PRECIOUS, потому что я хочу, чтобы файл был удален в случае, если Make прерывается сигналом, или команда возвращает ненулевой статус выхода при использовании в сочетании с .DELETE_ON_ERROR. Какие-либо предложения?


person Shaun Jackman    schedule 12.07.2013    source источник
comment
Waow .PRECIOUS работает с шаблонами, но, как ни странно, не .SECONDARY. я думаю, что получил ответ отправной точки на stackoverflow.com/questions/27090032/   -  person philippe lhardy    schedule 23.11.2014


Ответы (1)


Вы можете использовать .SECONDARY без предварительных требований, это установит, что все промежуточные цели будут вести себя как SECONDARY.

person Alex Cohn    schedule 13.07.2013
comment
Круто, это может быть еще один намек для моего stackoverflow.com/questions/27090032/ вопрос ... - person philippe lhardy; 23.11.2014
comment
Похоже, что это имеет и другие последствия - он превращает все цели X в промежуточные в том смысле, что они не будут создаваться, когда в этом нет необходимости (то есть, если предпосылки X старше цели в зависимости от X). Итак, как только вы объявите .SECONDARY, как предлагается, без предварительных условий, вы не получите сборку целиком, как раньше. Если это не то, что вы хотите - я не знаю решения вопроса @Shaun Jackman. - person amka66; 23.03.2021