origin 函数不像其它的函数,他并不操作变量的值,他只是告诉你你的这个变量是哪里来的?其语法是:
$(origin <variable>)
注意,<variable>是变量的名字,不应该是引用。所以你最好不要在<variable>中使用“$”字符。Origin 函数会以其返回值来告诉你这个变量的“出生情况”,下面,是 origin函数的返回值:
“undefined”
如果<variable>从来没有定义过,origin 函数返回这个值“undefined”。
“default”
如果<variable>是一个默认的定义,比如“CC”这个变量,这种变量我们将在后面讲述。 environment” 如果<variable>是一个环境变量, 并且当 Makefile 被执行时, “-e”参数没有被打开。
“file”
如果<variable>这个变量被定义在 Makefile 中。
“command line”
如果<variable>这个变量是被命令行定义的。
“override”
如果<variable>是被 override 指示符重新定义的。
“automatic”

如果<variable>是一个命令运行中的自动化变量。关于自动化变量将在后面讲述。

environment 
变量“VARIABLE” 是一个系统环境变量, 并且make没有使用命令行选项“-e”
(Makefile中不存在同名的变量定义,此变量没有被替代)。参考  10.7 make
的命令行选项 一节 
environment override 
变量“VARIABLE”是一个系统环境变量,并且make使用了命令行选项“-e”。
Makefile中存在一个同名的变量定义,使用“make -e”时环境变量值替代了
文件中的变量定义。 参考  9.7 make的命令行选项 一节

这些信息对于我们编写 Makefile 是非常有用的,例如,假设我们有一个 Makefile 其包了一个定义文件 Make.def,在 Make.def 中定义了一个变量“bletch”,而我们的环境中也有一个环境变量“bletch”,此时,我们想判断一下,如果变量来源于环境,那么我们就把
之重定义了,如果来源于 Make.def 或是命令行等非环境的,那么我们就不重新定义它。于是,在我们的 Makefile 中,我们可以这样写:
ifdef bletch
ifeq "$(origin bletch)" "environment"
bletch = barf, gag, etc.
endif
endif

Makefile十之origin函数相关推荐

  1. uboot主Makefile中的origin函数

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

  2. makefile的origin函数

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

  3. Makefile origin 函数

    origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语法是: $(origin ) 上面, 为变量的名字,而不是引用,所以一般没有 $ 字符在前.origin 函数通过返 ...

  4. Makefile的origin 函数

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

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

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

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

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

  7. Makefile所有内嵌函数

    一.文本处理函数 以下是GNU make内嵌的文本(字符串)处理函数. 1       $(subst FROM,TO,TEXT) 函数名称:字符串替换函数-subst. 函数功能:把字串" ...

  8. (八)《跟我一起写Makefile》之使用函数

    前往我的个人博客,阅读体验更佳. 使用函数 在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make 所支持的函数也不算很多,不过已经足够我们的操作了.函 ...

  9. Makefile中常用的函数

     常用函数调用 语法: $(<function> <arguments>)或 ${<function><arguments>} <functi ...

最新文章

  1. 面试题6--利用前序和中序遍历重构二叉树--递归方法
  2. SM4密码算法(附源码)
  3. linux 内核配置 dns,Linux的dns配置 - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...
  4. 姚期智:中国金融科技发展的真正挑战是什么?如何解决? 本文作者:温晓桦 2017-09-17 18:31 导语:“在金融科技里面,计算机科学的用途已经从台后走到了台中,对核心金融体系的运作上产生一定的
  5. 时代天使点燃口腔赛道,瑞尔集团离下一只“牙茅”还有多远?
  6. 167. Two Sum II - Input array is sorted
  7. JQuery radio(单选按钮)操作方法汇总
  8. 如何用texstudio下载ctex_公众号素材库视频如何下载,用这种方法就可以哦
  9. UNIX 时间戳 C#
  10. 年薪30W前端程序员,需要吃透的前端书籍推荐
  11. wpf判断一个窗体是否运行_算法8 判断一个数是否是回文数
  12. VMware ESX的性能如何与Hyper-V的价格进行竞争?
  13. 阶段3 2.Spring_05.基于XML的IOC的案例1_2 基于XML的IOC的案例-编写spring的Ioc配置
  14. 管理感悟:不能放任下属,必须定时检查工作
  15. PPT中插入Flash
  16. 注意,你需要注意的使用盗版破解软件发论文存在的风险及规避方法
  17. java冒泡排序代码详解
  18. 离散实验五 判断关系R 是否为等价关系(给定 R 的关系矩阵,据此判断所给关系 R 是否为等价关系)
  19. 基于私钥生成jwt令牌
  20. Matlab 2018b 安装问题 - License checkout failed

热门文章

  1. 汉诺塔(Hanoi)移动步骤问题
  2. Python opencv进行矩形识别
  3. New关键字(实例化对象)
  4. Web存储—简易注册登录
  5. 《Flowable流程引擎从零到壹》Flowable流程引擎介绍和实战项目初始化流程引擎实例
  6. MTK平台如何获取所有异常的AEE db文件
  7. 1.44寸OLED的Linux驱动
  8. P2622 关灯问题II
  9. SI战队人物专访-罗俊宇
  10. Python书籍阅读与记录 6.10 II 变量和简单数据类型