makefile 函数
1. findstring
$(findstring <find>, <in>)
从 in 中查找 find ,如果找到则返回find,否则返回空
str1=1111
str2=11222 all:
@echo $(findstring $(str1), $(str2))
示例 uboot makefile是否编译
# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif
2. origin
$(origin var)
返回 var 的来源
可能返回:
undefined
enviroment
default
file
command line
override
automatic
示例
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
3.if
$(if <condition>, <then_return>, [else_return])
如果condition 不为空,则condition为真,则返回 then_return 的内容,否则返回 else_return
示例
OBJTREE := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR))
4.filter
过滤掉不符合模式的字符串
sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
cc $(filter %.c %.s,$(sources)) -o foo
则 符合模式的有 bar.c baz.s
5.filter-out
过滤掉符合模式的字符串
objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o $(filter-out $(mains),$(objects))
则 main1.o main2.o 被过滤掉
6.dir
$(dir src/foo.c hacks)返回值是“src/ ./”
7.call
call 类似于函数调用,我觉得这里更合适的名称是表达式调用
$(call <expression>, [param1], [param2], ...)
expresion=$(1) $(2) $(3) ....
或者这样定义 expression
define expresion
xxxx
xxxx
endif
$(1) $(2) ... 分别被 [param1], [param2] .. 分别代替。
返回值是替换参数后的 expresion
makefile 函数的更多相关文章
- 详解Makefile 函数的语法与使用
使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...
- makefile笔记10 - makefile 函数库文件
函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件.在 Unix 下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成. ...
- makefile笔记7 - makefile函数
在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能. make 所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. ...
- 详解Makefile 函数的语法与使用 (转)
使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...
- 【 MAKEFILE 编程基础之四】详解MAKEFILE 函数的语法与使用!
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/gcc-makefile/771.html ...
- makefile函数集锦【转】
转自:http://blog.csdn.net/turkeyzhou/article/details/8612841 Makefile 常用函数表一.字符串处理函数1.$(subst FROM,TO ...
- makefile函数
http://www.cnblogs.com/tianyajuanke/archive/2013/02/16/2610276.html 通用步骤: 编译时,可以不知钉头文件,如果指定头文件,其作用是当 ...
- 介绍几个常用的makefile函数
addprefix. $(addprefix <prefix>, <name1 name2 ...>) 功能:把<prefix>加到name序列中的每一个元素前面. ...
- GCC,GDB,Makefile和IO复用函数
2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 ...
随机推荐
- hdfs的JAVA必会操作
hdfs的必会操作 创建目录 //创建目录 public static void mkdir(String filePath) throws URISyntaxException, IOExcepti ...
- selenium等待机制学习笔记
转载至: https://blog.csdn.net/huilan_same/article/details/52544521 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(x ...
- net core 微服务 快速开发框架
dymDemo github 地址:https://github.com/duyanming/dymDemo dym 分布式开发框架 Demo 熔断 限流 事件总线(包括基于内存的.rabbitmq的 ...
- python爬虫获取下一页
from time import sleep import faker import requests from lxml import etree fake = faker.Faker() base ...
- npm install 几种不同后缀安装模式的区别
--save/--save --dev/nothing / -g 区别,及package.json基本目录结构介绍 https://www.jianshu.com/p/e10f981972ff
- vscode配置python调试仍然直接输出
工作目录不能放在python的安装目录下
- 人生第一篇博客 , 当然是经典的 "Hello World"
package com.cqvie.Hello; public class FirstDemo { public static void main(String[] args) { System. ...
- 设备屏幕与Size Class对应
- SWPUCTF_2019_p1KkHeap
SWPUCTF_2019_p1KkHeap 环境:ubuntu18 考点:UAF,沙箱逃逸 ubuntu18现在不能构造double free了!!! 所以我用patchelf来做 IDA逆一下 可以 ...
- linux压缩和解压文件命令
tar 解包:tar zxvf filename.tar 打包:tar czvf filename.tar dirnamegz命令 解压1:gunzip filename.gz 解压2:gzi ...