Makefile origin函数

顾名思义,origin函数的作用就是告诉你,你所关注的一个变量是从哪里来的。函数的使用格式为:

$(origin <variable>)

如果变量没有定义,origin函数的返回值为:undefined,不同的返回值代表变量的类型不同。常见的返回值如下;

  • default:变量是一个默认的定义,比如 CC 这个变量
  • file:这个变量被定义在Makefile
  • command line:这个变量是被命令行定义的
  • override:这个变量是被override指示符重新定义过的
  • automatic:一个命令运行中的自动化变量

使用示例:

.PHONY: all

WEB = www.zhaixue.cc
web_type = $(origin WEB)

all:
    @echo "web_type = $(web_type)"
    @echo "cc_type  = $(origin CC)"
    @echo "cmd_type = $(origin CMD)"

执行make命令,运行结果为:

# make
web_type = file
cc_type = default
cmd_type = undefined

# make CMD=pwd
web_type = file
cc_type = default
cmd_type = command line
《Makefile工程实践》视频教程,一线开发工程师独家录制,网上首家讲解Makefile的实战课程。从零开始,教你一步一步编写一个工程项目的Makefile,支持使用第三方静态库、动态库,支持指定模块或目录编译生成静态库、动态库,赠送企业级的Makefile模板,学完即可拿来使用,投入项目开发实战,具备独立开展项目开发和管理的能力。详情请点击淘宝链接:Linux三剑客