分类: LINUX
2014-03-19 18:51:30
最近学习linux的驱动编写,在网上普遍用类似以下的Makefile
点击(此处)折叠或打开
点击(此处)折叠或打开
解释:#?:测试操作.在一个确定的表达式中,用?来测试结果. (())结构可以用来做数学计算或者是写 c 代码,那?就是 c 语言的 3 元操作符的一个.
在"参数替换"中,?测试一个变量是否被 set 了.
在 file globbing 中和在正则表达式中一样匹配任意的单个字符.
# “ifdef”是条件关键字。语法是ifdef
# ifdef只检验一个变量是否被赋值,它并不会去推导这个变量,并不会把变量扩展到当前位置。
# “ifeq”与“ifdef”类似。
# “ifeq”语法是ifeq (
# 函数origin并不操作变量的值,只是告诉你你的这个变量是哪里来的。
# 语法是: $(origin
# origin函数的返回值有:
# “undefined”从来没有定义过、“default”是一个默认的定义、“environment”是一个环境变量、
# “file”这个变量被定义在Makefile中、“command line”这个变量是被命令行定义的、
# “override”是被override指示符重新定义的、“automatic”是一个命令运行中的自动化变量
对make还是不熟,估计make的参数传递是传统的命令行传递格式,如-foo bar这样的,而Makefile的参数传递是以foo=bar这样的。
以上。