makfile call函数应用

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 \

你可能感兴趣的:(Linux)