非递归Makefile与面向对象

最近在做一个项目,参考Android的构建系统,自己实现了一个简单的GNU Make的构建系统

 

这是什么? 这是一个通用的Makefile脚本文件,使用GNU Make(版本大于3.81)作为工程构建工具,本Makefile脚本有如下特点:

  1. 非递归Makefile。
  2. 对外导出一些通用的变量接口,脚本内部的变化不会引起外部修改。
  3. 利用OO(object Oriented)的思想,以模块(一个module.mk文件)作为最小单元,封装模块,增加复用,使整体更加容易理解。同时, 还提供了两种数据结构的封装:list和map,list用于保存链数据,map用于保存key-val数据。
  4. 扩展性良好,通过简单的添加就可以加入新的构建模板。
  5. 提供调试查询功能,可以根据模块的唯一标识符ID来查询模块的信息,方便出错时查错。
  6. 支持模块的单独编译。
  7. 支持用户定义自定义的配置。
  8. 默认提供以C, C++作为编程语言的编译构建。
  9. 提供模块模板文件,在使用时只需拷贝模板后修改,对接口进行赋值即可。
  10. 使用简单。

 

具体地址:https://github.com/lzk90s/build_system

posted @ 2013-08-16 11:30  lzk90s  阅读(361)  评论(0)    收藏  举报