2016-01-04 ロクでもない変数と代入 make ダメ出し 単純変数と再帰変数(事実上は関数、あるいはon-demand遅延評価変数)の区別を設けたのはいいが、 X ?= $(warning X defined)foo Y ?= $(warning Y defined)$(X) Z := $(warning Z defined)$(Y) 「?=」は再帰変数になる。「?=」が欲しいのはむしろ単純変数だが、それができない。「+=」は便利だが、なんと再帰変数にも使えてしまう。変数と関数の区別があればありえない仕様だ。