GNU make 中的版本特性与源起

需积分: 35 52 下载量 90 浏览量 更新于2024-08-09 收藏 2.7MB PDF 举报
"这篇文档是GNUmake中文手册的摘录,涵盖了从基本的Makefile概念到复杂的规则和特性。文章提到了多个源自其他版本make工具的特点,并在不同章节中详细阐述了这些特性在GNU make中的应用和理解。" 在 GNUmake 中,模式规则是一个重要的特性,允许使用模式字符“%”来创建通用的构建规则。这使得Makefile更加灵活,能处理一系列具有相似模式的文件。在10.5章节中,你可以找到关于模式规则的详细解释。 规则链和隐含的中间过程文件是Stu Feldman在某个make版本中的创新,后来在AT&T Unix系统中被采纳和进一步发展。10.4章节详细介绍了如何在GNU make中利用隐含规则链来简化构建过程。 自动化变量如“$^”在Makefile中用于表示所有依赖文件的列表,虽然不是GNU make独创,但其具体起源版本不明。在10.5.3章节,你可以找到关于自动化变量的更多信息。 “-W”选项,即“what if”,是Andrew Hume在mk程序中首次引入的概念,它允许在执行命令前进行预览。9.7章节讲述了这个选项如何在GNU make中工作。 并行执行命令是许多make工具的一个特性,尽管System V和BSD没有实现。在5.3章节中,你可以学习如何在GNU make中利用这一功能提高构建效率。 模式替换引用在SunOS 4的make中出现,而在GNU make中,通过“patsubst”函数提供类似功能。6.3章节深入探讨了变量的高级用法,包括模式替换。 “+”字符在命令行前的使用,由POSIX.2标准定义,它有特殊的含义,控制命令的执行方式。在9.3章节中,你可以了解如何利用这个特性。 “+=”语法,用于追加变量值,起源于SunOS 4的make。在6.6章节中,你可以学习如何使用这个语法动态地扩展变量。 静态库成员列表作为目标的语法,例如“ARCHIVE(MEM1 MEM2...)”,也源自SunOS 4的make。11.1章节详细介绍了如何处理库成员。 “-include”选项允许包含可能不存在的其他makefile文件,而不报错,这个特性同样来源于SunOS 4的make。 手册中的内容从基础的Makefile结构到高级特性进行了全面介绍,包括Makefile规则、变量、隐含规则、目录搜索和特殊目标等。每个章节都提供了深入的讲解,帮助读者理解和掌握GNU make的使用。通过学习,开发者可以编写更高效、更具可维护性的构建脚本。