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 函数的更多相关文章

  1. 详解Makefile 函数的语法与使用

    使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...

  2. makefile笔记10 - makefile 函数库文件

    函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件.在 Unix 下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成. ...

  3. makefile笔记7 - makefile函数

    在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能. make 所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使用. ...

  4. 详解Makefile 函数的语法与使用 (转)

    使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...

  5. 【 MAKEFILE 编程基础之四】详解MAKEFILE 函数的语法与使用!

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/gcc-makefile/771.html   ...

  6. makefile函数集锦【转】

    转自:http://blog.csdn.net/turkeyzhou/article/details/8612841 Makefile  常用函数表一.字符串处理函数1.$(subst FROM,TO ...

  7. makefile函数

    http://www.cnblogs.com/tianyajuanke/archive/2013/02/16/2610276.html 通用步骤: 编译时,可以不知钉头文件,如果指定头文件,其作用是当 ...

  8. 介绍几个常用的makefile函数

    addprefix. $(addprefix <prefix>, <name1 name2 ...>) 功能:把<prefix>加到name序列中的每一个元素前面. ...

  9. GCC,GDB,Makefile和IO复用函数

    2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 ...

随机推荐

  1. 多测师讲解pthon _函数__return_高级讲师肖sir

    #函数中的返回的作用(return) 案例: #函数中的返回的作用:def fun(): #定义的一个函数 num =100 a=num/2 #print(a) #50.0 return a # pr ...

  2. vs code个性化设置

    文件=>首选项=>设置,直接在搜索栏搜索有背景色的部分即可 1. 鼠标滚轮缩放 "editor.mouseWheelZoom": true 2. 显示空格和tab符号 ...

  3. centos7搭建docker环境

    Docker简介 Docker是一种虚拟化技术,用来将你的应用程序及其依赖的环境一起打包成一个镜像发布,使得在任何地方都能获得相同的运行环境. Docker 是一个开源项目,诞生于 2013 年初,最 ...

  4. 用python you-get下载视频

    安装python3后 安装you-get包: pip3 install you-get 下载视频: 打开windows终端:运行 you-get url 查看视频信息: you-get -i url ...

  5. selenium环境配置学习笔记

    一 为什么进行自动化测试 缩短测试周期 避免人为出错 测试信息存储 轻易获取覆盖率 二 web/ui自动化条件和适用范围 手工测试已经完成,后期在不影响进度的前提下逐渐实现自动化 项目周期长,重复性工 ...

  6. beego log

    package main import ( "github.com/astaxie/beego/logs" _ "xcms/routers" _ "x ...

  7. STL: set和map的区别、联系、使用

    set是一种关联式容器,其特性如下: set以RBTree作为底层容器 所得元素的只有key(键)没有value(值) 不允许出现键重复 所有的元素都会被自动排序 不能通过迭代器来改变set的值,因为 ...

  8. npm install各种命令模式

    npm install 几种命令模式: npm install moduleName 安装模块到项目目录下 npm install -g moduleName npm install -g 将模块安装 ...

  9. Java中的5大队列,你知道几个?

    本文已收录至 https://github.com/vipstone/algorithm <算法图解>系列. 通过前面文章的学习<一文详解「队列」,手撸队列的3种方法!>我们知 ...

  10. 理解import声明 与 export声明

    import的两种使用方法 import "mod"; // 引入一个模块 import v from "mod"; // 把模块默认的导出值放入变量 v im ...