Makefile中的origin,filter,dir,sort,call函數

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

上面的例子可以體現**“依序”**的含義
更詳細的說明參考此鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章