分享一个我用了2年半的Makefile模板
原始网址
http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=523008&page=1#pid2141951
从2014年正式开启linux征程,从终端上打印出 “Hello word”之后就不时地折腾Makefile模板。该模板大约每4-6个月都会发布一个新版本,模板从最初的 10 来行到目前仅仅 Makefile 就达 500 多行,数个外围脚本工具协同工作。
我一直都长期使用该模板,每次切身感受到功能不足时都往上加些特性,待特性达到一定程度后对外发布稳定版本。
当前稳定版本是V1.1,大概这个月内发布V1.2
github地址
https://github.com/MenglongWu/MakeDoxygen
MakeDoxygen只有一个总Makefile,与子工程相关的内容只有对应script/<sub project>目录下的 filelist.mk 和 project.mk
MakeDoxygen编译做法
make DP=pi3 编译子工程3
make DP=pi2 编译子工程2
make DP=pi1 编译子工程1
make all 编译所有子工程
2. 多编译器切换
3. 快速配置程序版本
图像化配置程序各种版本特性(调试版本、功能特性、发布版本)
从linux内核里提取出mconf工具,以及我写的mkheader将.config转换成autoconfig.h
4. 编译过程高亮显示
黑白屏幕虽然简单,但不够不明了
5. 错误高亮
一大堆白朦朦 abcd 里找 error 有多痛苦
6.版本控制信息(v1.2特性)
程序ELF文件嵌入 .modinfo 段,包含若干信息,其中包括git版本控制的 sha1 节点号
拿到一个用户反馈产品有问题,数周发布一新版本,我怎么知道用户当前使用的是哪个版本,
7. 预编译机制(v1.2特性)
与visual stdio的stdafx.h功能一致,预编译头文件,使得工程后期编译速度加快,尤其是 Qt 工程的编译