GNU make 特性溯源:从其他版本的make到Samsung EMMC参考设计

需积分: 12 12 下载量 156 浏览量 更新于2024-08-07 收藏 2.02MB PDF 举报
"这篇文档是关于三星EMMC参考设计中源自其他版本的make特点的分析。文档提到了多个从其他make版本中引入或受到启发的功能,包括模式规则、规则链和隐含中间过程文件、自动化变量、命令行选项、并发执行、变量模式替换引用、特殊命令字符、追加赋值语法、静态库成员列表以及错误处理机制等。这些特点在不同的操作系统和工具中有所体现,例如SunOS 4和AT&T Unix的研究版本。文档还引用了GNUmake中文手册的不同章节来供读者深入学习各个特性。" 本文档主要讨论的是在三星EMMC参考设计中使用的make工具的一些特性,这些特性来源于其他版本的make。首先,模式规则使用模式字符“%”,这是一个在多个make版本中广泛采用的特性,允许通用匹配目标文件。接着,规则链和隐含的中间过程文件首次出现在Stu Feldman的make版本中,并在AT&T的Unix系统中得到应用。自动化变量“$^”被用来表示所有依赖文件,虽然不是GNU特有的,但其起源不详。 文档还提到命令行的“what if”选项(在GNU make中为“-W”),这是由Andrew Hume在mk程序中首次引入的概念。并发执行命令的功能在很多make版本中都有实现,但在System V和BSD中并未实现。变量的模式替换引用在SunOS 4的make中出现,而GNU make通过“patsubst”函数提供了类似的功能。 特殊命令字符“+”的使用是根据IEEE Standard 1003.2-1992 (POSIX.2)定义的,用于指示强制执行命令。追加赋值语法“+=”起源于SunOS 4的make,允许向变量值中添加内容。静态库成员列表的语法“ARCHIVE(MEM1 MEM2...)”也是从SunOS 4的make中引入的。最后,“-include”选项允许包含多个makefile,即使某些文件不存在也不会出错,这个特性同样来源于SunOS 4的make。 文档附带了GNUmake中文手册的引用,涵盖了从基本概念到高级特性的全面介绍,如Makefile的结构、规则定义、变量使用、文件搜索、条件语句等,为读者深入理解make工具提供了详细的参考资料。