Подтвердить что ты не робот

Что такое? = В Makefile

KDIR ?= $(shell uname -r)

В чем смысл ?=?

Я понял разницу между :=, += и = из другого потока, доступного в Stack Overflow, но не смог найти объяснение для ?=.

4b9b3361

Ответ 1

?= указывает, чтобы установить переменную KDIR, только если она не установлена ​​/не имеет значения.

Например:

KDIR ?= "foo"
KDIR ?= "bar"

test:
    echo $(KDIR)

Будет печатать "foo"

Ответ 2

Благодаря Саймону и Р.Т. за их быстрый и правильный ответ.

Кроме того, я нашел руководство GNU, в котором все подробно объясняется: http://www.gnu.org/software/make/manual/html_node/Setting.html