rtp/rtpstack/tsrc/sis/Makefile.pl
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtp/rtpstack/tsrc/sis/Makefile.pl	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,723 @@
+#
+# Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:  
+#
+
+use Cwd ;
+use File::Path;
+use File::Copy;
+use Time::Local;
+use FileHandle;
+
+
+$Project_Name="RTP_2.0";
+$Package_Dir="\\WeeklyBuild_$Project_Name";
+$Plat_Form="Epoc";
+$TITLE="Build Script for $Project_Name";
+our $MakeFileDir=cwd();
+#$EPOC_ROOT="\\epoc32";
+#$EPOC_DATA="$EPOC_ROOT\\data";
+#$EPOC_BUILD="$EPOC_ROOT\\BUILD";
+#$EPOC_DATA_PLUGINS="$EPOC_DATA\\z\\system\\Libs\\Plugins";
+#$EPOC_RELEASE="$EPOC_ROOT\\release";
+#$EPOC_FILE="\\epoc32\\wins\\c\\system";
+
+$PACKGAGE_INST="$Package_Dir\\$Project_Name\\Inst\\$Plat_Form";
+$BUILD_LOG="$Package_Dir\\$Project_Name\\Logs";
+$SOURCE_CODE="$Package_Dir\\$Project_Name\\Src";
+
+#@PLATFORM=("wins udeb");
+@PLATFORM=("winscw udeb","armv5 urel");
+
+@COMPONENT=("RTP_2.0");
+
+my @BldInf=("..\\group");
+
+########################## MAIN Program Starts #######################
+&TitleText("$TITLE");
+$Working_Dir=getcwd;
+$Compile_Dir='';
+
+#my @BldDir=&GetBldDir(@BldInf);
+#my @Releaseable=&GetReleaseable(\@BldDir,"thumb","urel");
+#&ActionFiles(\@Releaseable,"thumb","urel","Varify");
+if(@ARGV==0)
+  {
+
+#    &Follow_Option(1);
+    &Help;
+  }
+  else
+    {
+       eval("@ARGV[0]()") or warn "Wrong Parameter";
+    }
+#------------------------------------------------------------------------------#
+
+ sub Help
+  {
+      chdir $MakefileDir;
+      system('cls');
+      print "*"x(150)."\n";
+      Display();
+      print "*\tOptions:\n";
+      print "*\n";
+      print "*\n";
+      print "*\t\t\t(1)......Clean and Compile All $Project_Name Components  for @PLATFORM\n";
+      print "*\n";
+      print "*\t\t\t(2)......Make Complete Release Package (Strictly:- For SIP factory Personals)\n";
+      print "*\n";
+      print "*\t\t\t(3)......Cleans and Compile All $Project_Name Components For User Desired PlatForms  \n";
+      print "*\n";
+      print "*\t\t\t(q)......Quit \n";
+      print "*\n";
+      print "*\t\t\t Please Select the Appropriate Option like 1 2  with out brackets and press Enter----->" ;
+      my $Option =<STDIN>;
+      chomp $Option;
+      Follow_Option($Option);
+  }
+#------------------------------------------------------------------------------#
+sub Follow_Option
+    {
+      my ($Option)=@_;
+      if ($Option==1 || $Option==2 || $Option==3 || $Option eq "q" || $Option==66 )
+        {
+          if($Option==1)
+            {
+              SIP_Components(1,"ALL");
+              print "\n\n\n\n\n\n\nComplation Complete Enter to Continue -----";
+              getc;
+              &TitleText("$TITLE");
+              Help();
+            }
+           if($Option==2)
+            {
+              &Package_Struct_Basic;
+              &SIP_Components(2,"ALL");
+              &Compile("winscw","udeb","..\\Internal\\test\\RtpUnitTest\\group",1);
+              &BullsEye;
+              &Dll_Stat;
+              &SourceCode_Copy;
+              print "\n\n\n\n\n\n\nComplation Complete Enter to Continue -----";
+              getc;
+              &TitleText("$TITLE");
+              Help();
+            }
+           if($Option==3)
+            {
+              &SIP_Components();
+              print "\n\n\n\n\n\n\nComplation Complete Enter to Continue -----";
+              getc;
+              &TitleText("$TITLE");
+              Help();
+            }
+
+           if($Option eq "q" )
+           {
+              exit 0;
+           }
+           if($Option==66) #A Slight Hack, to create just  Release Package ,
+              {
+              SIP_Components(1,"ALL");
+              #&BullsEye;
+              #&Compile("winscw","udeb","..\\Internal\\test\\RtpUnitTest\\group");
+              #&Package_Struct_Basic;
+              #&SIP_Components(2,"ALL");
+              #&Dll_Stat(@PLATFORM);
+              #ackage_Struct();
+              #Sis_File_Create();
+              #Doxy_Docs();
+              #Help();
+              }
+        }
+        else
+        {
+          warn "Options to be Choosen are from 1,2,3 ans 4 All other values are illegal" ;
+          print "\n------ Try Again Enter to Conitue-------";
+          getc;
+          Help();
+        }
+    }
+#------------------------------------------------------------------------------#
+sub SIP_Components
+    {
+      my $comp=0;
+      my $plat=0;
+      my $varient=0;
+      my ($PkgFlag,$PlatFlag)=@_;
+      my @PlatForm;
+      my $Releseabls;
+      if ($PlatFlag eq "ALL")
+        {
+          @PlatForm=@PLATFORM;
+        }
+        else
+          {
+            @PlatForm=&GetPlatForm;
+          }
+
+
+      #if(-d $EPOC_BUILD)
+       #  {
+        #  print" Deleted $EPOC_BUILD\n";
+         # rmtree($EPOC_BUILD);
+         #}
+         $Compile_Dir = getcwd();
+
+      foreach(@COMPONENT)
+        {
+         my $Component_Dir= $Compile_Dir;
+         my $Plat_i=0;
+
+         foreach(@PlatForm)
+           {
+            @_TempPlatform=split /\s+/,@PlatForm[$plat];
+            $Plat_Form=@_TempPlatform[0];
+            $Varient=@_TempPlatform[1];
+                my $BFlag;
+                if($Plat_Form eq "winscw")
+                {
+                  $BFlag=1
+                  }
+                  else
+                    {
+                      $BFlag=0
+                      }
+
+                $Releseabls=Compile("$Plat_Form","$Varient",$Compile_Dir,$BFlag);
+                if ($PkgFlag==2)
+                {
+                  &Pkg_Enhance("$Plat_Form","$Varient");
+                  &ActionFiles($Releseabls,$Plat_Form,$Varient,"Copy");
+                  #&Copy_Files_Pkg("$Plat_Form","$Varient");
+                }
+                  $varient++;
+
+              $plat++;
+              $varient=0;
+            }
+            $comp++;
+           }
+
+        }
+#------------------------------------------------------------------------------#
+sub GetPlatForm
+    {
+      my $i=0;
+      my $dsp=1;
+      print "*"x(150)."\n" ;
+      while($i<@PLATFORM)
+        {
+          print "\t ($dsp)............@PLATFORM[$i]\n";
+          $i++;
+          $dsp++;
+        }
+      print "\t ALL............ALL PLatForms\n\n";
+      print "\n\n\t Please Choose the PlatForms You Need to Compile From Option above and press Enter--->";
+      my $Option=<STDIN>;
+      chomp $Option;
+      if ($Option eq "ALL" || $Option eq "all")
+        {
+          return @PLATFORM    ;
+        }
+      if($Option<=$dsp && $Option>0)
+        {
+          #print "op=$Option";
+          return @PLATFORM[$Option-1];
+        }
+          else
+            {
+              print "Valid Input are between 1 and ALL \n Try again.......";
+              getc;
+              GetPlatForm();
+            }
+    }
+#------------------------------------------------------------------------------#
+sub Compile
+    {
+       -e "$BUILD_LOG" or mkpath "$Package_Dir\\$Project_Name\\Logs",077;
+
+       my ($PlatForm,$Varient,$Compile_Dir,$BullsFlag)= @_;
+       my $Log_File="$PlatForm"."_"."$Varient"."."."log";
+       my $CompCmd;
+       my @EpocBld=&GetEpocBld($Compile_Dir);
+       my($MakeFiles,$Releseabls)=GetReleaseable(\@EpocBld,$PlatForm,$Varient);
+       #return ($Releseabls);
+       my $TText;
+       &ActionFiles($Releseabls,$PlatForm,$Varient,"Clean");
+       my $tempstart=time;
+       open LOG, ">>$BUILD_LOG\\$Log_File";
+        if($BullsFlag==1)
+        {
+          my $ret=`cov01 -1`;
+        }
+       foreach my $ComMak (@{$MakeFiles})
+       {
+        $TText=&CompName($ComMak);
+        &TitleText("Compiling $TText for $PlatForm $Varient"."      For Logs See File    $BUILD_LOG\\$Log_File");
+        print LOG "*"x(120)."\n";
+        print LOG "$TText LOG\n";
+        print LOG "*"x(120)."\n";
+        open PIPE ,"$ComMak 2>&1|";
+        while( $tmp=<PIPE>)
+        {
+          print $tmp;
+          print LOG $tmp;
+        }
+        close PIPE;
+       }
+
+       my $tempend=time;
+       my $RetString=&CalculateTime($tempstart,$tempend);
+       print LOG ("-")x200;
+       print LOG "\n$RetString\n";
+
+       close LOG;
+       my $ret=`cov01 -0`;
+       &ActionFiles($Releseabls,$PlatForm,$Varient,"Varify");
+       return ($Releseabls);
+       ($PlatForm,$Varient)= "";
+    }
+#-------------------------------------------------------------------------------
+sub CompName
+{
+  my($CompName)=@_;
+  my $r=substr($CompName,20);
+#  $r=;
+  @ar= (split /\\/,substr($r,1,-4));
+  @pp=split /\./,@ar[-1];
+  return $pp[0];
+  
+  print"";
+  
+}
+#------------------------------------------------------------------------------#
+sub Package_Struct_Basic
+      {
+        if (-d $Package_Dir)
+          {
+            printf "Deleting Previously Created Package...\n\n";
+            rmtree( $Package_Dir) or die 'Cant delete $Package_Dir';
+          }
+
+        mkdir $Package_Dir,077  or die "Cant Make $Package_Dir";
+        mkdir "$Package_Dir\\$Project_Name",077  or die "Cannot  Make dir $Package_Dir\\$Project_Name";
+        mkdir "$Package_Dir\\$Project_Name\\Doc",077  or die "Cannot Make Dir $Package_Dir\\$Project_Name\\Doc";
+        mkdir "$Package_Dir\\$Project_Name\\Inst",077  or die "Cannot Make Dir $Package_Dir\\$Project_Name\\Inst";
+        mkdir "$Package_Dir\\$Project_Name\\Inst\\$Plat_Form",077  or die "Cannot Make Dir";
+        mkdir "$Package_Dir\\$Project_Name\\Logs",077 or die "Some thing is wrong";
+        mkdir "$Package_Dir\\$Project_Name\\Src",077  or die "Cannot Make Dir";
+        print "\nPackage Structure Created Successfully....\n\n";
+      }
+#------------------------------------------------------------------------------#
+sub Pkg_Enhance
+    {
+      my($PlatForm,$Varient)=@_;
+      mkdir "$PACKGAGE_INST\\$PlatForm",0777 or die "Cannot  Make dir $PACKGAGE_INST\\$PlatForm";
+      mkdir "$PACKGAGE_INST\\$PlatForm\\$Varient",0777 or die "Cannot  Make dir $PACKGAGE_INST\\$PlatForm\\$Varient";;
+      ($PlatForm,$Varient)= "";
+    }
+
+#------------------------------------------------------------------------------#
+sub SourceCode_Copy
+    {
+      chdir($Compile_Dir);
+      print "Copying Source Code to $Package_Dir\\$Project_Name\\Src\n";
+      system("xcopy/e/f/Q ..\\* $Package_Dir\\$Project_Name\\Src")==0 or die "Cannot Copy SIP Source Code";
+    }
+#------------------------------------------------------------------------------#
+sub Dll_Stat
+  {
+  my @TPlat=("winscw udeb","armv5 urel");
+  my $Thumb_Stat="$PACKGAGE_INST\\armv5\\UREL";
+  my $Wins_Stat="$PACKGAGE_INST\\Winscw\\UDEB";
+  my $Winscw_Stat="$PACKGAGE_INST\\Winscw\\UDEB";
+  my $temp="delete.me";
+  my $Total_T=0;             #For Size of Thumb Files
+  my $Total_W=0;             #For Size of Wins Files
+  my $Plat;
+  my $Vart;
+  my @XFiles;
+  my $Fsize;
+  my $Xfile;
+  my $WinsUdeb;
+  my $ThumbUrel;
+  my $WinsCwUdeb;
+  my $TWinsUdeb;
+  my $TThumbUrel;
+  my $TWinsCwUdeb;
+  my $Counter=0;
+  my $gettime;
+  $OutFile="$Package_Dir\\$Project_Name\\Logs\\$Project_Name.txt";
+  format Header=
+          @<<<<<<< Project Statistics(In Bytes).
+  $Project_Name
+  
+  
+  FileName:                    Armv5 Urel            WinsCW Udeb
+  -------------------------------------------------------------
+.
+  format Middle =
+  @<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<               @<<<<<<
+  $Xfile,                      $ThumbUrel             $WinsUdeb
+.
+  format Bottom=
+  -------------------------------------------------------------
+  Wins  Total:  @<<<<<<<<<
+                $TWinsUdeb
+  Thumb Total:  @<<<<<<
+                $TThumbUrel
+  Total Files:  @<<<<<<
+                $Counter
+  Create Date:  @<<<<<<<<<<<<<<<<<<<<<<<<<<<
+                $gettime
+  -------------------------------------------------------------
+.
+
+  if(-e "$Package_Dir\\$Project_Name\\Logs\\$Project_Name.txt")
+    {
+      unlink $temp;
+    }
+    open OUT,">$OutFile";
+    
+    #$~=Header;
+    OUT->format_name("Header");
+    write OUT;
+    #print OUT;
+    foreach my $PlatVart (@TPlat)
+           {
+            $Plat=(split / /,$PlatVart)[0];
+            $Vart=(split / /,$PlatVart)[1];
+            push @XFiles,`dir /b $PACKGAGE_INST\\$Plat\\$Vart\\*.dll`;
+            push @XFiles,`dir /b $PACKGAGE_INST\\$Plat\\$Vart\\*.exe`;
+            push @XFiles,`dir /b $PACKGAGE_INST\\$Plat\\$Vart\\*.app`;
+            }
+            my %out;
+            @out{@XFiles}=() ;
+            @XFiles= sort keys %out;
+            $Counter=scalar @XFiles;
+            foreach  $Xfile (@XFiles)
+              {
+                foreach my $PlatVart (@TPlat)
+                 {
+                  $Plat=(split / /,$PlatVart)[0];
+                  $Vart=(split / /,$PlatVart)[1];
+                  chomp $Xfile;
+                  if(-e "$PACKGAGE_INST\\$Plat\\$Vart\\$Xfile")
+                    {
+                     $Fsize=(stat "$PACKGAGE_INST\\$Plat\\$Vart\\$Xfile")[7] ;
+                     }
+                  if( $Plat eq "wins" || $Plat eq "armv5" || $Plat eq "winscw")
+                    {
+
+                     if ( $Plat eq "winscw")
+                     {
+                      $WinsUdeb=$Fsize;
+                      $TWinsUdeb=$Fsize+$TWinsUdeb;
+                     }
+                     if ( $Plat eq "armv5")
+                     {
+                      $ThumbUrel=$Fsize;
+                      $TThumbUrel=$Fsize+$TThumbUrel;
+                     }
+
+                    }
+                     $Fsize="-";
+
+                  }
+                 OUT->format_name("Middle");
+                 #$~=Middle;
+                 write OUT;
+                }
+      $gettime=scalar gmtime;
+      OUT->format_name("Bottom");
+       #$~=Bottom;
+      write OUT;
+      close OUT;
+}
+
+#------------------------------------------------------------------------------#
+sub Display
+  {
+    my $dsp=1;
+    print "*\tProject:\t$Project_Name\n*\n*\tComponents:\n";
+    while($i<@COMPONENT)
+        {
+            print "*\t\t\t@COMPONENT[$i]\n";
+            $i++;
+            $dsp++;
+        }
+        #print "*\t\t\t UI=$UI_FLAG And PkgFile=$PKG_FILE;\n";
+
+    $dsp=1;
+    $i=0;
+    print "*\n";
+    print "*\tPlatForms:\n";
+    while($i<@PLATFORM)
+        {
+            print "*\t\t\t@PLATFORM[$i]\n";
+            $i++;
+            $dsp++;
+        }
+  }
+
+#------------------------------------------------------------------------------#
+sub TitleText
+  {
+    @TitleText=@_;
+    `title @TitleText`;
+  }
+#------------------------------------------------------------------------------#
+sub DisplayMsg
+  {
+  my($Msg)=@_;
+    print "*"x(120)."\n";
+    print "\t$Msg\n";
+    print "*"x(120)."\n";
+
+  }
+
+
+#------------------------------------------------------------------------------#
+sub  CalculateTime
+   {
+   #$Sec=time;
+    my($nstart,$nend)=@_;
+    $difference = $nend - $nstart;
+    $seconds    =  $difference % 60;
+    $difference = ($difference - $seconds) / 60;
+    $minutes    =  $difference % 60;
+    $difference = ($difference - $minutes) / 60;
+    $hours      =  $difference % 24;
+    $difference = ($difference - $hours)   / 24;
+    $days       =  $difference % 7;
+    $weeks      = ($difference - $days)    /  7;
+    $RetString="Compilation Time: $hours Hours ,$minutes Minutes and $seconds Seconds";
+    return $RetString;
+   }
+#------------------------------New Subroutines------------------------------------------#
+#---------------------------------------------------------------------------#
+sub ActionFiles
+{
+  my($DelVr,$Plat,$Vart,$Action)=@_;
+  my @Deliverable=@{$DelVr};
+  if($Action eq "Varify" || $Action eq "Copy" || $Action eq "Clean")
+    {
+      if($Action eq "Varify")
+        {
+          print "\n\nVarifying Generated Files Status \n";
+          print "-"x(120)."\n";
+          foreach my $DllFile (@Deliverable)
+            {
+              if (-e $DllFile)
+                {
+                  my $ttt=substr($DllFile,-3);
+
+                  print "$DllFile........OK............$ttt\n" ;#if ($ttt eq "DLL" || $ttt eq "EXE" || $ttt eq "APP")  ;
+                }
+              else
+                {
+                  FatalError("Varifying Compiled File Status:","File: $DllFile Not Generated")
+                }
+             }
+             print "-"x(120)."\n";
+        }
+      if($Action eq "Clean")
+        {
+          print "\n\nCleanning ALL Previously Generated Files \n";
+          print "-"x(120)."\n";
+          foreach my $DllFile (@Deliverable)
+            {
+              if (-e $DllFile)
+                {
+                  unlink $DllFile;
+                  print "$DllFile........Cleaned\n";
+                }
+              else
+                {
+                  print "Unable To Find $DllFile, \n";
+                }
+             }
+             print "-"x(120)."\n";
+        }
+       if($Action eq "Copy")
+        {
+          my $ZipFile="$PACKGAGE_INST\\$Plat\\$Vart\\$Plat-$Vart.zip";
+          my $tempFile="$PACKGAGE_INST\\$Plat\\$Vart\\$Plat-$Vart.txt";
+          my $ZipCommand="wzzip -r -P  $ZipFile \@$tempFile";
+          open TempFile,">$tempFile" or "&FatalError($tempFile cannot be opened";
+          print "\n\nCopying and Zipping Generated Files To Release Package\n";
+          print "-"x(120)."\n";
+          (-d  "$PACKGAGE_INST\\$Plat\\$Vart") or FatalError("Checking","$PACKGAGE_INST\\$Plat\\$Vart");
+          foreach my $DllFile (@Deliverable)
+            {
+              if (-e $DllFile)
+                {
+                  copy($DllFile,"$PACKGAGE_INST\\$Plat\\$Vart") if (substr($DllFile,-3) eq "dll" || substr($DllFile,-3) eq "EXE" || substr($DllFile,-3) eq "APP" || substr($DllFile,-3) eq "lib") ;
+                  print "$DllFile........Copied\n";
+                  print TempFile "$DllFile\n";
+                }
+              else
+                {
+                  print "Unable To Find $DllFile, \n";
+                }
+             }
+             system("$ZipCommand");
+             print "-"x(120)."\n";
+             close TempFile;
+             unlink  $tempFile;
+        }
+    }
+    else
+      {
+        &FatalError("UnAcceptable Parameter $Action:",
+        "You tried to pass a parameter which is not Acceptable");
+      }
+}
+
+#---------------------------------------------------------------------------#
+sub GetEpocBld
+{
+  #my (@BldInf)=@_;
+  my @BldInf=("..\\Group");
+  my $BD=cwd();
+  my $InfDir;
+  my @BuildDirList;
+  my $Epoc="\\epoc32";
+  if (-d ! $Epoc)
+  {
+  &FatalError("$Epoc Directory not found");
+  }
+  foreach my $Inf (@BldInf)
+  {
+    chomp $Inf;
+    if($Inf eq ".")
+    {
+    $Inf=cwd();
+    }
+    if (-d $Inf)
+    {
+     chdir $Inf==1 or &FatalError("Cannot Chage Dir  to $Inf");
+     $PWD=cwd();
+
+
+     @PWD=split /:/,$PWD;
+     $PWD[0]="$Epoc\\build";
+     $PWD=join '\\',@PWD;
+#     chdir $PWD==1 or &FatalError("Cannot Chage Dir  to $Inf");
+     #chdir $BD;
+     push @BuildDirList,$PWD;
+    }
+    else
+    {
+      &FatalError ("$Inf Dir does not exist Cannot Continue");
+    }
+  }
+  return @BuildDirList;
+}
+#---------------------------------------------------------------------------#
+
+sub GetReleaseable
+    {
+      my($BuildDir,$Plat,$Vart)=@_;
+      my @BldDir=@{$BuildDir};
+      my $MakeString;
+      my $MakeCommand="make";
+      my @Releseable;
+      my $MakePar1="";
+      my @RES;
+      my $GenMakeFile;
+      my @CompCmd;
+      my $Clean;
+      my $Silent="";
+
+    print "Generating List of Deliverables\n";
+    if($Plat eq "wins")
+      {
+        $MakeCommand="nmake";
+        $MakePar1="-nologo";
+        $Silent="-s";
+      }
+
+      foreach my $BuildDir (@BldDir)
+      {
+         if (-d $BuildDir)
+         {
+          rmtree ($BuildDir);
+          }
+         -e "bld.inf" or die "Cannot Find Bld.inf FIle";
+         @Bldtemp=`bldmake bldfiles 2>&1`;
+         unless (@Bldtemp==0)
+          {
+            &FatalError("@Bldtemp, From $Inf");
+          }
+         if(-e "$BuildDir\\Export.make")
+            {
+              my $ret=`make -f $BuildDir\\Export.make`;
+            }
+          $MakeString="$BuildDir\\$Plat.Make";
+         $Clean=`make -f $MakeString CLEANMAKEFILE`;
+         system("make -f $MakeString MAKEFILE");
+         $Resable=`make -f $MakeString WHATMAKEFILE`; # CFG=$Vart`;
+
+         
+         $Resable=~s/"//g;
+         $Resable=~s/\n/ /g;
+        @Res=split / /,$Resable;
+        @Res=   grep (!/CPP/,@Res);
+        if(-e "$BuildDir\\$Plat.make")
+          {
+            my $MAKE="make -f $BuildDir\\$Plat.make MAKEFILE ";
+            #@OO=`$MAKE 2>&1`;
+            #print "$MAKE ,@OO\n";
+          }
+        else
+          {
+          &FatalError("MakeFile" ,"Not Found $BldFile\\$Plat.make");
+          }
+        foreach my  $ComMakefile (@Res)
+        {
+          $MakeString="$MakeCommand $MakePar1 -f  $ComMakefile WHAT$Vart";
+          $Resable=`$MakeString 2>&1`;
+          $MakeString="$MakeCommand $MakePar1 $Silent -f  $ComMakefile $Vart";
+          if($Resable=~/Stop/)
+          {
+           &FatalError("Genterating Releaseable Error->","$Resable"); # CFG=$Vart`;
+           }
+          $Resable=~s/"//g;
+          $Resable=~s/\n/ /g;
+          @Releseable=split / /,$Resable;
+          print ".";
+          push @CompCmd,$MakeString;
+          push @RES,@Releseable;
+        }
+       #$BuildInfo{$Plat}{$Vart}=[@RES];
+      }
+      print "Done\n";
+      return (\@CompCmd,\@RES);
+    }
+#---------------------------------------------------------------------------#
+sub FatalError
+   {
+   my($Heading,$Description)=@_;
+   print "ERROR:\n$Heading $Description\n"  ;
+	 exit 1;
+   }
+#---------------------------------------------------------------------------#
+
+sub BullsEye
+  {
+    my $ret=`\\epoc32\\release\\winscw\\udeb\\ATSINTERFACE.EXE -testmodule RtpUnitTest`  ;
+    my $ret=`covsrc > "$Package_Dir\\$Project_Name\\Logs\\BullsEye.txt`;
+
+  }