Makefile 模板

之前在各个不同的项目中,写过各种各样的Makefile,一直苦于没有一个相对理想的Makefile的模板。

1)Android中的Android.mk文件功能不错,但是整个Android的编译系统相对比较复杂,涉及的内容也很多,对于小的项目来说有点杀鸡用牛刀的感觉。

2)Linux Kernel的kbuild系统,也不错,但是还是有点太过于复杂,而且看起来不太适合用编译多个不同的elf还有多个静态库啥的。当然也有可能是自己不熟悉,同时好像没有进度的显示,也没有pre-compile的支持。

最近抽空专门学习了一下Makefile,基于make的基本功能,写了一个自己的makefile 模板。

主要实现了以下的一些功能:

1) 支持显示编译的进度:make的时候,可以自动统计出来所有需要编译的对象,并实时显示编译进度。在系统中如果有多个makefile,通过sub-make去调用多个submake的时候,会统一计数。

2)支持Pre-compile,在Linux平台下编译之前写的editor的程序,实测打开之前单核编译完成是27秒,打开之后单核编译完成时间是15秒,其中包含了生成gch文件的时间。

3)自动计算整体的编译时间。

4)支持自动生成静态库。

5)支持自动生成elf文件。

6)支持elf中直接使用自己定义的静态库。

7)include的头文件更新之后,会自动重编对应的.cpp/.c文件。

8)编译库的时候,支持指定目录自动编译所有的文件,也可以指定文件列表。

9&#x

你可能感兴趣的:(Makefile,makefile,c++)