联合编译的意义在于充分利用网格中的闲置电脑资源提高我们的编译效率。它主要由Agents和Coordinator Server组成。Agents主要作为工作机,分配出来的计算工作在这些电脑上完成。Coordinator Server负责分配工作,协调网络中的各个电脑的性能均衡。
联合编译的功能引入分为下面几个要素:
1. 使能或禁止联合编译功能;
2. 检查XGC是否存在;
3. 定义可用的进程数;
4. 中间编译文件;
5. 编译命令;
1.1. 使能或禁止联合编译的参数设定
对于MTK平台,可以通过命令行方式参数“-disable_ib”,“-no_ib”或“-bm”。我们可以通过查看脚本make2.pl确认。
} elsif ($ARGV[0] =~ /-disable_ib/i) {
$disable_ib = 1;
} elsif ($ARGV[0] =~ /-no_ib/i) {
$disable_ib = 1;
} elsif ($ARGV[0] =~ /-bm/i) {
$disable_ib = 1;
}
1.2. 确认联合编译环境
接着系统开始检查联合编译器以及系统是否支持联合编译,请看下面脚本的检查。首先,脚本执行命令“$exec_xgc_result = `XGConsole /NOLOGO /SILENT /NOWAIT tools//XGC_Test.xml 2>&1`;”,确认是否存在联合编译器。
my $no_of_proc=1;
my $exec_xgc_result=999;
# $exec_xgc_result = system("XGConsole /NOLOGO /SILENT tools//XGC_Test.xml /n");
$exec_xgc_result = `XGConsole /NOLOGO /SILENT /NOWAIT tools//XGC_Test.xml 2>&1`;
if ("$exec_xgc_result" ne "")
{
$exec_xgc_result=99;
# print "XGConsole not found";
} else
{
if (("$ENV{/"TE