blob: d22151838af8a90fdb34184f90f56171754bf90c [file] [log] [blame]
#!/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;
}