[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/tools/chk_env.pl b/mcu/tools/chk_env.pl
new file mode 100644
index 0000000..d221518
--- /dev/null
+++ b/mcu/tools/chk_env.pl
@@ -0,0 +1,918 @@
+#!/usr/bin/perl
+use Net::SMTP;
+
+#********************************************************************
+# Global Vars for mail notification
+#********************************************************************
+my $Sender = uc(getlogin());;
+my $ToList = "MBJ06037".","."MBJ06026";
+my $CcList = "";
+my $smtp_server = "mtksmtp2.mtk.com.tw"; #172.21.100.20(192.168.160.24)
+my $ts_name = $ENV{"COMPUTERNAME"};
+my $user_domain = $ENV{"USERDOMAIN"};
+my $load_path = `cd`;
+chomp($load_path);
+my $log = "build\\$ARGV[3]\\log\\chk_env.log";
+my $log_flag = 0;
+my $Flag = $ARGV[2];
+print "*******************************************\n";
+print " Start checking MTK build environment......\n";
+print "*******************************************\n";
+#********************************************************************
+# checking OS version
+#********************************************************************
+if($ENV{OS} eq "Windows_NT")
+{
+ print "OS is Windows 2000 or XP. => [OK]\n";
+
+ if($Flag =~ /-customer/i){
+ $reading ="OS is Windows 2000 or XP. => [OK]\n";
+ if(-e "build\\$ARGV[3]\\log"){
+ open (LOG, "> $log") or warn "cannot open $log\n";
+ print LOG $reading;
+ $log_flag =1;
+ }
+ else{
+ warn "warning: There is no \\build folder.\n";
+ }
+ }
+}
+else
+{
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "Your OS should be Windows2000 or above!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "Your OS should be Windows2000 or above!\n";
+ exit(1);
+}
+
+#********************************************************************
+# checking ARM installation path
+#********************************************************************
+
+#&USAGE() if ($#ARGV != 1);
+my $makefile = "$ARGV[1]";
+#my $Flag = $ARGV[2];
+
+open(MAK,"<$makefile") or die "$!";
+while(<MAK>)
+{
+ chomp;
+ if(/^COMPILER\s*=\s*(\w+)+?/i)
+ {
+ #print $1;
+ $compilerName = $1;
+ if($compilerName =~ /RVCT/i)
+ {
+ print "Compiler in makefile is RVCT!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="Compiler in makefile is RVCT!\n";
+ print LOG $reading;
+ }
+ $rvctflag = 1; ##
+ &ChkRVCTenv($makefile,$Flag);
+ }
+ elsif($compilerName =~ /GCC/i){
+ print "Compiler check skip GCC!!\n";
+ last;
+ }
+ else
+ {
+ if ($Flag =~ /-customer/i) # ADS check only for customers
+ {
+ &ChkADSenv($makfile,-customer);
+ }
+ elsif($Flag =~ /-internal/i)
+ {
+ print "Compiler in makefile is Not RVCT!!\n";
+ last;
+ }
+ }
+ }
+}
+
+
+#********************************************************************
+# checking ARM compiler version & build number
+#********************************************************************
+sub ChkADSenv
+{
+ my $optiondir = "$ARGV[0]\\option.mak";
+ open(OPTION,"<$optiondir");
+ if (defined($ENV{ARMHOME}) && ($ENV{ARMHOME} =~ /program\sFiles/i))
+ {
+ $ENV{ARMHOME} =~ s/m\sFiles/~1/i;
+ }
+
+ while(<OPTION>)
+ {
+ chomp;
+ if(/DIR_ARM(\s*)=(\s*)(.*?ADSV1_2)+?/i)
+ {
+ my $arm_path = $3;
+ if ( defined($ENV{ARMHOME}) && (lc($ENV{ARMHOME}) eq lc($arm_path)) )
+ {
+ print "ARM ADS installation path is correct. => [OK]\n";
+ if($log_flag == 1){
+ $reading ="ARM ADS installation path is correct. => [OK]\n";
+ print LOG $reading;
+ }
+ last;
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "ARM installation path is inconsistent with the path defined in makefile[option.mak].\n" .
+ "Current ARM installation path: $ENV{ARMHOME}.\n" .
+ "In \"$optiondir\", ARM path is: $arm_path.\n" .
+ "\nThe different path will cause a compiling error!\n" .
+ "You should make them consistent\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "ARM ADS installation path is inconsistent with the path defined in makefile[option.mak].\n";
+ print "Current ARM installation path: $ENV{ARMHOME}.\n";
+ print "In \"$optiondir\", ARM path is: $arm_path.\n";
+ print "\nThe different path will cause a compiling error!\n";
+ print "You should make them consistent\n";
+ exit(1);
+ }
+ }
+ }
+ close(OPTION);
+
+ chdir ("$arm_path");
+#**************************************************original
+my $arm_compiler = 0;
+foreach (split(/[\r\n]+/, `armcc -h 2>&1`))
+{
+ chomp;
+ if(/\bADS1.2/i)
+ {
+ print "ARM version is correct. => [OK]\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="ARM version is correct. => [OK]\n";
+ print LOG $reading;
+ }
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 >= 848)
+ {
+ print "The build number of ARM ADS is correct. => [OK]\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="The build number of ARM ADS is correct. => [OK]\n";
+ print LOG $reading;
+ }
+ $arm_compiler = 1;
+ last;
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "The build number of ARM should be at least 848!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "The build number of ARM should be at least 848!\n";
+ exit(1);
+ }
+ }
+ }
+ else
+ {
+ next;
+ }
+}
+
+if($arm_compiler == 0)
+{
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "ARM should be ARM1.2 [Build 848](above) or RVCT!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "ARM ADS should be ARM1.2 [Build 848](above) or RVCT!\n";
+ exit(1);
+}
+}
+#********************************************************************
+# checking ARM license
+#********************************************************************
+unless ($ARGV[2] =~ /-customer/)
+{
+if ($ENV{"USERDOMAIN"} =~ /MBJ/i)
+{
+ my $arm_license = 0;
+ my $arm_var_name = "ARMLMD_LICENSE_FILE";
+ my @env_key = keys(%ENV);
+
+ my $count = 0;
+ foreach $_(@env_key)
+ {
+ if($_ =~ /$arm_var_name/i)
+ {
+ my @arm_var_value = split(";",$ENV{$_});
+ for (my $i = 0; $i < @arm_var_value; $i++)
+ {
+ if ($ts_name =~ /^BJSTS\d\d$/i)
+ {
+ if (($arm_var_value[$i] =~ /^\s*C:\\Program Files\\ARM\\ADSv1_2\\licenses\\license\.dat$/i) ||
+ ($arm_var_value[$i] =~ /^\s*C:\\Progra~1\\ARM\\ADSv1_2\\licenses\\license\.dat$/i))
+ {
+ for (my $j = $i + 1; $j < @arm_var_value; $j++)
+ {
+ if ($arm_var_value[$j] =~ /^\s*8224\@bjslic01$/i)
+ {
+ print "ARM license setting is correct. => [OK]\n";
+ $arm_license = 1;
+ last;
+ }
+ }
+ }
+ if ($arm_license == 1)
+ {
+ last;
+ }
+
+ }
+ else
+ {
+ if ($arm_var_value[$i] =~ /^\s*8224\@bjslic01$/i)
+ {
+ print "ARM license setting is correct. => [OK]\n";
+ $arm_license = 1;
+ last;
+ }
+ }
+ }
+
+ if ($arm_license == 0)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "Please checking your ARM license setting!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ print "Please checking your ARM license setting!\n";
+ #exit(1);
+ last;
+ }
+ else
+ {
+ last;
+ }
+ }
+
+ $count++;
+ if($count == ($#env_key+1))
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "Please checking your ARM license setting!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ print "Please checking your ARM license setting!\n";
+ exit(1);
+ }
+ }
+}
+}
+elsif ($ARGV[2] =~ /-customer/)
+{
+ my $arm_var_name = "ARMLMD_LICENSE_FILE";
+ my @env_key = keys(%ENV);
+
+ foreach $_(@env_key)
+ {
+ if($_ =~ /$arm_var_name/i)
+ {
+ my $arm_para = $ENV{$_};
+ if (($arm_para =~ /^\s*C:\\Program Files\\ARM\\ADSv1_2\\licenses\\license\.dat/i) ||
+ ($arm_para =~ /^\s*C:\\Progra~1\\ARM\\ADSv1_2\\licenses\\license\.dat/i))
+ {
+ if (-e "C:\\Program Files\\ARM\\ADSv1_2\\licenses\\license\.dat")
+ {
+ print "License is existed!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="License is existed!\n";
+ print LOG $reading;
+ }
+ }
+ else
+ {
+ print "License is not existed!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="License is existed!\n";
+ print LOG $reading;
+ }
+ }
+ }
+ else
+ {
+ print "C:\\Program Files\\ARM\\ADSv1_2\\licenses\\license\.dat is not existed!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="C:\\Program Files\\ARM\\ADSv1_2\\licenses\\license\.dat is not existed!\n";
+ print LOG $reading;
+ }
+ }
+ }
+ }
+}
+#********************************************************************
+# checking Active perl version
+#********************************************************************
+if($] >= 5.008006)
+{
+ print "Perl version is $] . => [OK]\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="Perl version is $] . => [OK]\n";
+ print LOG $reading;
+ }
+}
+else
+{
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "Perl version is too low.\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "Perl version is not correct , please update to 5.8.6 \n";
+ exit(1);
+}
+
+#********************************************************************
+# checking shell(modification)
+#********************************************************************
+my @path = split(";",$ENV{"PATH"});
+
+foreach my $path (@path)
+{
+ if(-d $path)
+ {
+ $path = "\"$path\"";
+ open(TEMPHANDLE,"<dir /B $path |");
+ while(<TEMPHANDLE>)
+ {
+ chomp;
+ if($_ =~ /^sh\.exe\b/i)
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "sh.exe founded in: $path\nplease remove it\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "sh.exe founded in: $path\nplease remove it\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="sh.exe founded in: $path\nplease remove it\n";
+ print LOG $reading;
+ }
+ exit(1);
+ }
+ }
+ close(TEMPHANDLE);
+ }
+}
+print "Shell is cmd.exe. => [OK]\n";
+if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="Shell is cmd.exe. => [OK]\n";
+ print LOG $reading;
+}
+
+#********************************************************************
+# checking Excel version
+#********************************************************************
+if ($ENV{"INLSF"} eq "")
+{
+ use Win32::OLE;
+ my $excel = Win32::OLE->new('excel.Application');
+ if($excel->version >= 9)
+ {
+ print "Excel version is 2000 or above. => [OK]\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="Excel version is 2000 or above. => [OK]\n";
+ print LOG $reading;
+ }
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "Your Excel should be 2000+!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "Your Excel should be 2000+!\n";
+ exit(1);
+ }
+}
+
+#********************************************************************
+# checking make.exe version
+#********************************************************************
+if ($ARGV[2] =~ /-customer/){
+ open(tfile, "pcore\\tools\\make.exe -v |") || die "Cannot open make.exe";
+ while(<tfile>){
+ if($_ =~ /^\s*GNU\s*Make\s*(.*)/i){
+ $reading = $1;
+ if($reading == "3.81"){
+ print LOG "make.exe version is ".$reading." [OK]\n";
+ }
+ else{
+ print "ERROR : make.exe version $reading is wrong,please update to 3.81 !!\n";
+ print LOG "ERROR : make.exe version(".$reading.") is wrong, please update it to 3.81 !!\n";
+ exit(1);
+ }
+ }
+
+ }
+ close(tfile);
+
+}
+
+#********************************************************************
+# checking MSYS version
+#********************************************************************
+if ($ARGV[2] =~ /-customer/){
+ open(tfile, "pcore\\tools\\MSYS\\bin\\make.exe -v |") || die "Cannot open make.exe";
+ while(<tfile>){
+ if($_ =~ /^GNU\sMake\sversion\s(.*),/i){
+ $reading = $1;
+ if($reading == "3.79.1"){
+ print LOG "pcore\\tools\\MSYS\\bin\\make.exe version is ".$reading." [OK]\n";
+ }
+ else{
+ print "ERROR : pcore\\tools\\MSYS\\bin\\make.exe version $reading is wrong,please update to 3.79.1 !!\n";
+ print LOG "ERROR : pcore\\tools\\MSYS\\bin\\make.exe version(".$reading.") is wrong, please update it to 3.79.1 !!\n";
+ exit(1);
+ }
+ }
+
+ }
+ close(tfile);
+
+}
+
+print "*******************************************\n";
+print " MTK build environment is ready!\n";
+print "*******************************************\n";
+close LOG;
+sub SendEmailNotify
+{
+ my ($to_list, $cc_list, $mail_subject, $mail_content) = @_;
+ my $msg = <<__EOFNOTIFY
+To: $to_list
+Cc: $cc_list
+Subject: $mail_subject
+From: $Sender
+
+Dear All,
+
+$mail_content
+
+Best Regards,
+
+__EOFNOTIFY
+;
+ my $smtp = Net::SMTP->new($smtp_server);
+ $smtp->mail($Sender);
+ map { $smtp->to($_); } split(/,/, $to_list);
+ map { $smtp->cc($_); } split(/,/, $cc_list);
+ $smtp->data($msg);
+ $smtp->quit;
+}
+
+
+sub USAGE
+{
+ print <<"__EOFUSAGE";
+
+USAGE: chk_env Option_MF_Path Project.mak <-build>
+__EOFUSAGE
+ exit 1;
+}
+#********************************************************************
+# Subroutine
+#********************************************************************
+sub ChkRVCTenv
+{
+ my ($makefile,$flag) = @_;
+ my $rvctversion = 0;
+ my $path_569 = "C:\\Program Files\\ARM\\RVCT\\Programs\\3.1\\569_init\\win_32-pentium";
+ open(MAK,"<$makefile") or die "$!";
+ while(<MAK>)
+ {
+ chomp;
+ if(/^RVCT_VERSION\s*=\s*(\w+)+?/i)
+ {
+ if($1 =~ /V31/i)
+ {
+ print "RVCT VERSION in makefile is correct!\n";
+ if(($flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="RVCT VERSION in makefile is correct!\n";
+ print LOG $reading;
+ }
+ $rvctversion = 1;
+ }
+ else
+ {
+ print "RVCT VERSION in makefile is wrong!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="RVCT VERSION in makefile is wrong!\n";
+ print LOG $reading;
+ }
+ last;
+ }
+ }
+ }
+ close MAK;
+ if ($rvctversion == 1)
+ {
+ if ($flag =~ /-internal/i)
+ {
+ if((exists $ENV{"RVCT31INC"})&&(exists $ENV{"RVCT31BIN"})&&(exists $ENV{"RVCT31LIB"}))
+ {
+# system("pause");
+ my $toolpath = $ENV{"RVCT31BIN"};
+ #print $toolpath;
+ my $chkarmccres = &ChkCompiler($toolpath,ARMCC,$flag);
+ my $chktccres = &ChkCompiler($toolpath,TCC,$flag);
+ my $chkarmlinkres = &Chkarmlink($toolpath,,$flag);
+ my $chkarmfromelf = ChkFromelf($toolpath,,$flag);
+ my $chkarmar = ChkArmar($toolpath,,$flag);
+ if(-e $path_569){
+ print "Start to check ARM B569 :\n";
+ $reading ="Start to check ARM B569 :\n";
+ print LOG $reading;
+ my $chkarmccres_569 = &ChkCompiler($path_569,ARMCC,$flag);
+ my $chktccres_569 = &ChkCompiler($path_569,TCC,$flag);
+ my $chkarmlinkres_569 = &Chkarmlink($path_569,,$flag);
+ my $chkarmfromelf_569 = ChkFromelf($toolpath,,$flag);
+ my $chkarmarres_569 = &ChkArmar($path_569,$flag);
+ }
+ if (($chkarmccres == 1)&&($chkarmlinkres == 1)&&($chktccres == 1)&&($chkarmfromelf==1)&&($chkarmar == 1)&&($chkarmccres_569 == 1)&&($chkarmlinkres_569 == 1)&&($chktccres_569 == 1)&&($chkarmarres_569 == 1)&&($chkarmfromelf_569==1))
+ {
+ print "ARM RVCT31 environment is correct!\n";
+ }
+ }
+ }
+ elsif ($flag =~ /-customer/i)
+ {
+ my $toolpath = `cd`;
+ my $chkarmccres = &ChkCompiler($toolpath,ARMCC,$flag);
+ my $chktccres = &ChkCompiler($toolpath,TCC,$flag);
+ my $chkarmlinkres = &Chkarmlink($toolpath,,$flag);
+ my $chkarmfromelf = ChkFromelf($toolpath,,$flag);
+ my $chkarmar = ChkArmar($toolpath,,$flag);
+
+ if (($chkarmccres == 1)&&($chkarmlinkres == 1)&&(chktccres == 1)&&($chkarmfromelf==1)&&($chkarmar == 1))
+ {
+ print "ARM RVCT31 environment is correct!\n";
+ if($log_flag == 1){
+ $reading ="ARM RVCT3.1 environment is correct!\n";
+ print LOG $reading;
+ }
+ }
+ }
+ else
+ {
+ print "The Environment configuration is unmatched!\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="The Environment configuration is unmatched!\n";
+ print LOG $reading;
+ }
+ }
+ }
+}
+
+
+sub ChkCompiler
+{
+ my ($path,$compiler,$flag_compiler) = @_;
+ my $arm_compiler = 0;
+ chdir($path);
+
+ if ($flag_compiler =~ /-customer/i)
+ {
+ foreach (split(/[\r\n]+/, `$compiler -h 2>&1`))
+ {
+ chomp;
+ #print $compiler;
+ if(/\bRVCT3.1/i)
+ {
+ print $compiler." version is RVCT3.1 [OK] , ";
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 >= 569)
+ {
+ print "Build number is $2 [OK] .\n";
+ if($log_flag == 1){
+ $reading ="Build number is $2 [OK] .\n";
+ print LOG $reading;
+ }
+ $arm_compiler = 1;
+ &SetFlagFile(569,$load_path);
+ last;
+ }
+ }
+ }
+ elsif(/\bRVCT4.0/i)
+ {
+ print $compiler." version is RVCT4.0 [OK] , ";
+ if($log_flag == 1){
+ $reading =$compiler." version is RVCT4.0 [OK] ,\n";
+ print LOG $reading;
+ }
+ }
+ else
+ {
+ print "ARMCC version is not RVCT3.1 or RVCT4.0\n";
+ if($log_flag == 1){
+ $reading ="ARMCC version is not RVCT3.1 or RVCT4.0\n";
+ print LOG $reading;
+ }
+ last;
+ }
+ }
+ }
+ elsif ($flag_compiler =~ /-internal/i)
+ {
+ foreach (split(/[\r\n]+/, `$compiler -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print $compiler." version is RVCT3.1 [OK] , ";
+
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 == 569)
+ {
+ print "Build number is $2 [OK] .\n";
+ $arm_compiler = 1;
+ last;
+ }
+ elsif($2 >= 1021)####
+ {
+ print "Build number is $2 [OK] .\n";
+
+ $arm_compiler = 1;
+ last;
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "The build number of ".$compiler." should be at least 1021!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "The build number of".$compiler." should be at least 1021!\n";
+
+ exit(1);
+ }
+ }
+ }
+ else
+ {
+ print "ARMCC version is not RVCT3.1\n";
+
+ last;
+ }
+ }
+ }
+ return $arm_compiler;
+}
+
+sub ChkArmar
+{
+ my $armar = 0;
+ my ($path,$flag_armar) = @_;
+ chdir($path);
+ foreach (split(/[\r\n]+/, `armar -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print "ARMAR version is RVCT3.1 [OK] , ";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="ARMAR version is RVCT3.1 [OK] , ";
+ print LOG $reading;
+ }
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 >= 1021)####
+ {
+ print "Build number is $2 [OK] .\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)) {
+ $reading ="Build number is $2 [OK] .\n";
+ print LOG $reading;
+ }
+ $armar = 1;
+ last;
+ }
+ else
+ {
+ print "The build number of ARMAR should be at least 1021! => [ERROR]\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)) {
+ $reading ="The build number of ARMAR should be at least 1021! => [ERROR]\n";
+ print LOG $reading;
+ }
+ #exit(1);
+ last;
+ }
+ }
+ }
+ else
+ {
+ print "ARMAR version is not RVCT3.1\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)) {
+ $reading ="ARMAR version is not RVCT3.1\n";
+ print LOG $reading;
+ }
+ last;
+ }
+ }
+ return $armar;
+}
+
+sub ChkFromelf
+{
+ my $arm_elf = 0;
+ my ($path,$flag_elf) = @_;
+ chdir($path);
+ if ($flag_elf =~ /-customer/i) #customers
+ {
+ foreach (split(/[\r\n]+/, `fromelf -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print "FROMELF version is RVCT3.1 [OK] , ";
+ if($log_flag == 1){
+ $reading ="FROMELF version is RVCT3.1 [OK] , \n";
+ print LOG $reading;
+ }
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 >= 569)####
+ {
+ print "Build number is $2 [OK] .\n";
+ if($log_flag == 1){
+ $reading ="Build number is $2 [OK] .\n";
+ print LOG $reading;
+ }
+ $arm_elf = 1;
+ last;
+ }
+ }
+ }
+ }
+ }
+ elsif ($flag_elf =~ /-internal/i)
+ {
+ foreach (split(/[\r\n]+/, `fromelf -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print "FROMELF version is RVCT3.1 [OK] , ";
+
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 == 569)####
+ {
+ print "Build number is $2 [OK] .\n";
+ $arm_link = 1;
+ last;
+ }
+ elsif($2 >= 1021)####
+ {
+ print "Build number is $2 [OK] .\n";
+ $arm_elf = 1;
+ last;
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "The build number of FROMELF should be at least 1021!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "The build number of FROMELF should be at least 1021!\n";
+ exit(1);
+ }
+ }
+ }
+ else
+ {
+ print "FROMELF version is not RVCT3.1\n";
+ last;
+ }
+ }
+ }
+ return $arm_elf;
+}
+
+sub Chkarmlink
+{
+ my $arm_link = 0;
+ my ($path,$flag_linker) = @_;
+ chdir($path);
+ if ($flag_linker =~ /-customer/i) #customers
+ {
+ foreach (split(/[\r\n]+/, `armlink -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print "ARMLINK version is RVCT3.1 [OK] , ";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="ARMLINK version is RVCT3.1 [OK] , ";
+ print LOG $reading;
+ }
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 >= 569)####
+ {
+ print "Build number is $2 [OK] .\n";
+ if(($Flag =~ /-customer/i) && ($log_flag == 1)){
+ $reading ="Build number is $2 [OK] .\n";
+ print LOG $reading;
+ }
+ $arm_link = 1;
+ last;
+ }
+ }
+ }
+ }
+ }
+ elsif ($flag_linker =~ /-internal/i)
+ {
+ foreach (split(/[\r\n]+/, `armlink -h 2>&1`))
+ {
+ chomp;
+ #print $_;
+ if(/\bRVCT3.1/i)
+ {
+ print "ARMLINK version is RVCT3.1 [OK] , ";
+ if(/\bBuild(\s)*(\d+)/)
+ {
+ if($2 == 569)####
+ {
+ print "Build number is $2 [OK] .\n";
+
+ $arm_link = 1;
+ last;
+ }
+
+ elsif($2 >= 1021)####
+ {
+ print "Build number is $2 [OK] .\n";
+
+ $arm_link = 1;
+ last;
+ }
+ else
+ {
+ if ($user_domain =~ /MBJ/i)
+ {
+ my $subject = "[$ts_name: Compile Enviroment error]";
+ my $content = "The build number of ARMLINK should be at least 1021!\n";
+ #&SendEmailNotify($ToList, $CcList, $subject, $content);
+ }
+ print "The build number of ARMLINK should be at least 1021!\n";
+
+ exit(1);
+ }
+ }
+ }
+ else
+ {
+ print "ARMLINK version is not RVCT3.1\n";
+ last;
+ }
+ }
+ }
+ return $arm_link;
+}
+
+sub SetFlagFile
+{
+ my($buildNo,$path) = @_;
+# print "buildno= $buildNo";
+ my $file = "$path\\pcore\\tools\\RVCTBuildNo.tmp";
+# print "file =$file\n";
+ open (FH,">$file") or die "$!";
+ print FH "RVCT_CUS_BUILD_NO = ".$buildNo;
+ close FH;
+}