分享一个我用了2年半的Makefile模板

程序员写个解FingerNCat 2017-03-11 09:12:29
原始网址
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 工程的编译
...全文
212 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyzeng79 2017-03-11
  • 打赏
  • 举报
回复
谢谢楼主的分享,很不错的资料。

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