Makefile 总结

原创 2016年08月31日 12:09:42
一 Makefile 变量赋值
   Makefile 赋值有四种方式,
1. =   延迟赋值,或者称作展开赋值 变量等待 Makefile 完全展开后再确定实际的值
x = $(y) 2
y = 3
$(warning $(2)) #at here x already is 3 2 
z = 4



2. :=  立即赋值,在Makefile 展开到这个位置时,立即赋值

x := $(y) 2
y := 3
$(warning $(2)) #at here x still is 2 
z := 4


3. ?=  如果变量已经赋值,则什么都不做,如果是第一次定义,则按照延迟赋值的方式(=)赋值
x := 1
x ?= 2 # x already , so x is 1


4. += 变量累加
x := 1
x += 2  #x is 1 2


二 shell 在Makefile 中的调用
1.在Makefile中只能在target中调用Shell脚本,其他地方是不能输出的。比如如下代码就是没有任何输出:


VAR="Hello"
echo "$VAR"
all:


正确的使用方式:
VAR := "Hello World" "Android" 
all:
echo $(VAR)


在非target中调用脚本需要使用Makefile shell 函数:
https://www.gnu.org/software/make/manual/html_node/Shell-Function.html
$(shell rm $(VAR))


2.Makefile中所有以 $ 打头的单词都会被解释成Makefile中的变量。如果你需要调用shell中的变量(或者正则表达式中锚定句位$),
  都需要加两个$ 符号($$)。


3.在Makefile中执行shell命令,一行创建一个进程来执行。这也是为什么很多Makefile中有很多行的末尾都是"\”,
  以此来保证代码是一行而不是多行,这样Makefile可以在一个进程中执行,
all:
for var in $(VAR);\
do \
echo $${var};\
done




三 Makefile 函数
一、函数的调用语法
a 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:
$( ) 
或是
${ }
就是函数名 是函数的参数,参数间以逗号“,”分隔,
而函数名和参数之间以“空格”分隔。函数调用以“$”开头,以圆括号或花括号把函数名和参数括起。
b 自定义函数
define function-name
   ...
   ...
endef


# $(1): Directory to copy
# $(2): Location to copy it to
# The "ls -A" is to prevent "acp s/* d" from failing if s is empty.
define package_files-copy-root
 if [ -d "$(strip $(1))" -a "$$(ls -A $(1))" ]; then \
   mkdir -p $(2) && \
   $(ACP) -rd $(strip $(1))/* $(2); \
 fi
endef

github 地址:
https://github.com/louiewh/Makefile/
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(78) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
评论热议
版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

makefile学习在总结

  • 2012年05月30日 09:43
  • 87KB
  • 下载

Makefile学习总结

  • 2012年03月04日 22:30
  • 96KB
  • 下载

编写Makefile总结

以下的记录都是本人在编写和阅读Makefile过程中所遇到疑问。 1. makefile中的shell脚本语句需要在目标里才有效 否则无效被忽略或者发生错误。 2. makefi...
  • reille
  • reille
  • 2011年11月21日 11:25
  • 4902

makefile总结

  • 2015年01月01日 02:38
  • 39KB
  • 下载

Makefile函数总结

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

Makefile总结

Makefile   Part 1 1.makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译甚至更复杂的操作。 2.一旦写好,只需要一个mak...

makefile学习总结

原贴:http://read.newbooks.com.cn/info/195391.html 这几天好好研究了下makefile,然后做了一个自认为还算智能的makefile。用的时候,只要把它放...

makefile编写总结

1. makefile中的shell脚本语句需要在目标里才有效 否则无效被忽略或者发生错误。 2. makefile中执行shell条件判断语句出现错误:“syntax error : une...
  • ljzcom
  • ljzcom
  • 2012年01月21日 09:48
  • 1272

makefile调试总结

对于Makefile中的各种变量,可能是我们比较头痛的事了。我们要查看他们并不是很方便,需要修改makefile加入echo命令。这有时候很不方便。其实我们可以制作下面一个专门用来输出变量的makef...

软件工程通用makefile写法学习总结

工程通用makefile简单实现 最近学习了一下makefile,总结了一些经验,自己试着写了一套简单通用的软件工程makefile,总结下来以后可能会用到。 我的工程目录是这样的结构: 顶层目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Makefile 总结
举报原因:
原因补充:

(最多只允许输入30个字)