diff -r 7b7f0409fc00 -r e5a58c351011 imgtools/romtools/maksym/maksymrofs.pl --- a/imgtools/romtools/maksym/maksymrofs.pl Tue Nov 30 14:05:41 2010 +0800 +++ b/imgtools/romtools/maksym/maksymrofs.pl Tue Nov 30 17:14:57 2010 +0800 @@ -15,8 +15,115 @@ # Produces symbolic information given a ROFS log file and .map files for relevant binary files # -shift @ARGV; -my $logfile = shift @ARGV; -my $command = "rofsbuild -loginput=$logfile"; -system ($command); +require 5.003_07; +no strict 'vars'; +use English; +use FindBin; # for FindBin::Bin + +# Version +my $MajorVersion = 1; +my $MinorVersion = 1; +my $PatchVersion = 0; + +# Globals +my $maksym = ""; +my $rofsbuild; +my $debug = 0; + +&args; +&main; exit 0; + +# +# main +# +sub main() +{ + my $symbolfile = $rofsbuild; + $symbolfile =~ s/\.log$/\.symbol/i; + my @cmdres = `rofsbuild -loginput=$rofsbuild`; + print "@cmdres\n"; + if(($maksym ne "") && ($maksym ne $symbolfile)) + { + rename($symbolfile, $maksym); + } +} +# +# args - get command line args +# +sub args +{ + my $arg; + my @args; + my $flag; + + &help if (!@ARGV); + + while (@ARGV) + { + $arg = shift @ARGV; + + if ($arg=~/^[\-](\S*)$/) + { + $flag=$1; + + if ($flag=~/^[\?h]$/i) + { + &help; + } + elsif ($flag=~/^d$/i) + { + $debug = 1; + } + else + { + print "\nERROR: Unknown flag \"-$flag\"\n"; + &usage; + exit 1; + } + } + else + { + push @args,$arg; + } + } + + if (@args) + { + $rofsbuild = shift @args; + if (@args) + { + $maksym = shift @args; + if (@args) + { + print "\nERROR: Incorrect argument(s) \"@args\"\n"; + &usage; + exit 1; + } + } + } +} + +sub help () +{ + my $build; + + print "\nmaksymrofs - Produce symbolic information given a ROFS image V${MajorVersion}.${MinorVersion}.${PatchVersion}\n"; + &usage; + exit 0; +} + +sub usage () +{ + print < [] + +Where: + Log file from rofsbuild tool. + Output file. Defaults to imagename.symbol. +EOF + ; + exit 0; +}