规则约定:编写跨平台Makefile的三星EMMC参考设计要点

需积分: 12 12 下载量 38 浏览量 更新于2024-08-07 收藏 2.02MB PDF 举报
本文档主要介绍了三星EMMC参考设计中的规则命令行约定,旨在帮助开发者在编写多系统兼容的Makefile时遵循一定的规范,以确保跨平台的稳定性和兼容性。以下是核心知识点的详细解读: 1. **命令行书写约定**: - 建议使用`sh`作为Makefile和`configure`脚本中的默认命令解释器,而非`csh`,以保持跨平台一致性。 2. **工具选择**: - 在Makefile和`configure`脚本中,避免使用非通用的命令,如`cat`, `cmp`, `diff`, `false`, 等,除非它们有通用选项并能在大多数系统上运行。例如,使用`mkdir -p`代替`mkdir`以增加兼容性,但需注意某些系统可能不支持某些选项。 3. **压缩工具**: - 在`dist`目标的命令行中允许使用`gzip`进行压缩,但要确保它在目标系统上可用。 4. **符号链接**: - 避免在规则命令行中创建符号链接,因为并非所有系统都支持,尤其是MS-DOS,但对类Unix系统影响不大。 5. **命令替换变量**: - 使用预定义的变量,如`$(AR)`、`$(CC)`等,来代表编译器和工具,这样便于统一管理和修改。 6. **处理工具依赖**: - 在包含`ranlib`或`ldconfig`等工具的规则中,要考虑系统兼容性,若不支持,应提供友好的提示,而不是直接报错。 7. **引用文档**: - 文档引用了GNUmake中文手册,该手册详细讲解了Makefile的结构、规则语法、依赖处理、通配符和目录搜索等概念,适用于理解和编写Makefile。 通过遵循这些约定,开发者可以在维护和移植Makefile到不同操作系统时,减少潜在的兼容性问题,并提高代码的可移植性和可维护性。此外,理解Makefile的规则和语法,有助于正确地组织和管理项目构建流程。