一种构建编译系统的方法、一种编译系统及其构建装置的制作方法

文档序号:6575695阅读:145来源:国知局
专利名称:一种构建编译系统的方法、一种编译系统及其构建装置的制作方法
技术领域
本发明涉及移动通信终端软件开发技术,特别是涉及一种构建编译系统的 方法、 一种编译系统及其构建装置。
背景技术
目前,在移动通信终端的软件开发领域中,利用软件开发工具包(SDK, Software Development Kit)进行软件开发时,其构建方式主要是依靠开发人员 即用户自行编写的编译脚本文件。在通常情况下,用户编写代码的同时还必须 对代码模块自身的编译脚本进行编写维护。但是,编写、编译脚本的工作极其
繁瑣,需要用户了解甚至熟悉一门脚本语言,并且脚本语言出现问题不仅难于 调试而且重复劳动量大,这对用户来讲,要求颇高。另外,完全配置好的编译 脚本具有的功能也很单一,仅仅完成编:斧功能,不能加入更多的工具调用。 可见,造成目前困难现状的原因主要有以下两个
1) SDK开发中的软件开发和软件配置没有分开进行; 用户除了进行软件开发,还要负责编译脚本的编写等软件配置的工作。这
不仅分散用户的精力,也影响软件开发的效率。
2) 自行编写的编^^本功能有限,不具有扩展功能。
通常用户编写的编译脚本仅仅进行代码编译,如果需要加入新的代码模块 或新的工具调用,则需要重新编写编译脚本,工作量^艮大。
因此,在移动通信终端软件开发体系中,编写维护编译脚本比较困难。目 前迫切需要一种能够完善SDK开发方式的编译系统,减轻工程编译和管理的难 度。

发明内容
有鉴于此,本发明的主要目的在于提供一种构建编译系统的方法、 一种编 译系统及其构建装置,能减轻工程编译和管理的难度,提高软件开发的效率。
为达到上述目的,本发明公开了一种构建编译系统的方法,包括建立编 译系统的构建规则,配置编译环境,并设置用于校验用户入口参数、环境配置、 读取用户配置信息的功能模块;设置编译引擎以及用于输出编译系统编译结果 的输出模块。
其中,所述建立编译系统的构建规则为编译内部定义规则和流程,由用 户根据所定义的规则和流程并通过设置配置信息、扩展编译框架来建立编译系 统。所述配置编译环境为提取外部工具,供用户进行编译时调用。
上述方法中,所述设置编译引擎为采用Makefile脚本语言作为所构建的 编译系统的编译引擎,实现对编译操作的控制和处理。
为实现上述方法,本发明提供一种编译系统构建装置,包括规则构建模 块、编译环境配置模块、编译流程设置模块;其中,规则构建模块,用于建立 编译系统的构建规则;编译环境配置模块,用于配置编译环境;编译流程设置 模块,用于设置用来校验用户入口参数、环境配置、读取及处理用户配置信息 的功能模块;以及设置编译引擎以及用于输出编译系统的编译结果的输出模块。
上述装置中,所述规则构建模块具体用于实现构建编译系统的编译框架, 用户通过增加模块扩展编译框架。
相应的,本发明提供一种编译系统,包括初始化模块、入口模块、配置 信息模块、编译引擎、输出模块;其中,初始化模块,用于初始化编译环境;
入口模块,用于校验并提取用户输入的入口参数;配置信息模块,用于读 取用户设置的配置信息;编译引擎,用于处理所述配置信息,构建编译源文件、 调用外部工具以及控制编译流程;输出模块,将编译系统的编译结果输出到指 定位置。
其中,所述编译系统还包括日志管理模块,用于生成并输出日志信息。
5由以上技术方案可以看出,在移动通信终端软件体系中,本发明^是供一种
利用SDK进行软件开发的编译系统构建方法及装置,主要是通过采用引擎和配 置信息分离的方式搭建构建装置,并使用Makefile作为编译系统的引擎,采用 批处理脚本来初始化环境,并通过实用报表提取语言(perl, Practical Extraction and Report Language)脚本读取酉己置信息。
由于采用Makefile脚本编写编译引擎,所以在兼容先前建立的编译流程基 础上,还可实现升级,以将更多的编译工具加入编译引擎中,以进一步增强构 建装置的功能。这样,可避免用户每次都需要通过修改代码来编写相应的编译 脚本。同时,由于构建装置采用了perl脚本进行配置文件信息的读取,所以其格 式可以很灵活且简单,可做到完全没有语法,用户仅仅需要列出一些信息即可, 大大提高了软件开发效率。
可见,本发明为移动通信终端的软件开发提供更灵活、更方^f更的构建方式, 减轻工程编译和管理的难度,从而提高软件开发的效率。


