makefile之origin函数
origin
函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。
函数语法:
$(origin )
为变量的名字,而不是引用,所以一般没有"$"字符在前。
origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:
- 当从来未定义过该变量时,origin 函数返回 "undefined" 。
如下面的 Makefile 代码:
all:
@echo $(origin V)
运行输出:
$ make
undefined
- 如果该变量为环境变量,那么返回 "enviroment" 。
如下面的 Makefile 代码:
all:
@echo $(origin USER)
运行输出:
$ make
environment
其中 USER 这个变量为系统定义的当前用户,使用 env 命令可以看到。
- 如果变量是个默认定义,那么返回 "default"。
如下面的 Makefile 代码:
all:
@echo $(origin CC)
运行输出:
$ make
default
- 如果一个变量被定义在 Makefile 文件中,那么返回 "file" 。
如下面的 Makefile 代码:
V := 1
all:
@echo $(origin V)
运行输出:
$ make
file
- 如果变量来自命令行,那么返回 "command line" 。
如下面的 Makefile 代码:
all:
@echo $(origin MyVar)
运行方法:
$ make MyVar="Are you ok?"
command line
- 如果变量被 override 被重新定义过,那么返回 "override"。
如下面的 Makefile 代码:
override SHELL = /bin/sh
all:
@echo $(origin SHELL)
运行输出:
$ make
override
上面,SHELL 原本是个环境变量,但在 Makefile 里被 override 指示符重定义过。
- 如果变量是自动化变量(如 $@, $< 等),那么返回 "automatic" 。
如下面的 Makefile 代码:
all:
@echo $(origin @)
运行输出:
$ make
automatic
makefile之origin函数的更多相关文章
- Linux makefile教程之函数七[转]
使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做 ...
- Makefile编写 四 函数篇
一.函数的调用语法 函数调用与变量一样,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> &l ...
- Makefile中的函数
Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments ...
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- Makefile内嵌函数
subst字符串替换函数 $(subst <from>, <to>, <text>),把<text>中的<from>字符串替换成<to ...
- makefile 字符串处理函数
截取自<跟我一起写Makefile> (1) $(subst <from>, <to>, <text>) 名称: 字符串替换函数 subst 功能: ...
- makefile之shell函数
shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(` ...
- 【makefile】symbol <函数> : can't resolve symbol 问题分析
调试程序的时候,在linux编译器上可以编译通过,但是编译生成的firmware烧录到板子上的后出现以下异常: can't resolve symbol,无法解析元素符号. review一下code, ...
- makefile之wildcard函数
$(wildcard PATTERN) 函数功能: 获取匹配 PATTERN 的所有对象 返回值: 使用空格分割的匹配对象列表 1. 示例1
随机推荐
- .Net 有关程序集查找与加载的一点反思
最近在做一款叫VICA产品,此产品采用了插件机制,插件在运行中加载,插件与插件之间存在依赖关系,所有的插件DLL为方便管理都放置在Plugins的文件夹下统一管理.这种处理方式不自觉的就让我想了解cl ...
- eclipse 性能调优之内存分配
转自:http://blog.csdn.net/defonds/article/details/6289236 如果觉得自己的 eclipse 比较慢,可以通过修改 %eclipse_home%/ec ...
- PVS-Studio静态通用分析规则
通用分析 PVS - Studio产品包含了一套通用静态分析规则,用于检测在C / C ++/ C+11应用程序中大范围内的各种缺陷. 通用的规则集帮助您发现逻辑错误,拼写错误,导致访问冲突的代码片段 ...
- Storm常见模式——分布式RPC
Storm常见模式——分布式RPC 本文翻译自:https://github.com/nathanmarz/storm/wiki/Distributed-RPC,作为学习Storm DRPC的资料,转 ...
- WAF防御能力评测及工具
本篇文章介绍如何从常规攻击的防御能力来评测一款WAF.一共覆盖了十六种攻击类型,每种类型均从利用场景(攻击操作的目的),注入点(漏洞产生的地方,比如说大多数WAF都会较全面地覆盖来自GET请求的攻击, ...
- 推断是否是有效的IP地址
#include<stdio.h> #include<string.h> bool isValidIp(char *s) { int len=strlen(s); int i= ...
- iOS NSFileManager对沙盒文件及目录添加删除操作
iOS 使用 NSFileManager对沙盒里面的文件和目录,增加,修改,删除操作: - (void)viewDidLoad { [super viewDidLoad]; self.title = ...
- 饿了么ui添加事件
最近饿了么ui挺火,连美团都有项目组再用,刚好最近项目重构,就引入了进来,刚用上就发现一个大坑,在配合vue使用时,居然无法添加自定义事件 找了半天才发现原因是需要在事件后面加上 ‘’.native ...
- php 获取ip地址方法
function getIP() { $ip=""; if(!empty($_SERVER['HTTP_CLIENT_IP'])){ $myip = $_SERVER['HTTP_ ...
- Vue实例初始化的选项配置对象详解
Vue实例初始化的选项配置对象详解 1. Vue实例的的data对象 介绍 Vue的实例的数据对象data 我们已经用了很多了,数据绑定离不开data里面的数据.也是Vue的核心属性. 它是Vue绑定 ...