チラシの裏

Makeで自然数の足し算。
echo $$((${x} + ${y}))とか禁止。

ifeq "${y}" "0"
x+y:
	echo ${x}
else
 ifeq "${x}" "0"
x+y:
	echo ${y}
 else
  ifeq "${word ${x},${a}}" ""
x+y:
	${MAKE} a="1 ${a}"
  else
   ifeq "${word ${y},${a}}" ""
x+y:
	${MAKE} a="1 ${a}"
   else
x+y:
	${MAKE} x=${words 1 ${wordlist 1,${x},${a}}} \
                y=${words ${wordlist 2,${y},${a}}}
   endif
  endif
 endif
endif

使用例

$ make -s x=3 y=5
8