Переменные в Make

Содержание
Вывести переменную на экран с помощью echo
Другие примеры
target specific переменные
info
Связанные статьи

Вывести переменную на экран с помощью echo

Для вывода содержимого переменных используются фигурные скобки.

FOO = bar .PHONY: vars vars: @echo ${FOO}

make vars

bar

Можно использовать круглые скобки

URL="heihei.ru" .PHONY: web web: @echo $(URL)

Другие примеры

С помощью shell можно получить данные из вне и записать в переменную

X = "ABCD" FILES := $(shell ls) .PHONY: files files: @echo ${X} @echo ${FILES}

make files

ABCD GNUmakefile heihei.ru.config

target specific переменные

Можно ограничить область видимость переменной определённой целью.

Общий синтаксис

target … : variable-assignment

название цели : присваивание значения переменной

test: A = B

Пример

X = "ABCD" FILES := $(shell ls) .PHONY: files files: X = "EFGH" files: FILES := $(shell pwd) files: @echo ${X} @echo ${FILES}

make files

EFGH
/home/andrei

Как видите - выведены значения локальных переменных а не глобальных.

info

Пример

X="B" $(info X is $X) TAG="ubuntu" $(info TAG is $(TAG))

make

X is "B"
TAG is ubuntu

Обратите внимание, что при использовании функции info переменную, имя которой состоит из одного символа в скобки можно не брать - $X

А переменную с более длинным именем нужно заключить в скобки $(TAG)

Похожие статьи
make
Основы make
PHONY
CURDIR
shell
wget + make
Переменные в Make файлах
ifeq: Условные операторы
filter
-c: Компиляция
Linux
Bash
C
C++
C++ Header файлы
Configure make install
DevOps
Docker
OpenBSD
Errors make