先说一下 origin语法
origin函数不像其它函数。他并不直接操作变量的值,只是告诉你这个变量是从哪里来的(好好理解这句话)?
其语法是:
$(origin    variable)
注意这里是变量的名字,不是引用,所以不要使用“$”字符。origin函数会以返回值告诉你这个变量的“出生情况”(这个变量从哪里来的?),下面来看一下origin函数的返回值好了。
我们先新建一个Makefile文件,内容是:
ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif
all :
echo  $( origin O)
echo  $(BUILD_DIR)
注意;这里的“O”是字母大写的o,不是数字0.
(1)返回值为"undefine"时,这个变量没有被定义过
             直接在命令行中输入“make”,ifeq是比较两个变量是否相等,相等才执行后面的语句,显然这里并不相等,且因为 BUILD_DIR没有定义,所以 BUILD_DIR为空。
         
(2)返回值为“command line”时,这个变量是被命令行定义的。
       在命令行中输入“make    O=命令”
    

(3)返回值为“environment”时,这个变量是定义为环境变量

      我们先把 O定义为环境变量,然后再make
     

(4)返回值为“file”时,这个变量是定义在Makefile中。

      我们在Makefile中再输入这么一行定义O变量的命令,然后make。
    

  
(5)返回值为“default”时,变量是默认定义的。‘
(6)返回值为“override”时,被override指示符重新定义
(7)返回值为“automatic”时,是一个命令运行中自动化变量

Makefile---(origin variable)详解相关推荐

  1. uboot中$(origin variable)详解

                                                         $(origin variable)详解 先说一下 origin语法 origin函数不像其它 ...

  2. Uboot Makefile 中 $(origin variable)详解

    在阅读Uboot中的Makefile时,发现下面的代码: ifdef O                 ifeq ("$(origin O)", "command li ...

  3. $(origin variable)详解

    先说一下origin语法:origin函数不像其它函数.他并不直接操作变量的值,只是告诉你这个变量是从哪里来的? 其语法是:$(origin   variable) 注意这里是变量的名字,不是引用,所 ...

  4. 自动生成Makefile的全过程详解

    automake/autoconf入门 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefil ...

  5. git checkout -b dev origin/dev详解

    一般来说 在目录下用git clone git@github.com:xxxxx/yyyyy.git 接着要查看下本地的当前分支嘛 git branch 你会看到你在master分支下 这个时候往往会 ...

  6. 自动生成 Makefile 的全过程详解

    2019独角兽企业重金招聘Python工程师标准>>> automake/autoconf  入门 作为 Linux  下的程序开发人员,大家一定都遇到过 Makefile  ,用 ...

  7. Variable详解

    Variable(变量) 目前官方已经弃用variable了,tensor可以直接设置requires_grad=True 来源: torch.autograd.Variable() (一)特点 va ...

  8. makefile eval函数详解

    函数功能:函数"eval"是一个比较特殊的函数.使用它可以在Makefile中构造一个可变的规则结构关系(依赖关系链),其中可以使用其它变量和函数.函数"eval&quo ...

  9. 条件变量(condition variable)详解

    原理: 假设我们需要解决这样一个问题:一个列表记录需要处理的任务.一个线程往此列表添加任务,一个线程processTask处理此列表中的任务.这个问题的一个关键点在于processTask怎么判断任务 ...

最新文章

  1. lambda sort
  2. 关于用户画像产品构建和应用的几点经验
  3. 【SQL】SQL语句大全(XIMND导图梳理)
  4. 【Python基础】推荐几个神器来拯救奇丑无比的python代码
  5. checkbox和radio的样式美化问题
  6. 适用于Java EE / Jakarta EE开发人员的Micronaut
  7. 《MySQL tips:查询时,尽量不要对字段进行操作》
  8. Kubernetes学习笔记之Calico CNI Plugin源码解析(一)
  9. centos7和centos6 开机 运行级别详解和设置
  10. 新希望:拟参与设立总规模40亿元的广西新希望生猪保供专项产业基金
  11. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组
  12. 网络测试利器netperf安装和使用
  13. python将变量写入文件_python 如何把变量写入文件
  14. WIn7 解决 - ReadyBoost 未启用,因为该计算机的运行速度足够快
  15. 【典型液压系统】组合机床动力滑台液压系统
  16. linux:服务开机自启
  17. Python 列表推导式的实用小技巧
  18. Microsoft Teams免费版本初体验
  19. stata面板数据聚类及数据导入处理、虚拟变量等
  20. 2022年11月多家权威机构____编程语言排行榜__薪酬状况

热门文章

  1. 【JavaScript 逆向】百度旋转验证码逆向分析
  2. Vue自定义指令介绍及原理
  3. 【论文阅读】STAN:Synthetic Network Traffic Generation with Generative Neural Models
  4. PDF如何插入页面与提取页面
  5. MATLAB | 全网唯一 MATLAB双向弦图(有向弦图)绘制
  6. 全网最详细教写可视化面板(js、css3、html5)
  7. 模型训练中_pickle.PicklingError: Can’t pickle问题解决办法
  8. android 删除手机中图片的方法
  9. Linux配置主机名
  10. Eclipse 的 Debug 介绍与技巧