上例子
define func foo: @echo "at foo" endef all: foo @echo "final" $(eval $(call func, foo,abc.c))
先不整那些函數參數傳遞之類的幺蛾子,做一個個簡單的例子,
運行 make
結果是:
at foo
final
然后再變化下:
define func $1: @echo "at foo" endef all: foo @echo "final" $(eval $(call func, foo,abc.c))
這次,傳遞 foo 作為 $1,得到結果相同。
基本上可以看到,eval 函數是具備一定的運行時刻改變makefile 能力。
結束