origin
該函數返回參數的定義位置
$(origin V)
# 常見函數返回之及其含義
"environment" # 環境變量
"command line" # 命令行
"file" # 本文件中定義
"default" # 默認變量
"undefined" # 未定義變量
"automatic" # 自動化變量
自動化變量
$@ # 目標文件
$^ # 所有的依賴文件
$< # 第一個依賴文件。
filter
該函數會對入參進行模板匹配,返回符合條件的入參字符串
filter <匹配模板>,<被匹配字符串>
舉例:
filter 4.%,$(MAKE_VERSION)
說明:
“%”是通配符,與shell中的“*”功能類似
dir
取出路徑的目錄部分
# 示例
all:
@echo $(dir /usr/share/test)
@echo $(dir ./test)
# 輸出
/usr/share/
./
sort
sort命令的作用是將後面的字符串按照首字母生序排序,並去除重複項
$(sort foo bar lose foo)
=>bar foo lose
call
將第一個參數中“$(數字)”格式的臨時變量用其他參數依序取代
tempvar = $(0)$(1)$(2)
$(call, tempvar, a, b)
=>tempvar a b
$(0)代表變量名自身
tempvar = $(2) $(1)
$(call, tempvar, a, b)
=>b a
上面的例子可以體現**“依序”**的含義
更詳細的說明參考此鏈接