您的位置:首页 > 产品设计 > UI/UE

LocalBuild 工作脚本

2009-11-08 18:53 183 查看
LocalBuild 工作脚本

#version: 2008-10-25

#***************************** CONSTANTS ******************************#
my $SUCCESS = 1;
my $FAILURE = 0;
my $TRUE = 1;
my $FALSE = 0;

my $IL93_SERVER = "IL93";
my $CA25_LINUX_SERVER   = "CA25_LINUX";
my $CA25_SOLARIS_SERVER = "CA25_SOLARIS";

my $WTT_NAME       = "Watertown";
my $VGS_NAME       = "Vegas";
my $RASP_NAME      = "Raspberry";
my $CORAL_NAME     = "Coral";
my $LANDSCAPE_NAME = "Landscape";

#***************************** GLOBAL VARIABLES ******************************#
my $usrID    = "a21755";  #change to your CoreID
my $usrName  = "Ming.He"; #change to your name

#my $BUILD_SERVER = $IL93_SERVER;
#my $BUILD_SERVER = $CA25_LINUX_SERVER;
my $BUILD_SERVER = $CA25_SOLARIS_SERVER;

my $BASE_VER = "31R";
my $DEST_VER = "52R";
my @g_configSpecAry = ();

#my $bDEBUG = $TRUE;
my $bDEBUG = $FALSE;

#my $bBuild_DebugVer = $TRUE;
my $bBuild_DebugVer = $FALSE;  #build debug version of obigo/obigo_browser and phone code

my $startPhase = "1";  #starting phase of this script
my $bSendToTeam = $TRUE;  #Transend the build to team instead of myself
my $bApplyMotLabel = $FALSE;  #Apply_MOT label to obigo

my $SENDCEDAT_CMD      = "/home/$usrID/cedat/sendcedat";
my $SENDCEDAT_UNIX_CMD = "/home/$usrID/cedat/unix/sendcedat";

my @labelName_wtt = ("61R",                   #Moto baseline version
"WATER2_X_00",           #Moto baseline label
"TELECA_OBIGO_P5_3.20",  #Teleca baseline version
"",                      #comments
"1",                     #starting phase of this product
);
my @labelName_vgs = ("61R",
"VEGAS2_X_00",
"TELECA_OBIGO_P6_3.20",
"",
"1",                    #starting phase of this product
);

my @labelName_rasp = ("24R",
"RASPB2_X_00",
"TELECA_OBIGO_P8_1.14",
"",
"1",                   #starting phase of this product
);

my $labelName_coral = "CORAL2_X_00";

#++++++++++++++++++++++++++++++
my @baselineDepAry = (
);

#---------------------------------------------------------------------#
my $branchName   = "";
my $baselineVer = "";
my $telecaRelVer = "";

my $comment     = "";

#my $DEST_VER_NUM = "";  #($DEST_VER=~m//d+/ig)[0];

my $SOUR_BUILD_NAME = "standalone_env_$BASE_VER";
my $DEST_BUILD_NAME = "standalone_env_$DEST_VER";
my $LOCAL_BUILD_HOME = "/home/$usrID/teleca_build_env/";

my $SOUR_CODE_FNAME = "/"c source files/"";
my $BRH_FNAME = "/"brh files/"";
my $TRANS_FOLDER = "/vobs/k_apps/code/TransFolder";

my $buildCmd = "";
my $buildSript = "";

my $copyCmd;
if ($BUILD_SERVER eq $IL93_SERVER) {
$copyCmd = "/usr/bin/cp";
} elsif ($BUILD_SERVER eq $CA25_LINUX_SERVER || $BUILD_SERVER eq $CA25_SOLARIS_SERVER) {
$copyCmd = "/bin/cp";
} else {
die "Unknown build server!";
}

my $motLabelName = "TELECA_OBIGO_$telecaRelVer/_MOT";
my $phoneCodeName = "";  #"phone_$comment.shx";

my $obigoPath = "/vobs/k_apps/thirdpty/brew/teleca/obigo/";

my $DEBUG_ON = "";
if ($bBuild_DebugVer) {
$DEBUG_ON = "DEBUG_ON=1";
}

my $BuildVegasFlag = "";
my $ProductName = $WTT_NAME;

#flags passed in command line
my $bTrans = $TRUE;

my $bSetCS = $FALSE;
my $bOnlySetCS = $FALSE;

my $bBuildCS = $FALSE;
my $sour_csFName = "";

my $bBuildIPhoneExt = $FALSE;

#*****************************AUXILIARY  FUNCTIONS****************************#
sub DEBUG_INFO {
#if ($bDEBUG)
if (1)
{
if (defined(@_)) {
print "@_/n";
} else {
print "Not Defined!/n";
}
}
}
sub D {
DEBUG_INFO(@_);
}

sub CCase_INFO {
#print "bDEBUG is: $bDEBUG/n";
my $result;

if ($bDEBUG)
{
print "@_/n/n";
return $SUCCESS;
}
else
{
print "@_/n/n";
if (0 == system("@_")) {
return $SUCCESS;
} else {
printf("Error occurs when executing command: @_");
#die;
return $FAILURE;
}
}
}

sub LOG_FILE {
my($fileName, $bAppData, @logPara) = @_;  #bAppData -- append date to file or overwrite file
#DEBUG_INFO($fileName, $bAppData);

$fileName =~ s'//'/'ig;
my @pathAry = split('/', $fileName);
my $tmpPath = "";
for (my $i=0; $i<scalar(@pathAry)-1; $i++) {
$tmpPath .= $pathAry[$i] . '/';
#DEBUG_INFO($tmpPath);
mkdir($tmpPath, 0111) if (! -d $tmpPath);
}

if ($bAppData) {
$fileName = ">> " . $fileName;  #append data
} else {
$fileName = "> " . $fileName;
}

open(tmpLogFile, $fileName) || die "Cannot open log file: $fileName!/n";
foreach (@logPara) {
print tmpLogFile $_;
print tmpLogFile "/n";
}
close(tmpLogFile);
}

