6313|16

222

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

分享一个我用了2年半的Makefile模板 [复制链接]

 
本帖最后由 lzwml 于 2017-3-12 11:27 编辑

此内容由EEWORLD论坛网友lzwml原创,如需转载或用于商业用途需征得作者同意并注明出处



从2014年正式开启linux征程,从终端上打印出 “Hello word”之后就不时地折腾Makefile模板。该模板大约每4-6个月都会发布一个新版本,模板从最初的 10 来行到目前仅仅 Makefile 就达 500 多行,数个外围脚本工具协同工作。

我一直都长期使用该模板,每次切身感受到功能不足时都往上加些特性,待特性达到一定程度后对外发布稳定版本。
当前稳定版本是V1.1,大概这个月内发布V1.2

github地址
https://github.com/MenglongWu/MakeDoxygen

以下情况你可以考虑选择MakeDoxygen
1. 管理多子工程
某项目需要输出多个工程文件,统一用一个总工程管理。
原始做法是将Makefile与当前目录拷贝一个副本,原始Makefile工程输出a.out,新Makefile工程输出b.out,两工程的Makefile规则有很多相识之初,当其中一个Makefile内容变动时,通常也不得不去变动其余拷贝内容,毫无乐趣,倘若子工程更多呢?


MakeDoxygen只有一个总Makefile,与子工程相关的内容只有对应script/目录下的 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 工程的编译


8. 多类型输出文件
目前支持生成elf,so、a、bin(编译裸机,用得少)
配置语法参考listprj.mk,查阅用make lp

make DP=pi3  输出 lib-x86/liblb.so  lib-x86/liblb.a
make DP=pi2  输出 lib-x86/libla.so  lib-x86/libla.a
make DP=pi1  输出 release-x86/default.elf



最新回复

太高大上,看不懂  详情 回复 发表于 2017-7-29 17:20

赞赏

4

查看全部赞赏

点赞 关注(4)

回复
举报

361

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
是不是没附件?

点评

刚附上地址  详情 回复 发表于 2017-3-11 17:56
 
 

回复

222

帖子

2

TA的资源

一粒金砂(高级)

板凳
 

刚附上地址
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

4
 
这个有点意思,感谢分享。
 
 
 

回复

1461

帖子

1

TA的资源

纯净的硅(中级)

5
 
高大上,围观一下
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

6
 
果断收藏
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

7
 
不错不错
赞一个
 
个人签名

So TM what......?

 

 

回复

1368

帖子

6

TA的资源

版主

8
 
不错,不错,正在学习中,研究一下!
 
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 

回复

67

帖子

3

TA的资源

一粒金砂(中级)

9
 
赞一个,很高质量的开源产品
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

10
 
厉害啊,有模版的话,确实会提高一定的效率,还是要融会贯通
 
 
 

回复

767

帖子

2

TA的资源

纯净的硅(初级)

11
 
厉害了我的哥~感谢分享这么好的干活~不过Makefile之类的最头疼了 得好好钻一钻~
 
个人签名物致DIY 欢迎你的加入~
QQ群:646461928 公众号:智物知心致成
小店
 
 

回复

222

帖子

2

TA的资源

一粒金砂(高级)

12
 
跳票整整两个月,拖延症晚期
昨天5月11日正式发布V1.2-rc1
 
 
 

回复

67

帖子

3

TA的资源

一粒金砂(中级)

13
 
辛苦啦,一直有在关注这款开源软件,给其他朋友也有推荐过。

点评

和你的那些项目比起来,我这个不算什么啦,只是个磨刀石罢了  详情 回复 发表于 2017-5-18 16:28
喜欢我就点我吧,点这里  详情 回复 发表于 2017-5-18 16:27
 
 
 

回复

222

帖子

2

TA的资源

一粒金砂(高级)

14
 
armink 发表于 2017-5-18 13:42
辛苦啦,一直有在关注这款开源软件,给其他朋友也有推荐过。

喜欢我就点我吧,点这里
 
 
 

回复

222

帖子

2

TA的资源

一粒金砂(高级)

15
 
armink 发表于 2017-5-18 13:42
辛苦啦,一直有在关注这款开源软件,给其他朋友也有推荐过。

和你的那些项目比起来,我这个不算什么啦,只是个磨刀石罢了
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

16
 
好东西,多看看多看看,
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

17
 
太高大上,看不懂
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表