origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。其语法是:

$(origin )

上面, 为变量的名字,而不是引用,所以一般没有 $ 字符在前。origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:
1. 当从来未定义过该变量时,origin 函数返回 "undefined" 。如下面的 Makefile 代码:

all:
        @echo $(origin V)

运行输出:

$ make
undefined

2. 如果该变量为环境变量,那么返回 "enviroment" 。如下面的 Makefile 代码:

all:
    @echo $(origin USER)

运行输出:

$ make
environment

其中 USER 这个变量为系统定义的当前用户,使用 env 命令可以看到。
3. 如果变量是个默认定义,那么返回 "default"。如下面的 Makefile 代码:

all:
    @echo $(origin CC)

运行输出:

$ make
default

4. 如果一个变量被定义在 Makefile 文件中,那么返回 "file" 。如下面的 Makefile 代码:

V := 1
all:
    @echo $(origin V)

运行输出:

$ make
file

5. 如果变量来自命令行,那么返回 "command line" 。如下面的 Makefile 代码:

all:
    @echo $(origin MyVar)

运行方法:

$ make MyVar="Are you ok?"
command line

6. 如果变量被 override 被重新定义过,那么返回 "override"。如下面的 Makefile 代码:

verride SHELL = /bin/sh
all:
        @echo $(origin SHELL)

运行输出:

$ make
override

上面,SHELL 原本是个环境变量,但在 Makefile 里被 override 指示符重定义过。
7. 如果变量是自动化变量(如 $@, $< 等),那么返回 "automatic" 。如下面的 Makefile 代码:

all:
    @echo $(origin @)

运行输出:

$ make
automatic

Makefile origin 函数相关推荐

  1. #跟我一起写 Makefile# origin函数shell函数

    目录 origin函数 shell函数 origin函数 origin函数不像其它的函数,他并不操作变量的值,他只是告诉你你的这个变量是哪里来的?其语法是: $(origin <variable ...

  2. makefile的origin函数

    origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语法是: $(origin <variable>) 上面,<variable> 为变量的名字, ...

  3. Makefile的origin 函数

    转自:http://blog.chinaunix.net/uid-22028680-id-3054167.html origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语 ...

  4. Makefile十之origin函数

    origin 函数不像其它的函数,他并不操作变量的值,他只是告诉你你的这个变量是哪里来的?其语法是: $(origin <variable>) 注意,<variable>是变量 ...

  5. uboot主Makefile中的origin函数

    ifdef O ifeq ("$(origin O)", "command line")    BUILD_DIR := $(O)    endif    en ...

  6. makefile 初探之《shell 函数和origin 函数》

    shell 函数 shell 函数也不像其它的函数.顾名思义,它的参数应该就是操作系统 Shell 的命令.它和反引号"`"是相同的功能.这就是说,shell 函数把执行操作系统命 ...

  7. Makefile常用函数总结

    在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具  有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函  数的返回值可以当做变量来使用. ...

  8. Makefile自定义函数 / pushd,popd / ifneq / findstring / camke内置变量

    ①Makefile 自定义函数 1.自定义函数编写 自定义函数一般上是命令的集合 define func1 @echo "func name is $(0)\n" @echo &q ...

  9. makefile 常用函数

    Linux下编译c/c++源码需要编写makefile文件,文章参看  http://blog.sina.com.cn/s/blog_4c4d6e74010009jr.html 一函数的调用语法 二字 ...

最新文章

  1. pynput使用简单说明
  2. 计算机可以保研什么专业吗,【计算机专业推免】推免生是什么?成为推免生要达到那些要求?...
  3. Python 进阶_OOP 面向对象编程_组合与继承
  4. LibreOJ #113. 最大异或和
  5. ​年底大会火爆,看“瑶台”如何搭建一场高质量沉浸式大会
  6. JSON的使用场景及注意事项介绍
  7. ASCII + Url + Base64
  8. Coolite 中GridView行按钮取行ID并调用服务器端代码
  9. 向量合并 matlab,MATLAB追加向量
  10. 持有1000枚以上比特币的巨鲸地址数量有所下降
  11. Vue自定义指令—— 完美解决H5页面不同尺寸屏幕的适配问题
  12. Word邮件合并制作上百份薪酬变动通知书及日期格式处理技巧
  13. [转载] Python学习笔记——用装饰器decorator和Memoization记忆化提高效率,原理讲清楚了
  14. printf 格式化最常用用法
  15. firebug-2.0.19-fx.xpi绿色免费下载
  16. 通往测试架构师之路(1):那些家伙在干什么?
  17. oracle电子商务套件使用手册,Oracle电子商务套件概述.pdf
  18. JavaSE学习(1)
  19. 如何使用正规seo技术做网站排名?
  20. 倒计时1天!VIVO NEX3配置细节汇总,或许这就是未来旗舰

热门文章

  1. 串口发送数据——字符串发送与十六进制发送的区别
  2. 关于抖音小店无货源的诸多疑问,现在的抖店还能做吗?利润多少?
  3. vue 获取当前div离边框距离_vue获取dom元素的宽高
  4. 【竞赛经历】CSDN第39期竞赛题解
  5. vue3中,echarts使用(四)02——柱状图之堆叠条形图-定制化 封装切换tag标签组件 封装title组件
  6. 再谈Linux磁盘扩容(pvresize直接扩容PV)
  7. BSQ格式数据转换为RSD缺省的BIP格式数据
  8. 2018.1.素数又称质数,是指大于1的自然数,且除了1和它本身除外不再有其他因子。输入两个正整数a和b,输出a与b之间的全部素数,每5个素数换一行,假设2<=a<=b.
  9. element admin跨域问题解决
  10. Normalization of Database——数据库的正规化