Function
或者
字符串
字符串替换和分析的函数
subst
$(subst from,to,text)
文件
dir
$(dir names…)
notdir
$(notdir names…)
suffix
$(suffix names…)
basename
$(basename names…)
addsuffix
$(addsuffix suffix,names…)
addprefix
$(addprefix prefix,names…)
join
$(join list1,list2)
wildcard
$(wildcard pattern)
realpath
$(realpath names…)
abspath
$(abspath names…)
Conditional
if
$(if condition,then-part[,else-part])
or
$(or condition1[,condition2[,condition3…]])
and
$(and condition1[,condition2[,condition3…]])
foreach
$(foreach var,list,text)
file
$(file op filename[,text])
call
$(call variable,param,param,…)
value
$(value variable)
eval
origin
$(origin variable)
flavor
$(flavor variable)
Control Make函数
error
$(error text…)
warning
$(warning text…)
info
$(info text…)
shell
$(shell)
这个是Makefile中的一个函数,通过它可以执行shell命令。
如输出当前目录:
echo $(shell pwd)
/usr/bin
输出文件内容:
echo $(shell cat ./data)
cat...
在编写Makefile的时候,有时候需要在Makefile中对变量做一些求值,如加减乘除等算术计算。这个时候需要用到shell。
如下shell中,我们需要计算512 + 512 = ?
sh-3.1$ expr 512 + 512
1024
我们还可以用一对括号“()”将512 + 512括起来:(512 + 512)。但这样直接括起来的话会报语法错误:
sh-3.1$ expr (512 + 512)
sh: syntax error near unexpected token `512'
应该这样:
sh-3.1$ expr \( 512 + 512 \)
1024
这样看起来有点多余。这里是多此一举,不过复杂点表达式是需要的,比如:512 * (1 + 1),这个后面会讲到。
计算512 - 512 = ?
sh-3.1$ expr 512 - 512
0
如果计算512 * 2 = ?
是不是expr 512 * 2 。。。?
sh-3.1$ expr 512 * 2
expr: syntax error
报语法错误。应该这样:
sh-3.1$ expr 512 \* 2
1024
计算1024 / 512 = ?
sh-3.1$ expr 1024 / 512
2
计算512 * (1 + 1)
sh-3.1$ expr 512 \* \( 1 + 1 \)
1024
在makefile中计算512 * (1 + 1)= ?
echo "512 * (1 + 1)" = $(shell expr 512 \* \( 1 + 1 \))
有时候这样是有问题的,它输出:
512 * (1 + 1) =
可以这样:
echo "512 * (1 + 1)" = $(shell expr 512 \\* \( 1 + 1 \))
512 * (1 + 1) = 1024
这样就计算出来了。
这个例子似乎没什么作用。但在对多个变量进行计算求值时是有用的。如下:
size_in_block = 1
这里要计算size_in_block变量+1的结果。
echo "512 * ($(size_in_block) + 1)" = $(shell expr 512 \\* \( $(size_in_block) + 1 \))
512 * (1 + 1) = 1024
guile
相关推荐
第二课:初识makefile的结构 第三课:伪目标的约会 第四课-变量和不同的赋值方式 第五课-预定义变量的使用 第六课-变量的高级主题(上) 第七课-变量的高级主题(下) 第八课-条件判断语句 第九课-函数定义及调用 第...
Makefile常用函数表
makefile 函数,写出简洁的makefile文件
makefile常用函数语法总结.doc
makefile常用函数语法总结.pdf
跟我一起写 Makefile 作者:陈皓 整理:祝冬华 来源网络,希望能与大家分享这份学习资料,资源分数也设置了最低值,如有侵权,请联系我删除文件。 第一部分、概述 (6) 第二部分、关于程序的编译和链接 (6) 第三部分...
这里有编写Makefile文件所需到全部函数,让大家在用make到时候更加方便
Makefile中常用的函数介绍,收藏了随时查阅。
Makefile的基本语法包括五个部分:Makefile规则、Makefile规则、Makefile的条件执行、Makefile函数、Makefile库的生成和使用。这篇文档详细讲解了这五块内容。 Makefile是一种用于自动化编译程序的工具,它包含一...
嵌入式平台或手机平台开发,在编写makefile时,常用到的nake函数语法,希望对需要的人有用
归纳整理makefile函数,包括 substr/patsubst/strip/findstring/filter/filter-out/sort/word/wordlist/words/firstword/dir/ notdir/suffix/basename/addsuffix/addprefix/join/ wildcard/foreach/error/warning ...
对于初学makefile人的很好资料。。。。。。。。。
makefile 语法规则和函数makefile 语法规则和函数
1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 安装Microsoft Platform SDK 4 1.2.3 集成Microsoft Platform SDK与Visual C++速成版 5 1.2.4 Vista ...
此文档几乎涵盖了所有makefile基本函数和使用。
1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 安装Microsoft Platform SDK 4 1.2.3 集成Microsoft Platform SDK与Visual C++速成版 5 1.2.4 Vista ...
文档中详细讲解了makefile组织结构和编写技巧,阅读后便可对makefile有一个全面的了解,不仅能够很好理解makefile,还能编写简单实用的makefile。
Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile(在其它的系统上可能是另外的文件名)在绝大...