Makefile: 函數(shù)origin

在make語言中,origin是一個自帶的函數(shù)。用于查看一個變量有沒有定義,或到底在哪里被定義的。

語法格式:

$(origin variable)

可能的返回值:

undefined:   這個變量沒有被定義
default:     這個變量是make語言自帶的變量
environment: 這個變量來自環(huán)境變量
environment override: 來自環(huán)境變量,但是已經(jīng)被修改了
file:        這個變量來自Makefile
command line:這個變量來自命令行
override: 即使該變量在命令行中定義了,但仍以Makefile中的為準(zhǔn)。該變量在Makefile中的定義應(yīng)該加了override修飾符。(通常,一個變量在命令行中被定義了,則在Makefile中的普通定義將被忽略。)
automatic:   自動變量,例如$@, $%...等。

例如:

ifeq ($(VERBOSE),0)
MAKEFLAGS += --no-print-directory
endif

這樣一段Makefile中的內(nèi)容,我想知道變量VERBOSE來自哪里,我就可以通過origin函數(shù)來查看。

$(info $(origin VERBOSE))
ifeq ($(VERBOSE),0)
MAKEFLAGS += --no-print-directory
endif
# make
undefined

原來這個變量需要在命令行中定義。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容