makfile call函数应用
- 在项目的编译文件中,会使用到很多函数。call函数便是其中之间。
- 简单来说call函数,类似于:自定义一个表达式,将不同参数传给该表达式,获得不同的值。
- 在项目的编译文件中,一般用于获得不同flag,对应的头文件引用路径、动态库名、特定编译参数等。
- 例子:
# 一般为编译配置模块中定义类似如下内容
# 头文件引用路径配置
path_INC := \
linduo:linduo/path1/xxx/include \
linduo2:linduo2/path2/xxx/include \
xxxx: xxx/xxx/xxx/include \
# 对于 $(1) 进行 foreach,然后根据 每个元素的值,进行匹配。
define path-for-include
$(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(path_INC))))
endef
# 使用的地方
# 该表达式,展开即为 linduo_inc = linduo/path1/xxx/include
linduo_inc := $(call path-for-include,linduo)
LOCAL_C_INCLUDES := $(linduo_inc) \
xxx/xxx/xxx/xxx \
xxx/xxx/xxx/xxx \