Spec-Zone.ru › GNU Make

Правила с двумя двоеточиями

Правила с двумя двоеточиями — это явные правила, написанные с помощью ‘::’ вместо ‘:’ после имен целей. Они обрабатываются иначе, чем обычные правила, когда та же цель появляется в нескольких правилах. Правила шаблонов с двумя двоеточиями имеют совершенно другое значение (см. Правила соответствия всем значениям).

Когда цель появляется в нескольких правилах, все правила должны быть одного типа: все обычные или все с двумя двоеточиями. Если они с двумя двоеточиями, каждое из них независимо от других. Рецепт каждого правила с двумя двоеточиями выполняется, если цель старше, чем любые предшественники этого правила. Если у правила нет предшественников, его рецепт всегда выполняется (даже если цель уже существует). Это может привести к выполнению ни одного, любого или всех правил с двумя двоеточиями.

Правила с двумя двоеточиями для одной цели на самом деле полностью независимы друг от друга. Каждое правило с двумя двоеточиями обрабатывается индивидуально, так же, как обрабатываются правила с разными целями.

Правила с двумя двоеточиями для цели выполняются в порядке их появления в файле make. Однако случаи, когда правила с двумя двоеточиями действительно имеют смысл, — это те случаи, когда порядок выполнения рецептов не имеет значения.

Правила с двумя двоеточиями несколько неясные и не очень полезны; они предоставляют механизм для случаев, когда метод обновления цели отличается в зависимости от того, какие файлы-предшественники вызвали обновление, и такие случаи редки.

Каждое правило с двумя двоеточиями должно указывать рецепт; если этого нет, будет использоваться неявное правило, если оно применимо. См. Использование неявных правил.

Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API