Makefile十之origin函数
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函数相关推荐
- uboot主Makefile中的origin函数
ifdef O ifeq ("$(origin O)", "command line") BUILD_DIR := $(O) endif en ...
- makefile的origin函数
origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语法是: $(origin <variable>) 上面,<variable> 为变量的名字, ...
- Makefile origin 函数
origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语法是: $(origin ) 上面, 为变量的名字,而不是引用,所以一般没有 $ 字符在前.origin 函数通过返 ...
- Makefile的origin 函数
转自:http://blog.chinaunix.net/uid-22028680-id-3054167.html origin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量.其语 ...
- makefile 初探之《shell 函数和origin 函数》
shell 函数 shell 函数也不像其它的函数.顾名思义,它的参数应该就是操作系统 Shell 的命令.它和反引号"`"是相同的功能.这就是说,shell 函数把执行操作系统命 ...
- #跟我一起写 Makefile# origin函数shell函数
目录 origin函数 shell函数 origin函数 origin函数不像其它的函数,他并不操作变量的值,他只是告诉你你的这个变量是哪里来的?其语法是: $(origin <variable ...
- Makefile所有内嵌函数
一.文本处理函数 以下是GNU make内嵌的文本(字符串)处理函数. 1 $(subst FROM,TO,TEXT) 函数名称:字符串替换函数-subst. 函数功能:把字串" ...
- (八)《跟我一起写Makefile》之使用函数
前往我的个人博客,阅读体验更佳. 使用函数 在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make 所支持的函数也不算很多,不过已经足够我们的操作了.函 ...
- Makefile中常用的函数
常用函数调用 语法: $(<function> <arguments>)或 ${<function><arguments>} <functi ...
最新文章
- 面试题6--利用前序和中序遍历重构二叉树--递归方法
- SM4密码算法(附源码)
- linux 内核配置 dns,Linux的dns配置 - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...
- 姚期智:中国金融科技发展的真正挑战是什么?如何解决? 本文作者:温晓桦	2017-09-17 18:31 导语:“在金融科技里面,计算机科学的用途已经从台后走到了台中,对核心金融体系的运作上产生一定的
- 时代天使点燃口腔赛道,瑞尔集团离下一只“牙茅”还有多远?
- 167. Two Sum II - Input array is sorted
- JQuery radio(单选按钮)操作方法汇总
- 如何用texstudio下载ctex_公众号素材库视频如何下载,用这种方法就可以哦
- UNIX 时间戳 C#
- 年薪30W前端程序员,需要吃透的前端书籍推荐
- wpf判断一个窗体是否运行_算法8 判断一个数是否是回文数
- VMware ESX的性能如何与Hyper-V的价格进行竞争?
- 阶段3 2.Spring_05.基于XML的IOC的案例1_2 基于XML的IOC的案例-编写spring的Ioc配置
- 管理感悟:不能放任下属,必须定时检查工作
- PPT中插入Flash
- 注意,你需要注意的使用盗版破解软件发论文存在的风险及规避方法
- java冒泡排序代码详解
- 离散实验五 判断关系R 是否为等价关系(给定 R 的关系矩阵,据此判断所给关系 R 是否为等价关系)
- 基于私钥生成jwt令牌
- Matlab 2018b 安装问题 - License checkout failed