# HG changeset patch # User lorewang # Date 1290579143 -28800 # Node ID 5221386d044b3f128fc0f4af29a2df1a300d5202 # Parent 67449e76cb8494c135d3490a7d20de985d80e262 external tools cannot specify path. diff -r 67449e76cb84 -r 5221386d044b imgtools/buildrom/group/release.txt --- 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 diff -r 67449e76cb84 -r 5221386d044b imgtools/buildrom/tools/buildrom.pm --- 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"; diff -r 67449e76cb84 -r 5221386d044b imgtools/buildrom/tools/externaltools.pm --- 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 "[:]" - 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;