函数
内置函数
函数原型 | 功能描述 | 样例 |
---|---|---|
$(filter pattern..., text) | filter将text视为一系列被空格隔开的单词,与pattern比较之后,接着会返回符合的单词列表 | $(gui_objects): $(filter gui/%.o, $(objects)) |
$(filter pattern...,text) | filter-out函数用来选出与模式不相符合的单词 | to_compile := $(filter-out %.h, $(all_source)) |
$(findstring string..., text) | 此函数将会在text搜索string。如果该字符串被找到了,此函数就会返回string;否则,返回空值。 | $(findstring /tom/book/zeuux, $(PWD)) |
$(subst search-string, replace-string, text) | 常用来在文件名列表中将一个名换成另外一个扩展名,不带通配符功能 | objects := $(subst .c, .o, $(sources)) |
$(patsubst search-pattern, replace-pattern, text) | replace-pattern中的%被扩展成与模式相符的文字,且search-pattern必须与text的整个值进行匹配 | strip-trailing-flash = $(patsub %/,%,%(directory-path)) |
$(words n, text) | 返回text中第n个单词 | $(words 2, $(version_list)) |
$(sort list) | 排序list参数并移出重复的项目 | d-prefix = $(sort dbase db2 mysql) |
$(shell command) | 执行command命令 | stdout := $(shell echo normal message) |
$(wildcard pattern...) | wildcard函数的参数是一份模式列表,它会对列表中的每个模式进行扩展的动作。如果找不到相符的文件,返回空字符串 | source := $(wildcard *.c *.h) |
$(suffix name...) | 返回参数中每个单词的后缀 | same-suffix = $(filter 1 $(words $(sort $(suffix $1)))) |
$(basename name...) | 返回文件名称中不含后缀的部分 | $(basename $1) |
自动变量 | 含义 |
---|---|
$@ | 工作目标的文件名 |
$% | 档案文件成员结构中的文件名 |
$< | 第一个必要条件的文件名 |
$^ | 所有必要条件的文件名,用空格隔开 |
$+ | 所有必要条件的文件名,用空格隔开,包括重复的文件名 |
$* | 工作目标的主文件名 |