在阅读Uboot中的Makefile时,发现下面的代码:

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

$(origin O)中的origin函数不直接操作变量的值,而告诉你这个变量是从哪里来的,其语法是: $(origin   variable)。

其中,variable是变量的名字而不是引用,所以不需要使用“$”字符。origin函数会以返回值告诉你这个变量的“出生情况”,返回值详情如下:

1. 返回值为 "undefine"时,表示variable变量未定义。

2. 返回值为"command line"时,表示variable变量由命令行定义,即由make variable= 传入。

3. 返回值为“environment”时,表示variable变量是在环境变量中定义。

4. 返回值为“file”时,表示variable变量是在Makefile中定义。

5. 返回值为“default”时,表示variable变量是默认定义的。

6. 返回值为“override”时,表示variable变量由override指示符重新定义。

7. 返回值为“automatic”时,是一个命令运行中自动化变量。

Uboot Makefile 中 $(origin variable)详解相关推荐

  1. uboot中$(origin variable)详解

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

  2. $(origin variable)详解

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

  3. uboot配置和编译过程详解

    ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ 分享一个大神朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到 ...

  4. 2.4.U-Boot配置和编译过程详解-U-Boot和系统移植第4部分视频课程笔记

    目录 2.uboot 主Makefile分析 2.1.Makefile 分析2 2.2.Makefile 分析3 2.3.Makefile 分析4 2.4.链接脚本的定义 2.5.指定链接地址 如果T ...

  5. uboot引导kernel - 3 -uboot给内核传参详解

    uboot中执行theKernel函数后,kernel正式启动.如下函数,我们发现有3个参数. 1. 参数 0: 2. 参数machid; 如下code 中获取machid, gd是个全局变量. 2. ...

  6. Makefile---(origin variable)详解

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

  7. 实用的GCC Makefile语法及参数详解

    二话不说,先上一个Makefile的源码. 基于下述的Makefile,可以直接执行命令: 编译: make   or   make -f Makefile all 清除: make clean  o ...

  8. 【Linux】U-Boot启动文件start.S详解(超详细讲解,上篇)

    U-Boot U-Boot的版本选择 U-Boot的下载地址:/pub/u-boot的索引 进入到U-Boot的下载页面,发现U-Boot的版本众多: 那怎么选取U-Boot的版本呢?够用就行. 本文 ...

  9. u-boot启动代码start.S详解360

    (1)定义入口.由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本 ...

最新文章

  1. Java enum的用法详解
  2. 声明与函数、函数指针
  3. InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了...
  4. 3.2 为超参数选择合适的范围-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. ubuntu 安装pytorch
  6. python type函数
  7. 实验八 分析一个奇怪的程序
  8. python手机端秒杀_python实现淘宝秒杀脚本
  9. 【Anaconda安装包】如何在Ananconda环境下安装CV2(opencv)
  10. linux map内存在哪里分配,linux内存分配与回收
  11. ElasticJob简单使用
  12. 手机疑似中毒,恢复到出厂设置也不管用,还好有RE文件浏览器
  13. 京东X无人超市布局瞄准加油站,下一个场景会在哪儿
  14. CSDN优质博主推荐(C/C++领域)-持续更新中
  15. Python微信文章 抓取转PDF
  16. 视频剪辑计算机配置要求,笔记本电脑用来视频剪辑和后期制作要求什么配置高?...
  17. js获取浏览器默认语言设置并自动跳转
  18. Android 7.0 插卡后APN信息的加载流程、UI界面编辑APN的流程及Android中APN配置相关的漏洞
  19. iOS16锁屏可定制,WPS回应“删除用户本地文件”,紫光集团重整阶段即将收官,今日更多大新闻在此...
  20. 技能篇:awk教程-linux命令

热门文章

  1. caffe中RGB图像三通道卷积过程学习推导
  2. 调试Loder.exe时候遇到的问题
  3. 关林:Happy birthday to me!
  4. pcb可以给用户进程读吗_在职研究生:不用考试就可以读吗?
  5. SQL的约束作用,创建与删除
  6. Linux常用系统管理命令详解
  7. seo标题该如何优化?
  8. 解决 “_pickle.PicklingError: Can‘t pickle: it‘s not the same object as sqlalchemy.orm.session.Session“
  9. 智能无人系统个人总结
  10. 苹果ios上架审核被拒驳回之4.3design