web-dev-qa-db-fra.com

Qu'est-ce que c'est? = Dans Makefile

KDIR ?= $(Shell uname -r)

Quel est le sens de ?=?

J'ai compris la différence entre :=, += et = à partir d'un autre thread disponible dans Stack Overflow, mais impossible de trouver l'explication de ?=.

61
codedoc

?= indique de définir la variable KDIR uniquement si elle n'est pas définie/n'a pas de valeur.

Par exemple:

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

test:
    echo $(KDIR)

Imprime "foo"

87
Simon

Merci à Simon et R.T. pour leur réponse rapide et correcte.

En outre, j'ai trouvé le manuel GNU qui explique tout en détail: http://www.gnu.org/software/make/manual/html_node/Setting.html =

7
codedoc