title: What is ?= in Makefile
body: <pre><code>KDIR ?= $(shell uname -r)
  </code></pre>
  
  <p>What is the meaning of <code>?=</code>?</p>
  
  <p>I have understood the difference between <code>:=</code>, <code>+=</code> and <code>=</code> from another thread available in Stack Overflow, but unable to find the explanation for <code>?=</code>.</p>