GNU Make的特色演变与Unix Makefile发展历程

需积分: 33 41 下载量 101 浏览量 更新于2024-08-09 收藏 2.24MB PDF 举报
本文主要探讨了源自其他版本的Makefile工具的一些关键特性和改进,特别是在胰腺癌患者门静脉系统图像重建的低keV下基于图像的高级虚拟单能双源双能CT数据处理中的应用。以下是一些核心知识点的详细说明: 1. **模式规则**: - "%"字符在多个Make版本中被用作模式字符,但具体到哪个版本首次引入,文档未明确指出。参考10.5模式规则一节了解其使用。 2. **规则链与隐含中间过程文件**: - 这个特性首次出现在Stu Feldman的Make版本中,后来在AT&T Bell实验室的Andrew Hume的mk程序中得到应用,可能是“传递闭合”概念的体现,但不确定是否是直接继承。参考10.4隐含规则链一节。 3. **自动化变量$^**: - 代表规则所有依赖文件的自动化变量不是GNU原创,但具体起源未明。查阅10.5.3自动化变量了解详情。 4. **"what if"选项**: - GNU Make的-W选项(即命令行的"what if"选项),据说由Andrew Hume在mk中首次引入。参考9.7 make的命令行选项。 5. **并发执行**: - 并发执行功能在其他版本的Make中支持,但System V和BSD未实现。5.3章节详细讨论了并发执行命令。 6. **变量模式替换引用**: - 来自SunOS 4的变量模式替换引用功能,GNU Make在SunOS 4实现前通过函数"patsubst"提供。两个版本的实现难以判断谁先提出该概念。 7. **命令行符号"+"</>: - 在命令行中使用"+"字符有特定含义,这是由IEEE Standard 1003.2-1992(POSIX.2)定义的。 8. **变量追加语法"+="**: - "+=”用于追加变量值的概念源于SunOS 4版本的Make。 9. **静态库成员作为目标**: - 使用"ARCHIVE(MEM1 MEM2...)"语法表示静态库成员是SunOS 4 Makefile的特性。 10. **"include"指令**: - "-include"用于包含多个Makefile文件,即使目标文件不存在也不会报错,这是SunOS 4版本的特性。 11. **Makefile的规则和结构**: - 文档详细介绍了Makefile的规则定义、依赖类型、通配符使用、目录搜索、伪目标、特殊目标、多目标和静态模式等内容,这些都是理解Makefile编写和使用的基石。 这些特点展示了Makefile工具在不同版本和场景下的发展,尤其是在特定领域的应用,如医学图像处理中的数据重建,强调了Makefile的灵活性和适应性。通过理解这些特性,用户可以更好地利用Makefile来管理和优化复杂的构建过程。