call函數(shù)
call函數(shù)是唯一一個可以用來創(chuàng)建新的參數(shù)化的函數(shù)。你可以寫一個非常復(fù)雜的表達(dá)式,這個表達(dá)式中,你可以定義許多參數(shù),然后你可以用call函數(shù)來向這個表達(dá)式傳遞參數(shù)。其語法是:
$(call <expression>,<parm1>,<parm2>,<parm3>...)
當(dāng) make執(zhí)行這個函數(shù)時,<expression>參數(shù)中的變量,如(1),(2),$(3)等,會被參數(shù)<parm1>,<parm2>,<parm3>依次取代。而<expression>的返回值就是 call函數(shù)的返回值。例如:
reverse = (1)(2)
foo = $(call reverse,a,b)
那么,foo的值就是“a b”。當(dāng)然,參數(shù)的次序是可以自定義的,不一定是順序的,如:
reverse = (2)(1)
foo = $(call reverse,a,b)
此時的foo的值就是“b a”。