在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
原來這個變量需要在命令行中定義。