[发明专利]一种Makefile文件生成方法、装置、设备及介质在审
申请号: | 202010692361.2 | 申请日: | 2020-07-17 |
公开(公告)号: | CN111857725A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 刘文涛;吴睿振;张辉;沈欣舞 | 申请(专利权)人: | 山东云海国创云计算装备产业创新中心有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/73;G06F16/16 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 孙晓红 |
地址: | 250001 山东省济南市自由贸易试验*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 makefile 文件 生成 方法 装置 设备 介质 | ||
1.一种Makefile文件生成方法,其特征在于,包括:
利用预设的语法格式在存储源文件的文件夹中创建bulid.mk文本文件;其中,所述源文件与软件项目相对应,所述bulid.mk文本文件中包括目标集合;
创建宏配置文件及通用配置文件;其中,所述宏配置文件用于表示所述目标集合中的目标文件是否进行编译,所述通用配置文件用于配置编译条件集合和头文件集合;
遍历所有所述文件夹中的所述bulid.mk文本文件,结合所述宏配置文件及所述通用配置文件对所述bulid.mk文本文件进行解析,得到所述目标文件及所述目标文件的编译信息;
根据所述目标文件及所述目标文件的编译信息生成与所述软件项目对应的Makefile文件。
2.根据权利要求1所述的Makefile文件生成方法,其特征在于,结合所述宏配置文件及所述通用配置文件对所述bulid.mk文本文件进行解析,包括:
根据所述宏配置文件从当前文件夹的所述bulid.mk文本文件中抽取所述目标文件和需要继续遍历的子文件夹;
结合所述宏配置文件、所述通用配置文件中的所述编译条件集合和所述头文件集合解析所述目标文件的编译信息;
对需要继续遍历的子文件夹中的所述bulid.mk文本文件执行所述抽取所述目标文件和需要继续遍历的子文件夹的步骤,直至子文件夹的所述bulid.mk文本文件中仅包含目标文件且完成对所述目标文件的解析为止。
3.根据权利要求2所述的Makefile文件生成方法,其特征在于,在结合所述宏配置文件、所述通用配置文件中的所述编译条件集合和所述头文件集合解析所述目标文件的编译信息之后,还包括:
在所述当前文件夹中创建tmp.mk文件,利用所述tmp.mk文件记录解析出的所述目标文件的编译信息;
相应地,根据所述目标文件及所述目标文件的编译信息生成与所述软件项目对应的Makefile文件,包括:
利用所有的所述tmp.mk文件合成所述Makefile文件。
4.根据权利要求1至3任一项所述的Makefile文件生成方法,其特征在于,结合所述宏配置文件及所述通用配置文件对所述bulid.mk文本文件进行解析,包括:
利用python脚本语言结合所述宏配置文件及所述通用配置文件对所述bulid.mk文本文件进行解析。
5.根据权利要求4所述的Makefile文件生成方法,其特征在于,在利用python脚本语言结合所述宏配置文件及所述通用配置文件对所述bulid.mk文本文件进行解析时,还包括:
利用所述python脚本语言查找所述文件夹中的错误;其中,所述错误包括所述bulid.mk文本文件中不符合所述语法格式的书写错误、所述bulid.mk文本文件中所涉及的文件不存在、所述bulid.mk文本文件中的文件名重合、所涉及的子文件夹中缺失所述bulid.mk文本文件中的任意一种或任意多种。
6.根据权利要求5所述的Makefile文件生成方法,其特征在于,在利用所述python脚本语言查找所述文件夹中的错误之后,还包括:
发出所述文件夹中存在错误的提示。
7.根据权利要求1所述的Makefile文件生成方法,其特征在于,在利用预设的语法格式在存储源文件的文件夹中创建bulid.mk文本文件之后,还包括:
在预设文件夹的所述bulid.mk文本文件中设置编译条件集合和头文件集合;其中,位于所述预设文件夹中的编译条件集合和头文件集合用于作用于所述预设文件夹。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东云海国创云计算装备产业创新中心有限公司,未经山东云海国创云计算装备产业创新中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010692361.2/1.html,转载请声明来源钻瓜专利网。