Spec-Zone.ru › GNU Make

Ссылки на подстановку

Ссылка на подстановку заменяет значение переменной с внесёнными вами изменениями. Она имеет вид ‘$(var:a=b)’ (или ‘${var:a=b}’) и означает следующее: взять значение переменной var, заменить в этом значении каждый символ a в конце слова на b и подставить полученную строку.

Под «концом слова» понимается, что a должен следовать за пробелом или находиться в конце значения, чтобы быть заменён; другие вхождения a в значении остаются неизменными. Например:

foo := a.o b.o l.a c.o
bar := $(foo:.o=.c)

устанавливает ‘bar’ в значение ‘a.c b.c l.a c.c’. См. Установку переменных.

Ссылка на подстановку является сокращённой записью для функции расширения patsubst (см. Функции для подстановки и анализа строк): ‘$(var:a=b)’ эквивалентно ‘$(patsubst %a,%b,var)’. Мы предоставляем ссылки на подстановку, а также patsubst, для совместимости с другими реализациями make.

Другой тип ссылки на подстановку позволяет использовать всю мощь функции patsubst. Она имеет тот же вид ‘$(var:a=b)’, что описано выше, за исключением того, что теперь a должен содержать один символ ‘%’. Этот случай эквивалентен ‘$(patsubst a,b,$(var))’. См. Функции для подстановки и анализа строк, для описания функции patsubst. Например:

foo := a.o b.o l.a c.o
bar := $(foo:%.o=%.c)

устанавливает ‘bar’ в значение ‘a.c b.c l.a c.c’.

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/Substitution-Refs.html

Spec-Zone.ru

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