前言
- Makefile 在嵌入式开发中比较的常见,尤其是Linux、Android开发中,这是工程构建的标配
- 可以通过熟悉一个Makefile,并实际验证,了解常见的Makefile的语法格式与编写技巧
if 语句
- Makefile 中的 if 语句,如下:
srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
- 这句话的意思是:如果
$(KBUILD_SRC)
为真(存在),就返回 $(KBUILD_SRC)
,否则就返回 $(CURDIR)
if 语句语法
- 通过查看 gun make 手册,可以找到 if 语句的用法:
- 用法有点像 C语言的 【逗号运算符】,也就是
$(if condition,then-part[,else-part])
- condition 条件为真,可以展开,不是whitespace(空白符),就返回
then-part
- condition 为假,不能展开,也就是
whitespace
(空白符),就返回:else-part
- 举例:
srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
- 如果:
KBUILD_SRC
存在不为空白符,srctree 就为:KBUILD_SRC
- 如果:
KBUILD_SRC
不存在,如为空,则 srctree 为:CURDIR
小结
- 可以通过查找 gnu make 手册,快速的学习积累常见的Makefile 遇到的语法知识
- gnu make 手册的地址:https://www.gnu.org/software/make/manual/