KDIR ?= $(shell uname -r)
В чем смысл ?=
?
Я понял разницу между :=
, +=
и =
из другого потока , доступного в переполнение стека, но не в силах найти объяснение ?=
.
Ответы:
?=
указывает на установку KDIR
переменной, только если она не установлена / не имеет значения.
Например:
KDIR ?= "foo"
KDIR ?= "bar"
test:
echo $(KDIR)
Напечатал бы "foo"
Руководство GNU: http://www.gnu.org/software/make/manual/html_node/Setting.html
?=
его можно использовать для применения значения по умолчанию / резервного значения к переменной, это может быть разрешено KDIR
установить в среде.
?=
.
Спасибо Саймону и RT за их быстрый и правильный ответ.
Кроме того, я нашел руководство GNU, в котором все подробно объясняется: http://www.gnu.org/software/make/manual/html_node/Setting.html