Spec-Zone.ru › GNU Make

Синтаксис правил

В общем случае правило выглядит так:

targets : prerequisites
        recipe
        …

или так:

targets : prerequisites ; recipe
        recipe
        …

Значения targets — это имена файлов, разделенные пробелами. Можно использовать символы подстановки (см. Использование символов подстановки в именах файлов), а имя вида a(m) представляет собой член m в архивном файле a (см. Члены архива в качестве целей). Обычно в правиле всего одна цель, но иногда есть причины для использования нескольких (см. Несколько целей в правиле).

Строки recipe начинаются с символа табуляции (или первого символа в значении переменной .RECIPEPREFIX; см. Специальные переменные). Первая строка рецепта может появиться на строке после предпосылок, со знаком табуляции, или на той же строке, с точкой с запятой. В обоих случаях эффект одинаковый. Существуют и другие различия в синтаксисе рецептов. См. Создание рецептов в правилах.

Поскольку знаки доллара используются для начала make ссылок на переменные, если вам действительно нужен знак доллара в целевом файле или файле-предпосылке, вы должны написать два знака доллара, «$$» (см. Как использовать переменные). Если вы включили вторичное расширение (см. Вторичное расширение) и хотите в списке предпосылок буквальный знак доллара, вам нужно написать четыре знака доллара («$$$$»).

Вы можете разбить длинную строку, вставив обратную косую черту, за которой следует перевод строки, но это не обязательно, так как make не устанавливает ограничения на длину строки в файле проекта make.

Правило сообщает make две вещи: когда цели устарели, и как их обновить при необходимости.

Критерий устаревания определяется в терминах prerequisites, которые состоят из имен файлов, разделенных пробелами. (Разрешены символы подстановки и члены архивов (см. Архивы). Цель считается устаревшей, если она не существует или если она старше любой из предпосылок (по сравнению времени последнего изменения). Идея заключается в том, что содержимое целевого файла вычисляется на основе информации в предпосылках, поэтому если любая из предпосылок изменится, содержимое существующего целевого файла больше не обязательно будет действительным.

Как обновить, задается recipe. Это одна или несколько строк, которые будут выполнены оболочкой (обычно «sh»), но с некоторыми дополнительными функциями (см. Создание рецептов в правилах).

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/Rule-Syntax.html

Spec-Zone.ru

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