按照字面上理解就是
弟一個傳進來的 argue
不過還是很抽象 就舉下列例子說明
/////// 我是 makefile ////////
define include-path-for
$(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_INCL))))
endef
/////// makefile 節數//////
我們在makfile 裡面 定義一個 工具
在別的 makefile 我們利用call去呼叫他
////////////// 我是另外一個 malefile ///////
LOCAL_C_INCLUDES:= \
$(call include-path-for, dbus)
/////// makefile 結束//////
這邊就可以得知 對 nclude-path-for 這個 工具而言 第一個 arguement 就是 dbus
他就會傳進去 define 裡面中的 $(1)
詳細 的出處在下面 :
define include-path-for #定义命令包, n 由调用者传递进来, 这个在 build/core/pathmap.mk
$(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_INCL))))
endef
// pathmap_INCL 在 build/core/pathmap.mk 文件中有定义,最后使用的时候可以看到
【函数内实现的解析】
foreach 遍历, patsubst 字符串替换, filter 过滤函数
【函数调用】
这里以external\dbus\bus 下的Android.mk 调用为例:
...
LOCAL_C_INCLUDES:= \
$(call include-path-for, dbus)
沒有留言:
張貼留言