分享

大型软件项目中makefile的编写

 Delores 2007-09-24

大的软件项目一般都会采用分模块的组织结构,分离编译使得各个模块可以分别编译,最后链接成最终的执行文件。使用make程序可以使项目的编译过程自动化,但针对一个大的软件项目,对makefile的编写提出了比较高的要求。

 

我们一般会按目录结构组织软件项目中的各个模块,每个大的模块放在一个目录下,该模块可以再细分为几个小模块,相应的放在几个子目录中。编写makefile时至少应该以以下几点作为目标:

1.      可以以任意模块粒度进行make

2.      对各个模块可以使用相同的make调用参数及目标名。

3.      可以方便的增减模块。

 

要达到上述目标,一个基本的想法是:每个目录下放置makefile文件,每个子目录可以分别make,而该目录又可以被上层目录递归调用make

 

在对各个模块进行编译时,有许多公共的部分,如一些普遍的模式规则,递归方法等,我们把这些东西放在一个公共的common.mk中, 各个子目录下的makefile可以定义模块相关的东西,如自己的递归子目录,模块相关的特殊编译参数,模块相关的输出等。为了使在各级目标下可以使用相同的目标名,我们把这些目标及对应规则放在common.mk中,但这些目标的依赖项可能据不同的模块而有所不同。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多