--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmtestenv/mmtesttools/Build/winsMmBuild.pl Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,338 @@
+# Copyright (c) 2004-2009 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:
+#
+
+# Full build equiv that builds WINSCW targets only
+
+use strict;
+
+my $ARGC = @ARGV;
+if (($ARGV[0] eq "-h") ||
+ ($ARGV[0] eq "--h") ||
+ ($ARGV[0] eq "-help") ||
+ ($ARGV[0] eq "--help") ||
+ ($ARGV[0] eq "help")
+ )
+ {
+ print "\n";
+ print "winsMmBuild - Builds for WINSCW only\n\n";
+ print "Syntax : winsMmBuild [-x] [-k] [-c] [-dir=directory] [-a3flog]\n";
+ print "-cw WINSCW build - NOTE: does nothing as this is default\n";
+ print "-x include optional elements\n";
+ print "-f build A3F DevSound instead of DevSound\n";
+ print "-l build Legacy DevSound instead of A3F (ignored if -f given)\n";
+ print "-k keep going\n";
+ print "-c clean build\n";
+ print "-dir location of TestTools\\Build directory\n";
+ print "-a3flog enables A3F logging\n";
+ print "-iclTestdata builds ICL test data\n";
+ exit 0;
+ }
+
+
+use Getopt::Long;
+my %optctl = ();
+keys(%optctl)=5;
+unless (GetOptions (\%optctl, "x", "f", "l", "c", "cw" , "k", "dir=s", "a3flog","iclTestdata"))
+ {exit 1;}
+
+my $ccover_target = "winscw";
+
+ my $targetToolsDir = "..\\..\\..\\..\\..\\TargetTools\\Build";
+ my $testToolsDir = "..\\..\\mmtesttools\\Build";
+ my $targetToolsExists = 0;
+ if (-d $targetToolsDir)
+ {
+ $targetToolsExists = 1;
+ print "TargetTools directory exists: $targetToolsDir\n"
+ }
+
+# main
+ {
+
+ ################## A3F Section #######################################
+ my $a3f_define = 'SYMBIAN_MULTIMEDIA_A3FDEVSOUND';
+ my $search_item = '#define\s+'.$a3f_define; # looking for this
+ my $hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\Symbian_OS.hrh"; # assign hrh file and location
+ my $found_search_item = 0; #false
+ my $iclTest = " --iclTestdata " if ($optctl{"iclTestdata"});
+ # print "HRH filename is : $hrh_filename\n";
+
+ if ($optctl{"f"})
+ {
+ # This displays the content of the hash table
+ # use it to confirm the "f" entry has been added.
+ #
+ # my $key; # holds the command line options
+ # my $value; # redundant for hash entry as only a key is used.
+ # while (($key, $value) = each(%optctl))
+ # {
+ # print $key.", ".$value."\n";
+ # }
+
+ # opens up the hrh file for reading
+ open(FILEHANDLE, "<", $hrh_filename) or die "Unable to open $hrh_filename for reading. $!\n";
+
+ my @file_data=<FILEHANDLE>; # read all file data into array
+
+ #check the contents of the array (i.e. the contents of the file)
+ for(@file_data)
+ {
+ # print "$_\n"; #display the line in the file
+
+ # search line for string of interest: =~ is equals, !~ is not equal
+ if(($_ =~ m/$search_item/i))
+ {
+ $found_search_item = 1; #found the macro
+ # print "Search item found: $_\n"; #display the line containing the search item
+ }
+ else
+ {
+ # Search item not found, do nothing
+ }
+ } #for loop
+
+ close(FILEHANDLE) or die "Can't close file $hrh_filename.\n"; # readonly file
+
+ if(!$found_search_item) #search item has not been found
+ {
+ # print warning
+ print "Modifying file $hrh_filename to enable A3F as -f flag has been used.\n";
+
+ # open file for append
+ open(FILEHANDLE, ">>", $hrh_filename) or die "Unable to open $hrh_filename for appending. $!\n";
+ print FILEHANDLE "\n#define $a3f_define\n"; # append macro to the file
+
+ close(FILEHANDLE) or die "Can't close appended file $hrh_filename.\n"; # readonly file
+ }
+
+ # Now remove the "f" from the hash table so there is no chance of it being passed
+ # to anything called in this file.
+ ######## NOTE removal of flag from Hash table ############
+ delete($optctl{f});
+
+ # This displays the content of the hash table
+ # use it to confirm the "f" entry has been removed.
+ #
+ # while (($key, $value) = each(%optctl))
+ # {
+ # print $key.", ".$value."\n";
+ # }
+
+ } # if $optctl{"f"}
+ elsif ($optctl{"l"})
+ {
+ ########### Remove the macro from the hrh as "-f" is not specified ###############
+
+ $found_search_item = 0 ; # false
+ # opens up the original hrh file for reading
+ open(FILEHANDLE, "<", $hrh_filename) or die "Unable to open $hrh_filename for reading. $!\n";
+
+ # temporary file
+ my $temp_hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\temp_Symbian_OS.hrh";
+ # open temporary file for writing
+ open(TEMPFILEHANDLE, ">", $temp_hrh_filename) or die "can't open tempory file $temp_hrh_filename. $!\n";
+
+ my @file_data=<FILEHANDLE>; # read all original hrh file data into array
+
+ #check the contents of the array (i.e. the contents of the file)
+ for(@file_data)
+ {
+ # print "$_\n"; #display the line in the file
+
+ # search line for string of interest: =~ is equals, !~ is not equal
+ if(($_ =~ m/(.*)$search_item(.*)/i))
+ {
+ #display a warning message (only do so once)
+ if( !$found_search_item )
+ {
+ print "Modifying file $hrh_filename to disable A3F as -l flag has been used.\n";
+ }
+
+ # write line excluding the #define bit to temp file. (to preserve any other bits in this line. e.g.: comment delimiters)
+ print TEMPFILEHANDLE $1." ".$2."\n";
+ $found_search_item = 1 ; # true
+ # Do not write line to the file as we want to remove it.
+ }
+ else
+ {
+ print TEMPFILEHANDLE $_; # copy unchanged line to temporary file
+ }
+ } #for loop
+
+ close(FILEHANDLE) or die "Can't close file $hrh_filename.$!\n"; # readonly file
+ close(TEMPFILEHANDLE) or die "Can't close file $temp_hrh_filename. $!\n"; # temp file
+ if($found_search_item)
+ {
+ my $orig_hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\orig.hrh";
+ rename($hrh_filename, $orig_hrh_filename) or die "can't rename $hrh_filename to $orig_hrh_filename: $!\n";
+ rename($temp_hrh_filename, $hrh_filename) or die "can't rename $temp_hrh_filename to $hrh_filename: $!\n";
+ unlink $orig_hrh_filename; # delete the original as it is no longer needed
+ }
+ else
+ {
+ unlink $temp_hrh_filename; # no changes to be made so delete the temporary file
+ }
+
+ } # main else for A3F
+
+ ################## End A3F Section ####################################
+
+ ################## A3F Logging Section ####################################
+
+ my $search_item = "SYMBIAN_MULTIMEDIA_A3F_ENABLE_LOGGING"; # looking for this
+ my $hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\Symbian_OS.hrh"; # assign hrh file and location
+ my $found_search_item = 0; #false
+
+ if ($optctl{"a3flog"})
+ {
+ # opens up the hrh file for reading
+ open(FILEHANDLE, "<", $hrh_filename) or die "Unable to open $hrh_filename for reading. $!\n";
+
+ my @file_data=<FILEHANDLE>; # read all file data into array
+
+ #check the contents of the array (i.e. the contents of the file)
+ for(@file_data)
+ {
+ # search line for string of interest: =~ is equals, !~ is not equal
+ if(($_ =~ m/$search_item/i))
+ {
+ $found_search_item = 1; #found the macro
+ }
+ else
+ {
+ # Search item not found, do nothing
+ }
+ } #for loop
+
+ close(FILEHANDLE) or die "Can't close file $hrh_filename.\n"; # readonly file
+
+ if(!$found_search_item) #search item has not been found
+ {
+ # open file for append
+ open(FILEHANDLE, ">>", $hrh_filename) or die "Unable to open $hrh_filename for appending. $!\n";
+ print FILEHANDLE "\n#define $search_item\n"; # append macro to the file
+ close(FILEHANDLE) or die "Can't close appended file $hrh_filename.\n"; # readonly file
+ }
+
+ # Now remove the "log" from the hash table so there is no chance of it being passed
+ # to anything called in this file.
+ ######## NOTE removal of flag from Hash table ############
+ delete($optctl{log});
+ } # if $optctl{"log"}
+ else
+ {
+ ########### Remove the macro from the hrh as "-a3flog" is not specified ###############
+
+ $found_search_item = 0 ; # false
+ # opens up the original hrh file for reading
+ open(FILEHANDLE, "<", $hrh_filename) or die "Unable to open $hrh_filename for reading. $!\n";
+
+ # temporary file
+ my $temp_hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\temp_Symbian_OS.hrh";
+ # open temporary file for writing
+ open(TEMPFILEHANDLE, ">", $temp_hrh_filename) or die "can't open tempory file $temp_hrh_filename. $!\n";
+
+ my @file_data=<FILEHANDLE>; # read all original hrh file data into array
+
+ #check the contents of the array (i.e. the contents of the file)
+ for(@file_data)
+ {
+ # search line for string of interest: =~ is equals, !~ is not equal
+ if(($_ =~ m/$search_item/i))
+ {
+ #display a warning message
+ print "Removing $_ from file $hrh_filename as -a3flog flag has not been used to indicate an A3F logging build is required.\n";
+ $found_search_item = 1 ; # true
+ # Do not write line to the file as we want to remove it.
+ }
+ else
+ {
+ # Ensure the last newline after the macro is not written to the file.
+ # the last new line was added by the macro append in the previous section.
+ # The asssumes the macro is the last entry in the file. If it is not then
+ # the if statement should be removed and the print statement left on its own
+ # to copy the last line to file.
+ if(!$found_search_item)
+ {
+ print TEMPFILEHANDLE $_; # copy unchanged line to temporary file
+ }
+ }
+ } #for loop
+
+ close(FILEHANDLE) or die "Can't close file $hrh_filename.$!\n"; # readonly file
+ close(TEMPFILEHANDLE) or die "Can't close file $temp_hrh_filename. $!\n"; # temp file
+ if($found_search_item)
+ {
+ my $orig_hrh_filename = "$ENV{EPOCROOT}epoc32\\include\\variant\\orig.hrh";
+ rename($hrh_filename, $orig_hrh_filename) or die "can't rename $hrh_filename to $orig_hrh_filename: $!\n";
+ rename($temp_hrh_filename, $hrh_filename) or die "can't rename $temp_hrh_filename to $hrh_filename: $!\n";
+ unlink $orig_hrh_filename; # delete the original as it is no longer needed
+ }
+ else
+ {
+ unlink $temp_hrh_filename; # no changes to be made so delete the temporary file
+ }
+
+ } # main else for A3F
+
+ ################## End A3F Logging Section ####################################
+
+
+ my $optional = "-x " if ($optctl{"x"});
+ my $keep = "-k " if ($optctl{"k"});
+ my $target = ""; # default to all
+ my $build = "winscw";
+
+ if($optctl{"dir"})
+ {
+ my $dir = $optctl{"dir"};
+ chdir $dir or die "Can't cd $dir - $!";
+ }
+
+
+ if($optctl{"cw"})
+ {
+ $build = "winscw";
+ }
+
+ my $command;
+
+ # mmbuild [-x] [-k] setup
+ $command = "mmbuild " . $optional . $keep . "setup". $iclTest;
+ (system ($command)==0 )or die "Couldn't execute $command";
+
+ if ($optctl{"c"})
+ {
+ # mmbuild -t clean (throw away result - so we ignore any no-export errors)
+ $command = "mmbuild -t clean >\$NULL 2>&1";
+ print $command, "\n";
+ (system ($command)==0 )or die "Couldn't execute $command";
+ }
+
+
+
+ # mmbuild [-k] build
+ $command = "mmbuild ". $keep. "build " . $build. $iclTest;
+ (system ($command)==0 )or die "Couldn't execute $command";
+
+ # mmbuild -t [-k] build
+ $command = "mmbuild -t ". $keep. "build ". $build. $iclTest;
+ (system ($command)==0 )or die "Couldn't execute $command";
+
+ # mmbuild -t -b[-k] build
+ $command = "mmbuild -t -b ". $keep. "build ". $build. $iclTest;
+ (system ($command)==0 )or die "Couldn't execute $command";
+
+ }