图l为本发明构建编译系统的方法实现流程图; 图2为本发明构建编译系统的装置结构示意图; 图3为本发明编译系统的结构示意图。
具体实施例方式
本发明的基本思想在于通过建立编译系统的构建规则以及配置编译环境, 来构建编译框架。才艮据用户设置的配置信息并结合编译系统的编译逻辑来构建 编译系统以及实现其他工具的调用。
这里,所述建立编译系统的构建规则包括编译内部定义规则和流程,由 用户根据所定义的规则和流程并通过设置配置信息、扩展编译框架来建立编译 系统。
需要说明的是,Makefile为一种解释性脚本语言,由make工具解释运行。根据编译的特点方便调用工具进行源文件的编译并自动维护编译工作。
Makefile定义了一系列的规则来指定文件的编译顺序,是否需要重新编译,甚 至于进行更复杂的功能操作。Makefile需要按照某种语法进行编写,文件中需 要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的 依赖关系。并且,Makefile可实现自动化编译,即文件一旦写好只需要一个make 命令,整个过程便完全自动编if ,极大地提高了软件的开发效率。其中,make 是一个命令工具,是一个解释Makefile中指令的命令工具。
另夕卜,perl是一种可把工作简单化,同时又不失去处理困难问题能力的脚本 语言。它可以很容易操作数字、文本、文件、目录等,而且其读取的内容不必 含有语法甚至可以没有任何语法。这不仅减轻了用户的工作量,也提高了软件 开发的效率。
为使本发明上述目的、特征和优点能够更加明显易懂,下面结合附图和具 体实施例对本发明作进一步详细的说明。构建编译系统的方法实现流程如图l 所示其中,所述编译引擎为本实施例的核心部分,主要用于完成整个构建装 置的启动运行,以及根据编译系统的其他模块传入的信息对整个编译进行控制。 本实施例中,采用Makefile作为编译系统的编译引擎,该编译引擎本身具有一 定的逻辑架构,同时把构建装置的其他模块传过来的信息加入到自身逻辑架构 中。这里,构建及使用编译系统的主要步骤如下
步骤IOI,编译系统构建装置建立编译系统的构建规则; 这里,所述编译系统构建装置为本实施例用于构建编译系统的模块。由于 本实施例采用编译引擎和配置信息分离的方式来建立编译框架,即编译引擎的 编写由系统人员完成,配置信息由用户进行配置,因此编译系统构建装置通过 定义一个完整的可扩充的编译框架来建立编译系统先构建一个体现构建规则 的、包含一个模块或几个模块的编译框架,用户可根据所述构建规则在该编译 框架中增加多个模块。其中,所述可扩充的编译流程为编译系统的建立提供了 一个可扩充的功能框架模块,主要包括其它脚本或工具的调用。所述构建规 则提供了 一种在编译框架的基础上进行扩充的参照模式,例如在一个变量中增加多个模块名称,以增加多个对应的模块,该模块里面的代码则与编译框架中 的其他模块同样进行过编译,从而实现扩展。
步骤102,编译系统构建装置配置供用户调用的外部工具; 根据用户的机器配置,为用户提供编译引擎所依赖的外部工具,如各种编 译工具。并且,使用批处理脚本初始化编译环境,如编译工具的路径等。其中, 编译环境的初始化使用批处理程序,在批处理程序中设定几个关键变量供用户 维护,如本机编译工具的位置等。
步骤103,编译系统构建装置设置用于校验用户入口参数的入口模块; 编译系统构建装置通过perl脚本校验用户提供的入口参数和环境配置,并在 确认用户入口参数类型即入口参数是否有效后,将入口参数传给编译引擎。其 中,所述入口参数包括本次编译操作的模块名称,本次编译操作的流程;环 境配置包括编译工具的路径;入口参数类型是指入口参数是否有效,如使用 者可能输入有误时判定入口参数无效。
步骤104,编译系统构建装置设置用于读取用户配置信息的读取模块; 所述编译系统构建装置通过peri脚本来读取用户设置的配置信息,其中,所 述配置信息包括采用的编译工具、编译参数和源文件等。因配置信息比较简单, 仅需要编译的源文件列表和编译参数列表,故所述配置信息不必含有语法,主 要是对变量的赋值,如调用的编译工具等,只要编译引擎知道这些配置信息的 含义即可,从而减轻了用户的工作量,进而提高了软件开发的效率。
步骤105,编译系统构建装置设置编译系统的编译引擎,用于控制和处理编 译操作;
编译系统构建装置可采用Makefile作为编译系统的编译引擎,通过所述编 译引擎结合编译逻辑,以及根据所构建装置的其他模块如读取模块传入的信息 进行整个编译的控制。例如编译引擎调用编译工具如C语言编译器(GCC), 用于编译用户输入的源文件列表。由用户传入的配置信息如编译参数和编译源 文件,用于源文件的编译,以实现整个源代码的构建和调用其他工具如代码冲企 查。其中,用户在开发过程中进行配置的配置信息包括采用的编译工具如armcc
8或GCC、编译参数如-ol或是-o2、以及源文件名称列表等,其中,所述配置信 息可以做到尽量简单,只要编译系统能够获知即可。
其中,用户运行构建装置时,在完成环境初始化后,会启动编译引擎。这 里,所述编译引擎具有如下功能
1) 编译引擎将用户可能用到的操作分为若干个流程,以便在编译系统升级
时能够增加新的流程;
其中,所述若干个流程包括清除构建结果、增量式构建等。这里,编译 引擎中各流程的实现主要依靠Makefile,因为Makefile依赖目标节点,每个节点 都会完成一定的功能,几个节点组合起来可以成为一个流程。因此,在已构建 的编译系统中加入新的工具调用过程主要是通过加入新的节点来实现。如此, 还能够兼容用户以前的配置。例如所构建的编译系统增加了资源编译功能, 则可在编译引擎中,新增一个调用资源编译工具的流程,以此来实现编译系统 的资源编译功能。
2) 编译引擎能够实现自身的编译逻辑;
编译引擎通过将命令分割为多个组成,实现自身的编译逻辑。并且,每个 流程的编译逻辑是固定的,这是因为最终都是输出一条命令。其中,编译源文 件的流程是调用编译工具并传入编译参数和编译源文件。例如通过调用编译 工具,如GCC,用户传入配置的源文件和编译参数,最后产生编译结果。
3) 编译引擎来处理用户设置的配置信息;
在写入编译逻辑并由用户传入编译内容后,编译引擎根据用户配置信息控 制编译。其中,用户在软件开发过程中会设置一些配置信息,该配置信息属于 用户传入的编译内容,包括编译工具、编译参数和源文件等信息。另外,所 述配置信息可尽量简单,使编译系统能够获知即可。
步骤106,编译系统构建装置设置用于输出编译结果的输出模块。 其中,所述输出模块用于将源文件构建后的结果输出到指定位置,并将曰 志信息输出给用户查看。所述指定位置可由用户在配置信息时进行指定。此外, 所述日志信息是由编译系统在编译过程中生成的,用于记录操作过程中的告警信息等。
至此,编译系统的主要模块已构建完成,在具体的编译过程中可根据实际 的需要,对上述编译系统的主要模块进行选择,也在上述模块的基础进行增加,
主要是通过增加模块的配置来新增的应用。例如编译时,在输入的入口参数 中设定需要编译的模块。
因此,由系统人员通过编译系统构建装置为用户构建了上述编译系统,那 么,用户在运行时,输入的入口参数并交由编译系统进行验证,验证通过后采 用批处理程序对环境进行初始化如选择调用的编译工具、编译结果的存放路径 等,然后启动编译引擎。用户将其设置的配置信息交给编译引擎处理,由编译 引擎完成整个源文件的构建并调用其他工具如代码;险查的调用,来完成编译操 作,并将所述源文件构建后的编译结果,该编译结果包括可执行文件和中间 文件。
对于上述的各实施例,为了筒单描述,故将其都表述为一系列的动作组合, 但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。
为实现上述方法,本发明提供一种编译系统构建装置,如图2所示,包括 规则构建模块、编译环境配置模块、编译流程设置模块;其中,
规则构建模块,用于建立编译系统的构建规则;
编译环境配置模块,用于配置编译环境;
编译流程设置模块,用于设置用来校验用户入口参数、环境配置、读取及 处理用户配置信息的功能模块;以及设置编译引擎以及用于输出编译系统编译 结果的输出模块。
其中,所述规则构建模块具体用于实现构建编译系统的编译框架,用户 通过增加模块扩展编译框架。
这里,本发明还提供一种编译系统,如图3所示,包括初始化模块、入口 模块、配置信息模块、编译引擎、输出模块;其中,
初始化模块,用于初始化编译环境;入口模块,用于校验并提取用户输入的入口参数; 配置信息模块,用于读取用户设置的配置信息;
编译引擎,用于处理所述配置信息,构建编译源文件、调用外部工具以及 控制编译流程;
输出模块,用于将编译系统的编译结果输出到指定位置。 其中,所述编译系统还包括日志管理模块,用于生成并输出日志信息。 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详 述的部分,可以参见其他实施例的相关描述即可。以上所述,仅为本发明的较 佳实施例而已,只是用来说明和解释本发明,并非用于限定本发明的保护范围。 在本发明的精神和权利要求保护范围之内,对本发明所作的任何修改、等同替 换,都落入本发明的保护范围。
ii
权利要求
1、一种构建编译系统的方法,其特征在于,包括建立编译系统的构建规则,配置编译环境,并设置用于校验用户入口参数、环境配置、读取用户配置信息的功能模块;设置编译引擎以及用于输出编译系统编译结果的输出模块。
2、 根据权利要求l所述的构建编译系统的方法,其特征在于,所述建立编 译系统的构建身见则为编译内部定义规则和流程,由用户根据所定义的规则和流程并通过设置配 置信息、扩展编译框架来建立编译系统。
3、 根据权利要求l所述的构建编译系统的方法,其特征在于,所述配置编 译环境为提取外部工具,供用户进行编译时调用。
4、 根据权利要求l所述的构建编译系统的方法,其特征在于,所述设置编 译引擎为采用Makefile脚本语言作为所构建的编译系统的编译引擎,实现对编译操 作的控制和处理。
5、 一种编译系统构建装置,其特征在于,包括规则构建模块、编译环境 配置模块、编译流程设置模块;其中,规则构建模块,用于建立编译系统的构建规则; 编译环境配置4莫块,用于配置编译环境;编译流程设置模块,用于设置用来校验用户入口参数、环境配置、读取及 处理用户配置信息的功能模块;以及设置编译引擎以及用于输出编译系统的编 译结果的输出模块。
6、 根据权利要求5所述的编译系统构建装置,其特征在于,所述规则构建 模块具体用于实现构建编译系统的编译框架,用户通过增加模块扩展编译框架。
7、 一种编译系统,其特征在于,包括初始化模块、入口模块、配置信息 模块、编译引擎、输出模块;其中,初始化模块,用于初始化编译环境;入口模块,用于校验并提取用户输入的入口参数;配置信息模块,用于读取用户设置的配置信息;编译引擎,用于处理所述配置信息,构建编译源文件、调用外部工具以及 控制编译流程;输出模块,将编译系统的编译结果输出到指定位置。
8、 根据权利要求7所述的编译系统,其特征在于,所述编译系统还包括 日志管理模块,用于生成并输出日志信息。
全文摘要
本发明公开了一种构建编译系统的方法,包括建立编译系统的构建规则,配置编译环境,并设置用于校验并提取用户入口参数、环境配置、读取用户配置信息的功能模块;设置引擎以及用于输出编译系统编译结果的输出模块。相应的,本发明提供一种编译系统构建装置,包括规则构建模块、编译环境配置模块、编译流程设置模块。另外,本发明还提供一种编译系统,包括初始化模块、入口模块、配置信息模块、编译引擎、输出模块。因此,通过本发明能够减轻工程编译和管理的难度,提高软件开发的效率。
文档编号G06F9/45GK101667134SQ20091009394
公开日2010年3月10日 申请日期2009年9月23日 优先权日2009年9月23日
发明者一 杨 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1