Skip to content

Latest commit

 

History

History
34 lines (29 loc) · 4.09 KB

makefile_func.md

File metadata and controls

34 lines (29 loc) · 4.09 KB

Table of Contents generated with DocToc

makefile常用函数

函数名 功能描述
$(origin ) 告诉变量的“出生情况”,有如下返回值:
  • undefined: 从来没有定义过
  • default: 是一个默认的定义
  • environment: 是一个环境变量
  • file: 这个变量被定义在 Makefile中
  • command line: 这个变量是被命令行定义的
  • override: 是被 override 指示符重新定义的
  • automatic: 是一个命令运行中的自动化变量
$(addsuffix ,<names...>) 把后缀加到中的每个单词后面,并返回加过后缀的文件名序列。
$(addprefix ,<names...>) 把前缀加到中的每个单词前面,并返回加过前缀的文件名序列。
$(wildcard ) 扩展通配符,例如:$(wildcard ${ROOT_DIR}/build/docker/*)
$(word ,) 取字符串中第个单词(从一开始),并返回字符串中第个单词。如 比中的单词数要大,那么返回空字符串
$(subst ,,) 把字串 中的 字符串替换成 ,并返回被替换后的字符串
$(eval ) 将的内容将作为makefile的一部分而被make解析和执行。
$(firstword ) 取字符串 中的第一个单词,并返回字符串 的第一个单词
$(lastword ) 取字符串 中的最后一个单词,并返回字符串 的最后一个单词
$(abspath ) 将中的各路径转换成绝对路径,并将转换后的结果返回
$(shell cat foo) 执行操作系统命令,并返回操作结果
$(info <text ...>) 输出一段信息
$(warning <text ...>) 出一段警告信息,而 make 继续执行
$(error <text ...>) 产生一个致命的错误,<text ...> 是错误信息
$(filter <pattern...>,) 以模式过滤字符串中的单词,保留符合模式的单词。可以有多个模式。返回符合模式的字串
$(filter-out <pattern...>,) 以模式过滤字符串中的单词,去除符合模式的单词。可以有多个模式,并返回不符合模式的字串
$(dir <names...>) 从文件名序列中取出目录部分。目录部分是指最后一个反斜杠(/)之前的部分。返回文件名序列的目录部分。
$(notdir <names...>) 从文件名序列中取出非目录部分。非目录部分是指最後一个反斜杠(/)之后的部分。返回文件名序列的非目录部分。
$(strip ) 去掉字串中开头和结尾的空字符,并返回去掉空格后的字符串
$(suffix <names...>) 从文件名序列中取出各个文件名的后缀。返回文件名序列的后缀序列,如果文件没有后缀,则返回空字串。
$(foreach ,,) 把参数中的单词逐一取出放到参数所指定的变量中,然后再执行所包含的表达式。每一次 会返回一个字符串,循环过程中的所返回的每个字符串会以空格分隔,最后当整个循环结束时,所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。