sub DIED_AT {
my($dieInfo, ) = @_;  #$dieInfo=~s" |//"_"ig;

#    my $dieInfoFName = "/home/$usrID/$dieInfo";
#    LOG_FILE($dieInfoFName, $FALSE, " /n");
#    CCase_INFO("gzip $dieInfoFName ; ");
#    TransToMe("$dieInfoFName.gz");
#    #CCase_INFO("rm $dieInfoFName.gz ");

my $mailCmd = "mail -t $usrID/@motorola.com/r/n";
#CCase_INFO($mailCmd);

$mailCmd .= "Subject:Build Fails in $0!/r/n";
#$mailCmd .= $dieInfo;
$mailCmd .= ".";
CCase_INFO($mailCmd);

$mailCmd = ".";
CCase_INFO($mailCmd);

#die "$dieInfo";
}

sub trim($) {
my $string = shift;
$string =~ s/^/s+//;
$string =~ s//s+$//;
return $string;
}

sub isEmptyStr {
my ($str) = @_;
#D("str is: $str");

my $result = 0;
if (!defined($str) || $str eq ""
|| $str=~m/^/s+$/ig
)
{
$result = 1;
}

return $result;
}

#---------------------------- TRANSEND BY CEDAT ------------------------------------
sub TransToMe {
my($fileName) = @_;

return TransTo($fileName, $usrName,  "$usrID/@motorola.com");
#CCase_INFO("cd $fileFolder; sendcedat -N $usrName -E $usrID/@motorola.com -n MOTOROLA -c $usrName -e $usrID/@motorola.com -f $fileName ");
}

sub TransToTeam {
my($fileName) = @_;

return TransTo($fileName, "AMS & Browser Team",  "AMSBRWS/@motorola.com");
#CCase_INFO("cd $fileFolder; sendcedat -N $usrName -E $usrID/@motorola.com -n MOTOROLA -c /"AMS & Browser Team/" -e AMSBRWS/@motorola.com -f $fileName ");
}

sub TransTo {
my($fileName, $receiverName, $receiverEMail) = @_;
my ($fileFolder, ) = ();
my $result = $TRUE;

if ($TRUE==$bTrans && $FALSE==$bDEBUG) {
die "/nInvalid file name $fileName to trans!/n" if (!defined($fileName) || ! -e $fileName);
}

$receiverName = $usrName if (!defined($receiverName));
$receiverEMail = "$usrID/@motorola.com" if (!defined($receiverEMail));

$fileFolder = substr($fileName, 0, rindex($fileName, '/'));
$fileName = substr($fileName, rindex($fileName, '/')+1);
DEBUG_INFO("Folder Name: $fileFolder/tFile Name: $fileName/tReceiver Name: $receiverName/tReceiver Email: $receiverEMail ");

if ($TRUE == $bTrans) {
my $sendCEDAT;

if (($BUILD_SERVER eq $IL93_SERVER) || ($BUILD_SERVER eq $CA25_LINUX_SERVER) ) {
$sendCEDAT = $SENDCEDAT_CMD;
} elsif ($BUILD_SERVER eq $CA25_SOLARIS_SERVER) {
$sendCEDAT = $SENDCEDAT_UNIX_CMD;
}

$result = CCase_INFO("cd $fileFolder; $sendCEDAT -N /"$usrName/" -E $usrID/@motorola.com -n MOTOROLA -c /"$receiverName/" -e $receiverEMail -f $fileName ");
}

return $result;
}

sub TransFile {
my ($fileName) = @_;
$fileName = trim($fileName);

my $result = $TRUE;

if ($bSendToTeam) {
$result = TransToTeam("$fileName");  # || DIED_AT("Fail to trans file $fileName to team");
} else {
$result = TransToMe("$fileName");  # || DIED_AT("Fail to trans file $fileName to me");
}

return $result;
}

sub TransFolder {
return $TRUE if ($bDEBUG);

my $transFName = "/vobs/k_apps/code/LocalBuild_Files_$DEST_VER/_$ProductName.zip";

opendir(DH, $TRANS_FOLDER) || die "Cannot open directory $TRANS_FOLDER!";
my @files = grep(!/^/./.?$/, readdir DH);
closedir(DH);

if (scalar(@files) > 0) {
#CCase_INFO("cd /vobs/k_apps/code; tar -cvf $transFName $TRANS_FOLDER ; gzip $transFName ; ");
CCase_INFO("cd $TRANS_FOLDER; rm $transFName; zip -r $transFName ./* ; ");

TransFile("$transFName");
}
}

sub CopyMoveToTrans {
my ($fileName, $isCopy) = @_;

CCase_INFO("mkdir $TRANS_FOLDER ") if (! -d $TRANS_FOLDER);
if ($isCopy) {
CCase_INFO("cp -f $fileName $TRANS_FOLDER/ ");
} else {
CCase_INFO("cp -f $fileName $TRANS_FOLDER/ ; rm -f $fileName ");
}
}

sub CopyToTrans {
CopyMoveToTrans(@_, $TRUE);
}

#---------------------------- TRANSEND BY CEDAT END ------------------------------------

sub parse_arguments {
DEBUG_INFO("All Arguments: @_");
my $arg = "";
for (my $i=0; $i<scalar(@ARGV); $i++) {
$arg = $ARGV[$i];

if ($arg =~ /^-setcs$/i) {
$bSetCS = $TRUE;
DEBUG_INFO("bSetCS is set to $bSetCS...");

#        } if ($arg =~ /^-nosetcs$/i) {
#            $bSetCS = $FALSE;
#            DEBUG_INFO("bSetCS is set to $bSetCS...");

} elsif ($arg =~ /^-setcs_only$/i) {
$bOnlySetCS = $TRUE;
DEBUG_INFO("bOnlySetCS is set to $bOnlySetCS...");
#setOriginalCS();
#exit "Set Original config spec over!";

} elsif ($arg =~ /^-notrans$/i) {
$bTrans = $FALSE;
DEBUG_INFO("bTrans is set to $bTrans...");

} elsif ($arg =~ /^-buildcs$/i) {
$bBuildCS = $TRUE;
$sour_csFName = $ARGV[$i+1];
$i++;
DEBUG_INFO("bBuildCS is set to $bBuildCS...");

} elsif ($arg =~ /^-telecacode$/i) {
TransTelecaCode();
exit "Trans Teleca code over!";

} else {
#do nothing;
}
}

}

sub phaseIsOver {
my ($info) = @_;
print "$info/n";
TransFolder();

die "$info";
}

sub print_usage {
print"/n";
printf("********** Build TOOL *********/n");
printf("* 1. Build in Debug Mode? (N) */n");
printf("*******************************/n");

printf("/nChoose An Option: ");
}

