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