Makefile中的变量定义
- 延时定义
immediate = deferred
immediate ?= deferred
define immediate
deferredendef
- 立即定义
immediate := immediate
- 取决于初次定义
immediate += deferred or immediate
- cd dir && cmd
$(subst from,to,text)
$(patsubst pattern,replacement,text)
$(strip string)
$(findstring find,in)
$(filter pattern...,text)
$(filter-out pattern...,text)
$(sort list)
$(dir names...)
$(filter-out pattern...,text)
$(sort list)
$(notdir names...)
$(suffix names...)
$(basename names...)
$(addsuffix suffix,names...)
$(addprefix prefix,names...)
$(wildcard pattern)
$(foreach var,list,text)$(suffix names...)
$(basename names...)
$(addsuffix suffix,names...)
$(addprefix prefix,names...)
$(wildcard pattern)
$(if condition,then-part[,else-part])
$(origin variable) 查询 variable的状态
$(shell command arguments)
$(word N,TEXT)$(wordlist S,E,TEXT)$(words TEXT)$(firstword NAMES…)
$(join LIST1,LIST2)
$(foreach VAR,LIST,TEXT)
$(call VARIABLE,PARAM,PARAM,...) #可以传递变量进入VARIABLE块
$(value VARIABLE) #返回原始赋值字符
$(eval text) #将text作为Makefile文本的一部分 用来被make解析