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

函数语法:
$(origin )
为变量的名字,而不是引用,所以一般没有"$"字符在前。

origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:

  1. 当从来未定义过该变量时,origin 函数返回 "undefined" 。
    如下面的 Makefile 代码:
    all:
    @echo $(origin V)

运行输出:
$ make
undefined

  1. 如果该变量为环境变量,那么返回 "enviroment" 。
    如下面的 Makefile 代码:
    all:
    @echo $(origin USER)

运行输出:
$ make
environment
其中 USER 这个变量为系统定义的当前用户,使用 env 命令可以看到。

  1. 如果变量是个默认定义,那么返回 "default"。
    如下面的 Makefile 代码:
    all:
    @echo $(origin CC)

运行输出:
$ make
default

  1. 如果一个变量被定义在 Makefile 文件中,那么返回 "file" 。
    如下面的 Makefile 代码:
    V := 1
    all:
    @echo $(origin V)

运行输出:
$ make
file

  1. 如果变量来自命令行,那么返回 "command line" 。
    如下面的 Makefile 代码:
    all:
    @echo $(origin MyVar)

运行方法:
$ make MyVar="Are you ok?"
command line

  1. 如果变量被 override 被重新定义过,那么返回 "override"。
    如下面的 Makefile 代码:
    override SHELL = /bin/sh
    all:
    @echo $(origin SHELL)

运行输出:
$ make
override

上面,SHELL 原本是个环境变量,但在 Makefile 里被 override 指示符重定义过。

  1. 如果变量是自动化变量(如 $@, $< 等),那么返回 "automatic" 。
    如下面的 Makefile 代码:
    all:
    @echo $(origin @)

运行输出:
$ make
automatic

makefile之origin函数的更多相关文章

  1. Linux makefile教程之函数七[转]

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

  2. Makefile编写 四 函数篇

    一.函数的调用语法 函数调用与变量一样,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> &l ...

  3. Makefile中的函数

    Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments ...

  4. linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words

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

  5. Makefile内嵌函数

    subst字符串替换函数 $(subst <from>, <to>, <text>),把<text>中的<from>字符串替换成<to ...

  6. makefile 字符串处理函数

    截取自<跟我一起写Makefile> (1)  $(subst <from>, <to>, <text>) 名称: 字符串替换函数 subst 功能: ...

  7. makefile之shell函数

    shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(` ...

  8. 【makefile】symbol <函数> : can't resolve symbol 问题分析

    调试程序的时候,在linux编译器上可以编译通过,但是编译生成的firmware烧录到板子上的后出现以下异常: can't resolve symbol,无法解析元素符号. review一下code, ...

  9. makefile之wildcard函数

    $(wildcard PATTERN) 函数功能: 获取匹配 PATTERN 的所有对象 返回值: 使用空格分割的匹配对象列表 1. 示例1

随机推荐

  1. appium+python自动化49-yaml管理定位元素

    前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管 ...

  2. Android进阶笔记:Messenger源码详解

    Messenger可以理解为一个是用于发送消息的一个类用法也很多,这里主要分析一下再跨进程的情况下Messenger的实现流程与源码分析.相信结合前面两篇关于aidl解析文章能够更好的对aidl有一个 ...

  3. hdr rt format对颜色的影响

    我刚刚终于理解为什么rendertarget的format对颜色的影响为什么那么大了 r8g8b8a8  这种会有band artifacts rgbafloat 这种浮点rt 的色带变化更为连贯(R ...

  4. 动态加入改动删除html表格内容

    1.需求 须要实现收银台上加入改动删除商品信息时顾显能够实时看到其变化 2.解决 收银台和顾显通过tcp传输进行数据通信,顾显通过操作html中的表格进行数据加入改动和删除操作 3.代码 mytest ...

  5. 解析PHP中如何将数组变量写入文件

    在用PHP记录日志,或者是 Ajax 请求出错想要 debug 的时候.我们一般都会将信息写入到一个指定的文件当中.然后根据相应的信息来处理问题.比如笔者最喜欢在用 Ajax 取不到数据的时候,在PH ...

  6. STL 源代码剖析 算法 stl_algo.h -- next_permutation

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie next_permutation ----------------------------- ...

  7. Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一

    映射文件: <select id="selectKeyByUserId"  resultMap="Xxx">        <![CDATA[ ...

  8. JavaScript 数组的常用操作

    JavaScript splice 方法 splice 方法用于插入.删除或替换数组的元素.语法如下: array_object.splice(start, num, element1, elemen ...

  9. Web.xml 错误或异常页面配置

         <error-page>          <error-code>404</error-code>          <location>/ ...

  10. .NET 之 有效预防.NET应用程序OOM

    大部分的内存溢出(及内存泄漏)都和不好的开发习惯有直接关系,以下几个方式可以有效预防OOM. 一.批量和分页 每个合格的coder对数据的处理,必须要有分页或批量多次的意识.大数据量的读取或查询结果集 ...