external tools cannot specify path.
--- a/imgtools/buildrom/group/release.txt Tue Nov 23 14:07:04 2010 +0800
+++ b/imgtools/buildrom/group/release.txt Wed Nov 24 14:12:23 2010 +0800
@@ -1,3 +1,8 @@
+Version 3.32.1 (BUILDROM)
+===============
+Released by Lorence Wang, 24/11/2010
+ 1) ou1cimx1#657440 [MCL]external tools cannot specify path.
+
Version 3.32.0 (BUILDROM)
===============
Released by Ross Qin, 18/11/2010
--- a/imgtools/buildrom/tools/buildrom.pm Tue Nov 23 14:07:04 2010 +0800
+++ b/imgtools/buildrom/tools/buildrom.pm Wed Nov 24 14:12:23 2010 +0800
@@ -68,7 +68,7 @@
my $BuildromMajorVersion = 3 ;
my $BuildromMinorVersion = 32;
-my $BuildromPatchVersion = 0;
+my $BuildromPatchVersion = 1;
sub print_usage
@@ -4827,11 +4827,11 @@
my $plat = "armv5";
$plat = &get_abiv2mode() ? $plat."_abiv1" : $plat."_abiv2";
- foreach my $plat(@platlist)
+ foreach my $plattmp(@platlist)
{
- if(($aDllFile =~ /[\/\\]($plat)[\/\\]/i) or ($aDllFile =~ /[\/\\]($plat\.\w+)[\/\\]/i ))
+ if(($aDllFile =~ /[\/\\]($plattmp)[\/\\]/i) or ($aDllFile =~ /[\/\\]($plattmp)\.\w+[\/\\]/i ))
{
- $platName = $1;
+ $platName = uc $1;
last;
}
}
@@ -4839,7 +4839,7 @@
# Map files will be referred for all ARM platforms,
# and for BSF platforms which cutomizes ARM platforms.
- if($rootPlatName =~ /^armv5|$plat$/i){
+ if($rootPlatName =~ /^(armv5|$plat)$/i){
my $mapfile = "${aDllFile}.map";
open MAPFILE, "$mapfile" or die "Can't open $mapfile\n";
--- a/imgtools/buildrom/tools/externaltools.pm Tue Nov 23 14:07:04 2010 +0800
+++ b/imgtools/buildrom/tools/externaltools.pm Wed Nov 24 14:12:23 2010 +0800
@@ -36,11 +36,22 @@
my @toolModules = split(/,/,$toolList);
foreach my $tool (@toolModules) {
# An optional command line can be passed to the tool if it is of the form "<toolname>[:<cmdline>]"
- if ($tool !~ /^([^:]+)(:(.*))?$/) {
+ if ($tool !~ /^((\w:)?[^:]+)(:(.*))?$/) {
print "No tool specified as parameter for external tool invocation\n";
}
my $toolName = $1;
- my $toolCmdLine = $3;
+ my $toolCmdLine = $4;
+ if($toolName =~ /^(.*)[\\\/]([^\\\/]+)$/){
+ $toolName = $2;
+ my $path = $1;
+ if($path =~ /^EPOCROOT/){
+ my $epocroot = $ENV{EPOCROOT};
+ $epocroot =~ s-\\-\/-g;
+ $epocroot .= "\/" unless ($epocroot =~ /\/$/);
+ $path =~ s-^EPOCROOT[\/\\]?-$epocroot-;
+ }
+ push (@INC, $path);
+ }
if($toolName =~ /configpaging/i){
my %info = (name=>"configpaging", args=>$toolCmdLine );
push @{$invocations{"invocationpoint2"}}, \%info;