GNU Automake中文手册:构建自动化利器
需积分: 4 143 浏览量
更新于2024-07-25
收藏 344KB PDF 举报
"Automak中文手册"
GNU Automake 是一个自动化构建系统,它帮助程序员遵循GNU标准构建过程,生成符合GNU编程规范的Makefile.in文件。这个中文手册详细介绍了Automake的各种特性和使用方法。
**1. 通用性概念**
- **通用操作**:Automake处理常见的构建任务,如编译源代码、创建库和可执行文件等。
- **深度**:Automake可以处理多层次的目录结构,确保每个子目录都有相应的Makefile.am文件。
- **严格性**:Automake遵循严格的规则来确保项目的一致性和可移植性。
- **统一命名机制**:Automake采用特定的变量和文件命名约定,如`Makefile.am`和`configure.in`。
- **派生变量是如何命名的**:Automake自动为派生目标创建变量,如`LIBOBJS`和`ALLOCA`。
**2. 实例软件包**
- **一个简单的例子**:从创建基本的`configure.in`开始,逐步解释如何构建完整的项目。
- **一个经典的程序**:展示如何处理包含多个源文件和依赖关系的复杂程序。
- **创建etags和ctags**:如何生成代码导航工具所需的索引文件。
**3. 创建`Makefile.in'**
`Makefile.in`是Automake生成的核心文件,它在`configure`脚本运行后被转换成最终的Makefile。
**4. 扫描`configure.in'**
- **配置需求**:Automake分析`configure.in`以确定项目需要的编译器和库。
- **Automake能识别的其它事情**:包括识别自定义宏和条件语句。
- **自动生成的`aclocal.m4`**:Automake会生成`aclocal.m4`,包含Autoconf宏。
- **Automake支持的Autoconf宏**:如`AM_INIT_AUTOMAKE`和`AC_PROG_CC`等。
**5. 创建程序和库**
- **创建一个程序**:定义源文件,设置编译选项。
- **创建一个库**:包括静态库和共享库的创建。
- **对LIBOBJS和ALLOCA的特别处理**:这些变量用于管理库中的对象文件。
- **创建一个共享库**:处理动态链接库的生成。
- **创建一个程序时使用的变量**:如`bin_PROGRAMS`用于定义可执行文件。
- **对Yacc和Lex的支持**:Automake能处理解析器和词法分析器生成的源文件。
- **C++和其它语言**:支持多语言编程。
- **自动de-ANSI-fication**:自动处理非ANSI C的兼容性问题。
- **自动的依赖性跟踪**:Automake自动生成源文件的依赖关系,简化构建过程。
**6. 其它派生对象**
- **可执行的脚本**:处理shell脚本和其他可执行文件。
- **头文件**:如何处理公共头文件的安装。
- **与体系结构无关的数据文件**:如数据文件和配置文件的安装。
- **已创建的源代码**:处理由其他工具生成的源文件。
**7. 其它GNU工具**
- **Emacs Lisp**:支持Emacs相关扩展和包的构建。
- **Gettext**:处理国际化和本地化。
- **Guile**:构建Guile扩展模块。
- **Libtool**:管理库的版本和链接。
- **Java**:Java项目的构建支持。
**8. 创建文档**
- **Texinfo**:创建Texinfo格式的文档。
- **Man手册**:生成man页。
**9. 安装、清除和发布的文件**
- 描述了如何定义安装路径、清理目标以及发布时需要包含的文件。
**10. 对测试套件的支持**
Automake提供构建和运行测试套件的机制。
**11. 改变Automake的行为**
通过条件语句和命令行选项调整Automake的行为。
**12. 其它规则**
- 如处理新的文件扩展名和与etags的接口。
**13. 条件(Conditionals)**
- 如`--gnu`、`--gnits`和`--cygnus`选项的影响。
**14. 何时Automake不够用**
指出Automake的限制,并提供解决策略。
**15. 发布`Makefile.in'**
讨论如何准备项目以供发布。
**16. 未来的某些想法**
提及Automake未来可能的改进和发展方向。
**17. 索引**
提供完整的目录,方便查找特定主题。
这个中文手册是Automake用户的重要参考资料,它涵盖了从基础到高级的各个方面,帮助开发者有效地构建和维护符合GNU标准的项目。
2021-04-26 上传
2021-04-22 上传
2024-11-25 上传
2024-11-25 上传
2024-11-25 上传
2024-11-25 上传
2024-11-25 上传
2024-11-25 上传
u010552545
- 粉丝: 0
- 资源: 1
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器