1. origin
参考:来源https://www.cnblogs.com/black-mamba/p/9660233.html
我们都知道在Makefile可以使用一些非本Makefile定义的变量,例如一些环境变量,内置变量等。
所以在Makefile中同样有一个函数来判断我们所用的变量是怎么来的,这个函数就是origin。
origin使用格式:
$(origin var)
注意var是变量名称,此处不需要取值符$.
当不确定一个变量是否是被定义了,可以使用orgin来确定,方法:
all:
@echo $(origin var)
如果运行输出undefine,则表示该变量var没有被定义过;
如果运行输出automatic,则表示该变量var是一个自动变量,例如@ 这类型的变量就是自动变量;
如果运行输出enviroment,则表示该变量var是一个环节变量;
如果运行输出file,则表示该变量var是一个定义在Makefile中的变量;
如果运行输出command line,则表示该变量var是一个定义在命令行的变量,该变量从命令行传入;
如果运行输出override ,则表示该变量var是一个经过override 函数重新定义的变量。