非递归Makefile与面向对象
最近在做一个项目,参考Android的构建系统,自己实现了一个简单的GNU Make的构建系统
这是什么? 这是一个通用的Makefile脚本文件,使用GNU Make(版本大于3.81)作为工程构建工具,本Makefile脚本有如下特点:
- 非递归Makefile。
- 对外导出一些通用的变量接口,脚本内部的变化不会引起外部修改。
- 利用OO(object Oriented)的思想,以模块(一个module.mk文件)作为最小单元,封装模块,增加复用,使整体更加容易理解。同时, 还提供了两种数据结构的封装:list和map,list用于保存链数据,map用于保存key-val数据。
- 扩展性良好,通过简单的添加就可以加入新的构建模板。
- 提供调试查询功能,可以根据模块的唯一标识符ID来查询模块的信息,方便出错时查错。
- 支持模块的单独编译。
- 支持用户定义自定义的配置。
- 默认提供以C, C++作为编程语言的编译构建。
- 提供模块模板文件,在使用时只需拷贝模板后修改,对接口进行赋值即可。
- 使用简单。

浙公网安备 33010602011771号