sub select_product {
print"/n";
printf("*****  SELECT BUILD PRODUCT  *****/n");
printf("* 1. Coral / Raspberry (Default) */n");
printf("* 2. Vegas                       */n");
printf("* 3. Watertown                   */n");
printf("* 4. Vegas Landscape             */n");
printf("**********************************/n");

printf("/nChoose An Option: ");
}

sub select_receiver {
print"/n";
printf("****** SELECT BUILD RECEIVER *********/n");
printf("* 1. To Yourself (Default)           */n");
printf("* 2. To AMS & Browser Team           */n");
printf("**************************************/n");

printf("/nChoose An Option: ");
}

#*****************************MAIN  FUNCTIONS****************************#
sub setOriginalCS {
my $configFName = "$LOCAL_BUILD_HOME/sourTmp.cs";
CCase_INFO("rm $configFName; ");
LOG_FILE($configFName, $FALSE, @g_configSpecAry);
CCase_INFO("cleartool setcs $configFName ") || die "setcs $configFName";

DEBUG_INFO("set original config spec is over!");
}

sub convertConfigSpec {
return $TRUE if ($bDEBUG);

my $configFName = "/vobs/k_apps/code/destTmp.cs";
unlink $configFName if (-e $configFName);
CCase_INFO("cleartool catcs > $configFName ");

open(hFileHandle, $configFName) || die "Cannot open file: $configFName!/n";
my @sourCS = ();
while ($_=<hFileHandle>) {
chomp $_;
$_ =~ s/^/s+/s+$//ig;  #trim heading and ending spaces
@sourCS = (@sourCS, $_);
}
DEBUG_INFO(@destCS);
close(hFileHandle);

my $csOK = $FALSE;
my $rule = "";
my @destCS = ();
foreach $rule (@sourCS) {
if ( ($rule=~m:^#element : || $rule=~m:^element :)
&& ($rule=~m:engine_cdma2000/code/dmss/data/data/: || $rule=~m:engine_cdma2000/code/dmss/services/:) )
{
$rule =~ s/^#element/element/;
$csOK = $TRUE;
}
#DEBUG_INFO($rule);
@destCS = (@destCS, $rule);
}
DEBUG_INFO(@destCS);

if ($csOK) {
unlink $configFName if (-e $configFName);
LOG_FILE ($configFName, $FALSE, @destCS);
CCase_INFO("cleartool setcs $configFName ");
} else {
die "/n** SKT rules in config spec is missing! **/n";
}
}

sub convertFilePath {
return $TRUE if ($bDEBUG);

my ($sourFName) = @_;
my $destFName = "";
my $i = 0;

do {
$i++;
$destFName = "$LOCAL_BUILD_HOME/convertPath$i.tmp";
} while (-e $destFName);

my @dataAry = ();
open(hFileHandle, $sourFName) || die "Cannot open file: $sourFName!/n";
while ($_=<hFileHandle>) {
chomp $_;
if (m'/vobs/.*/') {
s'/vobs/.*/''i;
}

if ( /GROUP /(2,0x00000000,0x0FFFFFFF,DATA, combo_file_pkg.s /)/ ) {
s/0x0FFFFFFF/0x07FFFFFF/ig;
}

@dataAry = (@dataAry, $_);
}
close(hFileHandle);
DEBUG_INFO(@dataAry);

LOG_FILE($sourFName, $FALSE, @dataAry);
#CCase_INFO("cp -f $destFName $sourFName ; rm -f $destFName ");
}

sub copySourceCode {

my $copyDest = "/vobs/k_apps/code/";

CCase_INFO("cd $copyDest ; mkdir ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeBrowser.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeFavLnchr.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeFavLnchr.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeFeatureDb.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeMainMenu.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeRDC.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeSettings.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/inative_ext/src/INativeSignIn.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/oem/src/OEMAppFuncs.c ./$SOUR_CODE_FNAME/ ;
$copyCmd -f /vobs/cdma_wlan_cm/code/TargetLayer/Rex/Target_SQA.c ./$SOUR_CODE_FNAME/ ; ");

CCase_INFO("cd $copyDest ; mkdir ./$BRH_FNAME ;
$copyCmd -f /vobs/k_apps/code/brew/mot/ui_toolkit/cml_media/media_128x160/inc/icon_anim.brh ./$BRH_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/ui_toolkit/cml_media/media_240x320/inc/icon_anim1.brh ./$BRH_FNAME/ ;
$copyCmd -f /vobs/k_apps/code/brew/mot/ui_toolkit/cml_skin/main_screen/inc/sk_graphics.brh ./$BRH_FNAME/ ; ");

my $tranFName = "c_source_files_$ProductName.zip";
CCase_INFO("cd $copyDest; rm $tranFName; zip -r $tranFName $SOUR_CODE_FNAME/* ; ") || die "cp_src1.pl";
CopyToTrans("$copyDest/$tranFName");

$tranFName = "brh_files_$ProductName.zip";
CCase_INFO("cd $copyDest; rm $tranFName; zip -r $tranFName $BRH_FNAME/* ; ") || die "cp_src2.pl";
CopyToTrans("$copyDest/$tranFName");
}

sub copyEngine2K {
my ($DEST_FNAME) = @_;
#$DEST_FNAME .= "_$ProductName";

CCase_INFO("cd /vobs/k_apps/code/ ; mkdir ./$DEST_FNAME ; $copyCmd -f /vobs/platform2000/code/engine_cdma2000a.a /vobs/platform2000/code/engine_cdma2000b.a /vobs/platform2000/code/engine_cdma2000_iguana.a /vobs/platform2000/code/engine_cdma2000_QCLibs.a ./$DEST_FNAME/ ");
CCase_INFO("cd /vobs/k_apps/code/ ; rm $DEST_FNAME.zip; zip -r $DEST_FNAME.zip $DEST_FNAME/*;") || die "cp_engine2k_1.pl";
CCase_INFO("cd /vobs/k_apps/code/ ; rm $DEST_FNAME/*;") || die "cp_engine2k_2.pl";
CopyToTrans("/vobs/k_apps/code/$DEST_FNAME.zip");
}

sub TransTelecaCode {
my $tranFName = "$telecaRelVer/_code.tar";
CCase_INFO("cd /vobs/teleca_sow1; rm -f $telecaRelVer/_code* ; tar -cvf $tranFName code ; gzip $tranFName ;");
TransToMe("/vobs/teleca_sow1/$tranFName.gz");
}

#####################################################################
sub Build_LocalBuild {

my $tranFName = "";
my @fileNames = ();

#CCase_INFO("cd $TRANS_FOLDER; rm * ; ") if (-d $TRANS_FOLDER);

if ($bBuildIPhoneExt) {
my $option;
while (1) {
DEBUG_INFO("/nAre you sure to start local build specially for IPhoneExt ? ");
$option = <STDIN>;    chomp $option;
if ($option eq 'y' || $option eq 'Y') {
last;
} elsif ($option eq 'n' || $option eq 'N') {
DEBUG_INFO("** Local build should NOT have bBuildIPhoneExt=$bBuildIPhoneExt, try again!"); exit 1;
}
}#while
}

if ($startPhase ne "1") {
my $option;
while (1) {
DEBUG_INFO("/nAre you sure to start build from Phase_$startPhase instead of Phase_1 ?");
$option = <STDIN>;    chomp $option;
if ($option eq 'y' || $option eq 'Y') {
last;
} elsif ($option eq 'n' || $option eq 'N') {
DEBUG_INFO("** Wrong build starting phase, try again!"); exit 1;
}
}#while
}

DEBUG_INFO("** Start build Local Build from Phase: $startPhase **/n");
goto "PHASE$startPhase";

###########
PHASE1:
D("+++ Enter Phase_1!");
###########
if ($bSetCS) {
setOriginalCS();  #hem
}

#phaseIsOver("PHASE 1 over!");

###########
PHASE2:
D("+++ Enter Phase_2!");
###########
CCase_INFO("rm -f /vobs/platform2000/code/* ;");
CCase_INFO("cd /vobs/platform2000/code/; $buildCmd ") || die "build cdma_1x_phone";

if ($bBuildIPhoneExt) {
my $shxFName = "PhoneCode_$DEST_VER/_$ProductName.shx";
CCase_INFO("cd /vobs/platform2000/code/; rm $shxFName*; /vobs/engine_boot/tools/create_phone_shx ; mv phone.shx $shxFName ; gzip $shxFName ");
TransFile("/vobs/platform2000/code/$shxFName.gz");
}

#--------
#PHASE2_5:
#--------

#phaseIsOver("PHASE 2 over!");

###########
PHASE3:
D("+++ Enter Phase_3!");
###########
CCase_INFO("cd /vobs/k_apps/code/; rm -rf template ; rm -r $SOUR_BUILD_NAME.* ; $copyCmd -f $LOCAL_BUILD_HOME/$SOUR_BUILD_NAME.tar.gz . ; gunzip $SOUR_BUILD_NAME.tar.gz; tar -xvf $SOUR_BUILD_NAME.tar ; ") || die "copy $SOUR_BUILD_NAME to /vobs/k_apps/code/";
if ($BUILD_SERVER eq $CA25_SOLARIS_SERVER) {
CCase_INFO("cp -f $LOCAL_BUILD_HOME/bak/build_phone_ca25.ksh /vobs/k_apps/code/template/build_phone.ksh ;")
}
#--------
PHASE3_1:
#--------
if ($ProductName eq $RASP_NAME || $ProductName eq $LANDSCAPE_NAME) {
CCase_INFO("cp -f $LOCAL_BUILD_HOME/bak/Makefile_Rasp /vobs/k_apps/code/template/Makefile ;
cp -f $LOCAL_BUILD_HOME/bak/elfweaver.exe /vobs/k_apps/code/template/win32/ ;
cp -f $LOCAL_BUILD_HOME/bak/quartz_cfg_M.xml /vobs/k_apps/code/template/ ");
}

CCase_INFO("cd /vobs/k_apps/code/template/; rm config_record; chmod 755 *; ksh build_phone.ksh clean_all; rm -f archives; mkdir archives; ksh build_phone.ksh copy_binaries ; ") || die "rm config_record...";

CCase_INFO("cd /vobs/k_apps/code/template/; $copyCmd -f /vobs/atso_tools/build/lib/memmap_M.cfg /vobs/atso_tools/build/lib/m6800B_M_rom_nand.scl /vobs/engine_cdma2000/code/dmss/mot/hw_config.h /vobs/engine_boot/tools/cdma2000_ramflash.s /vobs/engine_boot/tools/cdma1x_combo_file.pmf /vobs/engine_boot/tools/gen_phone_file.txt /vobs/cdma2000_integration/tools/arm9_jtag_nand/partition.mbn /vobs/atso_tools/build/lib/startup.script /vobs/platform2000/code/smbrlaz.reloc /vobs/engine_boot/code/ota_update_agent/release/ua.bin /vobs/k_apps/code/template/; rm /vobs/k_apps/code/template/smbrlaz.reloc; ")  || die "copy files...";

# old    CCase_INFO("cd /vobs/k_apps/code/template/; $copyCmd -f /vobs/engine_cdma2000/code/dmss/build/ms/memmap_M.cfg /vobs/engine_cdma2000/code/dmss/build/ms/m6800B_M_rom_nand.scl /vobs/engine_cdma2000/code/dmss/mot/hw_config.h /vobs/engine_boot/tools/cdma2000_ramflash.s /vobs/engine_boot/tools/cdma1x_combo_file.pmf /vobs/engine_boot/tools/gen_phone_file.txt /vobs/cdma2000_integration/tools/arm9_jtag_nand/partition.mbn /vobs/atso_tools/build/lib/startup.script /vobs/platform2000/code/smbrlaz.reloc /vobs/engine_boot/code/ota_update_agent/release/ua.bin /vobs/k_apps/code/template/; rm /vobs/k_apps/code/template/smbrlaz.reloc; ")  || die "copy files...";

#---------
PHASE3_5:
#---------
CCase_INFO("rm /vobs/k_apps/code/template/6800_build.bat ;");
CCase_INFO("$copyCmd -f $LOCAL_BUILD_HOME/bak/$buildSript /vobs/k_apps/code/template/$buildSript ; ") || die "copy 6800_build.bat";
if (! ($ProductName eq $RASP_NAME || $ProductName eq $LANDSCAPE_NAME)) {
CCase_INFO("$copyCmd -f $LOCAL_BUILD_HOME/bak/m6800B_M_rom_nand.scl /vobs/k_apps/code/template/m6800B_M_rom_nand.scl; ") || die "copy m6800B_M_rom_nand.scl";
}

#CCase_INFO("$copyCmd -f $LOCAL_BUILD_HOME/gen_phone_file.txt /vobs/k_apps/code/template/gen_phone_file.txt; ") || die "copy gen_phone_file.txt";
convertFilePath("/vobs/k_apps/code/template/gen_phone_file.txt") || die "convertFilePath for gen_phone_file.txt";
convertFilePath("/vobs/k_apps/code/template/cdma1x_combo_file.pmf") || die "convertFilePath for cdma1x_combo_file.pmf";

#---------
PHASE3_6:
#---------
$tranFName = "$DEST_BUILD_NAME/_$ProductName.tar";
CCase_INFO("cd /vobs/k_apps/code; rm -r $tranFName/*; tar -cvf $tranFName template; gzip $tranFName ") || die "tar $DEST_BUILD_NAME.tar";
TransFile("/vobs/k_apps/code/$tranFName/.gz");  # || die "Trans2Me $DEST_BUILD_NAME.tar.gz" ;

#phaseIsOver("PHASE 3 over!");

goto PHASE7 if ($bBuildIPhoneExt);

###########
PHASE4:
D("+++ Enter Phase_4!");
###########
$tranFName = "File_List_$ProductName.zip";
CCase_INFO("cd /vobs/k_apps/code/ ; rm hdr_list; rm bid_list_cap; rm bid_list; cleartool find -avobs -cview -name /"*.h/" -print > hdr_list; cleartool find -avobs -cview -name /"*.BID/" -print > bid_list_cap; cleartool find -avobs -cview -name /"*.bid/" -print > bid_list; zip $tranFName hdr_list bid_list_cap bid_list ") || die "copy hdr_list, bid_list_cap, bid_list ";
CopyToTrans("/vobs/k_apps/code/$tranFName");

###########
PHASE5:
D("+++ Enter Phase_5!");
###########
#remove bidlist and hdrlist folder first
my $sourDir = "/vobs/k_apps/code/";

opendir(DH, $sourDir) || die "Cannot open directory $sourDir!";
@fileNames = grep(!/^/./.?$/, readdir DH);
closedir(DH);
foreach my $fileName (@fileNames) {
if ($fileName =~ m/[bid|hdr]-/d{8}-/d{4}/) {
CCase_INFO("cd $sourDir ; rm -rf $fileName ; ");  #remove bid/hdr folder&files in last time build
#DEBUG_INFO("ready to remove $sourDir//$fileName... ");
}
}

CCase_INFO("cd /vobs/k_apps/code/; cp $LOCAL_BUILD_HOME/bak/bidlist . ; bash $LOCAL_BUILD_HOME/script/genbid bidlist");
CCase_INFO("cd /vobs/k_apps/code/; cp $LOCAL_BUILD_HOME/bak/hdrlist . ; bash $LOCAL_BUILD_HOME/script/genhdr hdrlist");

opendir(DH, $sourDir) || die "Cannot open directory $sourDir!";
@fileNames = grep(!/^/./.?$/, readdir DH);
closedir(DH);

CCase_INFO("cd $TRANS_FOLDER ; rm hdr-*; rm bid-*; ");
foreach my $fileName (@fileNames) {
#DEBUG_INFO("File or Folder Name is: $fileName");
if ((-d $sourDir .'/'. $fileName) && $fileName=~m/[bid|hdr]-/d{8}-/d{4}/ ) {
$tranFName = "$fileName/_$ProductName";
CCase_INFO("cd $sourDir ; rm -f $fileName.tar* ; rm -f $tranFName.tar* ; tar -cvf $tranFName.tar $fileName ; gzip $tranFName.tar ; ") || die "tar $fileName.tar";
CopyMoveToTrans("$sourDir/$tranFName.tar.gz", $FALSE);  #move file instead of copy
}
}

#phaseIsOver("PHASE 5 over!");

###########
PHASE6:
D("+++ Enter Phase_6!");
###########
copySourceCode();

#phaseIsOver("PHASE 6 over!");

###########
PHASE7:
D("+++ Enter Phase_7!");
###########
#Change config spec to enable SKT rules then rebuild the phone code
convertConfigSpec();

CCase_INFO("rm -f /vobs/platform2000/code/* ;");
CCase_INFO("cd /vobs/platform2000/code/; $buildCmd ") || die "build cdma_1x_phone";

#---------
PHASE7_4:
#---------
my $sktFName = "PhoneCode_$DEST_VER/_SKT_$ProductName.shx";
CCase_INFO("cd /vobs/platform2000/code/; rm $sktFName*; /vobs/engine_boot/tools/create_phone_shx ; mv phone.shx $sktFName ; gzip $sktFName ");
TransFile("/vobs/platform2000/code/$sktFName.gz");

# old CCase_INFO("cd /vobs/platform2000/code/; /usr/global/share/submit '/vobs/atso_tools/build/bin/acmake' PRODUCT=cdma2000_6800 LAB_BUILD=TRUE MW=TRUE MW_CONFIG_H=MW_Config_Suapi.h MRSF_CONFIG_H=/vobs/synergy_device_layer/code/dl_mrsf/ProductConfig.h cdma_1x_phone ") || die "build cdma_1x_phone";

#---------
PHASE7_5:
#---------
my $DEST_FNAME = "engine_cdma2000";
copyEngine2K("$DEST_FNAME/_$ProductName");

if ($bBuildIPhoneExt) {
TransFile("/vobs/k_apps/code/$DEST_FNAME/_$ProductName.zip");
goto PHASE100;
}

#phaseIsOver("PHASE 7 over!");

###########
PHASE8:
D("+++ Enter Phase_8!");
###########
my $logFName = "";
my $viewName = $ENV{"CLEARCASE_ROOT"}; $viewName = substr($viewName, rindex($viewName, '/')+1);
DEBUG_INFO("View Name is: $viewName");

my $buildDir = "/home/$usrID/bldlogs/";
opendir(DH, "$buildDir") || die "Cannot open directory $buildDir!";
@fileNames = grep(!/^/./.?$/, readdir DH);
closedir(DH);

foreach my $fileName (@fileNames) {
DEBUG_INFO("File or Folder Name is: $fileName");
if ($fileName=~m/$viewName.*/.gz$/ ) {
$fileName =~ s/.gz$//i;
$logFName = $fileName;
}
}

if (! isEmptyStr($logFName)) {
$fileName = $logFName; DEBUG_INFO("/nLog File Name is: $fileName");
$logFName = "BuildLog_$DEST_VER/_teleca_$ProductName.log";

CCase_INFO("cd $buildDir; rm $logFName.gz; cp $fileName/.gz $logFName.gz; ");
CCase_INFO("cd $buildDir; rm $logFName; gunzip $logFName.gz ; gzip $logFName ");
CopyToTrans("$buildDir/$logFName/.gz");
}

###########
PHASE90:
###########
TransFolder();

###########
PHASE100:
###########
print "/n/n+++ Local Build Env of $ProductName for Teleca complete! +++/n/n";
}

###############################################################################
sub compTelecaRelease {
my @compResultAry = ();
my $comparDirName = "/vobs/teleca_sow1/code/";
my ($sourLabel, $destLabel, $fileNum, $dirNum) = ($labelName_wtt[2], $labelName_vgs[2], 0, 0);

my $resultFName = "/home/$usrID/code/result.txt";
unlink $resultFName if (-e $resultFName);

comparFiles($comparDirName, $sourLabel, $destLabel, /@compResultAry, /$fileNum, /$dirNum);
DEBUG_INFO("compare result is: @compResultAry");
DEBUG_INFO("FileNum is $fileNum, DirNum is: $dirNum");

LOG_FILE($resultFName, $FALSE, "/n*** Compare Result of $sourLabel & $destLabel under $comparDirName ***/n");
LOG_FILE($resultFName, $TRUE, "". scalar(@compResultAry)/3 ." files are different in $fileNum files and $dirNum directories./n");
LOG_FILE($resultFName, $TRUE, @compResultAry);
}

sub comparFiles {
my ($folderName, $label1, $label2, $compResultAry, $fileNum, $dirNum) = @_;
DEBUG_INFO("Folder Name is: $folderName /tLabel1 is: $label1 /tLabel2 is: $label2");

my ($verFile1, $verFile2) = ("/home/$usrID/code/ver1.txt", "/home/$usrID/code/ver2.txt");
my ($ver1, $ver2) = ("", "");

my $compValue = 0;

opendir(DH, $folderName) || die "Cannot open directory $folderName!";
my @fileNames = grep(!/^/./.?$/, readdir DH);
closedir(DH);

my $fileName;
foreach $fileName (@fileNames) {
if (-d "$folderName/$fileName") {
$$dirNum++;
comparFiles("$folderName/$fileName", $label1, $label2, $compResultAry, $fileNum, $dirNum);

} else {
$$fileNum++;
#$result = CCase_INFO("cleartool find $folderName/$fileName -version 'lbtype($DEST_TELECA_VER)' -exec 'cleartool diff -option /"-qui -b/" $folderName/$fileName /$CLEARCASE_XPN' ");
CCase_INFO("cleartool find $folderName/$fileName -version 'lbtype($label1)' -print > $verFile1 ");
CCase_INFO("cleartool find $folderName/$fileName -version 'lbtype($label2)' -print > $verFile2 ");

open(hFileHandle, $verFile1); $ver1=<hFileHandle>; close(hFileHandle); chomp $ver1;
open(hFileHandle, $verFile2); $ver2=<hFileHandle>; close(hFileHandle); chomp $ver2;
#DEBUG_INFO("Ver1 is: $ver1/tVer2 is: $ver2");

$compValue = 0;
trim(ver1); trim(ver2);
if (ver1 ne "" && ver2 ne "" && ver1=~//S*/ && ver2=~//S*/) {
$compValue = CCase_INFO("cleartool diff -option /"-status_only -b/" $ver1 $ver2");
}
if (1 == $compValue) {
#DEBUG_INFO("/n$ver1 and $ver2 are identical!");
} else {
#DEBUG_INFO("/n$ver1 and $ver2 are different!");
@$compResultAry = (@$compResultAry, $ver1, $ver2, "/n");
}
}
}
}

sub getEnvVariables {
my $envVarFName = "/home/$usrID/env_vars.txt";
unlink $envVarFName if (-e $envVarFName);

my $result;
my @keyNames = keys(%ENV);
foreach my $keyName (@keyNames) {
$result .= "$keyName/t:" . $ENV{$keyName} . "/n";
}
DEBUG_INFO("Result is:/n$result");

LOG_FILE($envVarFName, $FALSE, $result);
}

sub getBuildServerConfig {
my $hostName = $ENV{HOSTNAME};
$hostName = $ENV{HOST} if ($hostName eq "");
DEBUG_INFO("Host Name is: $hostName");

if ($hostName =~ m/panther/i) {
$BUILD_SERVER = $IL93_SERVER;
} elsif ($hostName =~ m/ca25log/i) {
$BUILD_SERVER = $CA25_SOLARIS_SERVER;
} elsif ($hostName =~ m/ca25rhe/i) {
$BUILD_SERVER = $CA25_LINUX_SERVER;
die "*** Cannot make local build env on Linux servers! ***/nBecause Local Build Env script does NOT work in Linux!";
} else {
die "Unknown build server!" if (!$bDEBUG);
}

DEBUG_INFO("Build Server is: $BUILD_SERVER");
}

#---------------------------------------------------------------------------------------------
sub Test {
#DEBUG_INFO("Clearcase ROOT is: $CLEARCASE_ROOT $0");

#my $result;
#$result = CCase_INFO("cd /vobs/teleca_sow1/code/browser/OBIGO-q05a/applet/mod/obigo/usr_data/skins/; cleartool diff SprintStandardQVGA.ows@@/main/par_x_teleca_p6_vegas/2 SprintStandardQVGA.ows@@/main/par_x_teleca_p6_vegas/2");
#$result = CCase_INFO("cleartool diff -options /"-qui -b/" /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c@@/main/par_x_teleca_p6_vegas/4 /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c@@/main/par_x_teleca_p6_vegas/4");
#DEBUG_INFO("result 1 is: $result!");

#$result = CCase_INFO("cd /vobs/teleca_sow1/code/browser/OBIGO-q05a/applet/mod/obigo/usr_data/skins/; cleartool diff SprintStandardQVGA.ows@@/main/par_x_teleca_p6_vegas/2 SprintStandardQVGA.ows@@/main/par_x_teleca_p6_vegas/1");
#$result = CCase_INFO("cleartool diff -option /"-qui -b/" /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c@@/main/par_x_teleca_p6_vegas/4 /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c@@/main/par_x_teleca_p6_vegas/3 ");
#DEBUG_INFO("result 2 is: $result!");

#    CCase_INFO("cleartool find /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c -version 'lbtype(TELECA_OBIGO_P5_3.7)' -print");
#    $result = $CLEARCASE_XPN;
#    DEBUG_INFO("result 3 is: $result!");
#    $result = CCase_INFO("cleartool find /vobs/teleca_sow1/code/browser/IPhoneExt/IPhoneExt.c -version 'lbtype(TELECA_OBIGO_P5_3.6)' -print");
#    DEBUG_INFO("result 4 is: $result!");

#convertConfigSpec();

#setOriginalCS();
#convertFilePath("/vobs/k_apps/code/template/gen_phone_file.txt") || die "convertFilePath for gen_phone_file.txt";
#convertFilePath("/vobs/k_apps/code/template/cdma1x_combo_file.pmf") || die "convertFilePath for cdma1x_combo_file.pmf";

#my $sourDir = "/vobs/k_apps/code/";
#opendir(DH, $sourDir) || die "Cannot open directory $sourDir!";
#my @fileNames = grep(!/^/./.?$/, readdir DH);
#my $fileName;
#foreach $fileName (@fileNames) {
#    #DEBUG_INFO("File or Folder Name is: $fileName");
#    if ((-e "$sourDir//$fileName") && $fileName=~m/[bid|hdr]-/d{8}-/d{4}/ ) {
#        CCase_INFO("cd $sourDir; rm -f $fileName.tar* ; tar -cvf $fileName.tar $fileName ; gzip $fileName.tar ; ") || die "tar $fileName.tar";
#        TransFile("$sourDir/$fileName.tar.gz");
#    }
#}
#closedir(DH);

#DIED_AT("build fails here!/n r u ready?");

exit 1;
}

#####################################################################

parse_arguments(@ARGV);
getBuildServerConfig();

print_usage();

my $option = <STDIN>;    chomp $option;
if ($option eq 'y' || $option eq 'Y') {
$bDEBUG = $TRUE;
} else {
$bDEBUG = $FALSE;
}

#####################################################################
sub main {
while (1) {
select_product();
$option = <STDIN>;    chomp $option;

if (3==$option) {  #for Watertown product
$ProductName = $WTT_NAME;

$DEST_VER = $labelName_wtt[0];
$telecaRelVer = $labelName_wtt[2];
$comment = $labelName_wtt[3];
$baselineVer= "WATER2_X_00." . ($DEST_VER=~m//d+/ig)[0] . ".00R/n";
$startPhase = $labelName_wtt[4];

$buildSript = "6800_build_wtt.bat";

last;

} elsif (2==$option) {  #for Vegas product
$ProductName = $VGS_NAME;

$DEST_VER = $labelName_vgs[0];
$telecaRelVer = $labelName_vgs[2];
$comment = $labelName_vgs[3];
$baselineVer= "VEGAS2_X_00." . ($DEST_VER=~m//d+/ig)[0] . ".00R/n";
$startPhase = $labelName_vgs[4];

$buildSript = "6800_build_vgs.bat";

last;

} else {  #for Raspberry / Coral product
$DEST_VER = $labelName_rasp[0];

#            my $verNum = substr($DEST_VER, 0, index($DEST_VER, "R"));
#            D("VerNum is: $verNum");
#            if ($verNum >= 23)
if ($DEST_VER > "22R")
{
$labelName_rasp[1] = $labelName_coral;  #product name changes to Coral since 23R
$RASP_NAME = $CORAL_NAME;
}

$telecaRelVer = $labelName_rasp[2];
$comment = $labelName_rasp[3];
$baselineVer= $labelName_rasp[1] . "." . ($DEST_VER=~m//d+/ig)[0] . ".00R/n";
$startPhase = $labelName_rasp[4];

$buildSript = "6800_build_rasp.bat";
#$bSetCS = $FALSE;

if (4==$option) {  #for Vegas product landscape version
$ProductName = $LANDSCAPE_NAME;
} else {
$ProductName = $RASP_NAME;
}

last;
}
}
DEBUG_INFO("/n*** Ready to build for $ProductName product! ***/n");

if ($ProductName eq $VGS_NAME) {
$BuildVegasFlag = "MAKE_SPRINT_VEGAS_SPECIFIC=TRUE";
} else {
$BuildVegasFlag = "";
}

$DEST_BUILD_NAME = "BuildEnv_$DEST_VER" . "$comment";
DEBUG_INFO("DEST_BUILD_NAME is: $DEST_BUILD_NAME");

if ($ProductName eq $RASP_NAME || $ProductName eq $LANDSCAPE_NAME) {
@g_configSpecAry = (
"/nelement * CHECKEDOUT",
"",
"#For SKT (Coral / Raspberry)",
"#element /vobs/engine_cdma2000/code/dmss/data/data/ps_ppp_auth.c  /main/par_x_raspberry_r90.2/dbg_il93e_a21755_skt_teleca_korea/1",
"#element /vobs/engine_cdma2000/code/dmss/services/diag/nvdiag.c  /main/par_x_qualcomm_amss6800/par_x_qualcomm_amss6800_5x/dbg_il93e_a21755_skt_teleca_korea/1",
"#element /vobs/engine_cdma2000/code/dmss/services/nv/nvio.c  /main/par_x_raspberry_r90.2/dbg_il93e_a21755_skt_teleca_korea/1",
);

if ($ProductName eq $LANDSCAPE_NAME) {
@g_configSpecAry = ( @g_configSpecAry,
"",
"#For Watertown & Vegas HW only!!!!",
"element /vobs/engine_boot/tools/...                            .../libpp23316_ca25_mdtc67_56p5_rasp_boot/LATEST",
"element /vobs/cdma2000_integration/tools/arm9_jtag_nand/...    .../libpp23316_ca25_mdtc67_56p5_rasp_boot/LATEST",
"element /vobs/engine_boot/tools/...                            BOOT6800_X_R39.2_V2.00.00R",
"element /vobs/cdma2000_integration/tools/arm9_jtag_nand/...    BOOT6800_X_R39.2_V2.00.00R",

"element /vobs/engine_boot/tools/...                            .../libpp23316_ca25_e11456_56p2_rasp_boot_0d/LATEST",
"element /vobs/cdma2000_integration/tools/arm9_jtag_nand/...    .../libpp23316_ca25_e11456_56p2_rasp_boot_0d/LATEST",
"element /vobs/engine_boot/tools/...                         BOOT6800_X_R39.2_V1.0D.00R",
"element /vobs/cdma2000_integration/tools/arm9_jtag_nand/... BOOT6800_X_R39.2_V1.0D.00R",
)
}

} else {  #SKT version rules for WTT & VGS
@g_configSpecAry = (
"/nelement * CHECKEDOUT",
"",
"#For SKT (WTT & VGS)",
"#element /vobs/engine_cdma2000/code/dmss/data/data/ps_ppp_auth.c /main/par_x_cheyn_r39.2/dbg_il93g_a21952_skt_teleca_korea/1",
"#element /vobs/engine_cdma2000/code/dmss/services/diag/nvdiag.c /main/par_x_qualcomm_amss6800/par_x_qualcomm_amss6800_5x/par_x_qualcomm_amss6800_r5.3/dbg_il93g_a21952_skt_teleca_korea/1",
"#element /vobs/engine_cdma2000/code/dmss/services/nv/nvio.c /main/par_x_cheyn_r39.2/dbg_il93g_a21952_skt_teleca_korea/5",
);
}

if ($bSetCS && scalar(@baselineDepAry) > 0) {
my $option;
while (1) {
DEBUG_INFO("/nAre you sure to start local build with baseline dependency ? ");
$option = <STDIN>;    chomp $option;
if ($option eq 'y' || $option eq 'Y') {
last;
} elsif ($option eq 'n' || $option eq 'N') {
DEBUG_INFO("** Local build should not have /@baselineDepAry, try again!");
exit 1;
}
}#while

#for (my $i=0; $i<scalar(@baselineDepAry); $i++) {
@g_configSpecAry = (@g_configSpecAry, "/n", @baselineDepAry);
}

if ($BUILD_SERVER eq $CA25_LINUX_SERVER) {
@g_configSpecAry = ( @g_configSpecAry,
#"/n#0D BOOTLOADER RULES/BRANCHES",
#"element /vobs/engine_boot/tools/... BOOT6800_X_R39.2_V1.0D.00R",
#"element /vobs/cdma2000_integration/tools/arm9_jtag_nand/... BOOT6800_X_R39.2_V1.0D.00R",
"",
#"element /vobs/atso_tools/perl5/...               PERL_N_05.88.0BI",
#"element /vobs/atso_tools/util/...                PERL_N_05.88.0BI",
#"element /vobs/atso_tools/perl5/...             PERL_N_05.88.0BI_LINUX",
#"element /vobs/atso_tools/util/...              PERL_N_05.88.0BI_LINUX",

"element /vobs/arm_development_suite/...   ADS_1.2_BUILD848_ALL",
"element /vobs/atso_tools/perl5/...        PERL_N_05.88.0BI_LINUX",
"element /vobs/atso_tools/util/ruby/...    RUBY_N_01.84.05I_LINUX",
"element /vobs/wsd_cmtools/...             PYTHON_N_02.04.03I_LINUX",
);
}

@g_configSpecAry = ( @g_configSpecAry,
"/n##############################################",
"# $DEST_VER Baseline",
"##############################################",
"",
"element /vobs/teleca_sow1/... $telecaRelVer/n",
#"element * ATHNS2_X_00.$DEST_VER_NUM.00R/n",
"element * $baselineVer/n",
);

#foreach my $cs (@g_configSpecAry) {DEBUG_INFO($cs);}

if ($TRUE == $bOnlySetCS) {
setOriginalCS();
exit "Set Original config spec over!";
}

if ($ProductName eq $LANDSCAPE_NAME) {
my $vgsHwBuildFlag_landscape = "HW_VEGAS=TRUE";
$vgsHwBuildFlag_landscape = " HW_RASP=FALSE $vgsHwBuildFlag_landscape " ;

die "Cannot use $vgsHwBuildFlag_landscape for non-Raspberry product!/n" if ($ProductName ne $LANDSCAPE_NAME);
$BuildVegasFlag = $BuildVegasFlag . " $vgsHwBuildFlag_landscape";
DEBUG_INFO("BuildVegasFlag is: $BuildVegasFlag/n");
}

DEBUG_INFO("** Branch Name is: $branchName/tTeleca Ver is: $telecaRelVer");
DEBUG_INFO("comments is: $comment ");

if ($BUILD_SERVER eq $IL93_SERVER) {
$buildCmd = "/usr/global/share/submit '/vobs/atso_tools/build/bin/acmake' PRODUCT=cdma2000_6800 LAB_BUILD=TRUE MW=TRUE MW_CONFIG_H=/vobs/synergy_device_layer/code/dl_mw/ProductConfig.h MRSF_CONFIG_H=/vobs/synergy_device_layer/code/dl_mrsf/ProductConfig.h $BuildVegasFlag cdma_1x_phone ";

} elsif ($BUILD_SERVER eq $CA25_SOLARIS_SERVER) {
$buildCmd = "bsub -q ca25-sunbld -Ip  '/vobs/atso_tools/build/bin/acmake' PRODUCT=cdma2000_6800 LAB_BUILD=TRUE MW=TRUE MW_CONFIG_H=/vobs/synergy_device_layer/code/dl_mw/ProductConfig.h MRSF_CONFIG_H=/vobs/synergy_device_layer/code/dl_mrsf/ProductConfig.h $BuildVegasFlag cdma_1x_phone ";

} elsif ($BUILD_SERVER eq $CA25_LINUX_SERVER) {
$buildCmd = "bsub -q ca25-lnxbld -Ip  '/vobs/atso_tools/build/bin/acmake' PRODUCT=cdma2000_6800 LAB_BUILD=TRUE MW=TRUE MW_CONFIG_H=/vobs/synergy_device_layer/code/dl_mw/ProductConfig.h MRSF_CONFIG_H=/vobs/synergy_device_layer/code/dl_mrsf/ProductConfig.h $BuildVegasFlag cdma_1x_phone ";

} else {
die "Unknown / Unsupported build server!";
}

while (1) {
select_receiver();
$option = <STDIN>;    chomp $option;

if (2==$option) {
$bSendToTeam = $TRUE;
last;
} else {
$bSendToTeam = $FALSE;  ##send to myself by default
last;
}
}

#####################
# BUILD_LocalBuild:
#####################
printf"!** It is going to build DEBUG version for $ProductName product **!/n" if ($bBuild_DebugVer);

Build_LocalBuild();

}

#####################################################################
#Test();  exit 1;

#compTelecaRelease(); exit 1;
#getEnvVariables(); exit 1;

main();

#TransTelecaCode();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: