| #!/usr/bin/perl |
| |
| sub buildlangs { |
| my ($outputlang)=@_; |
| my $dir = "../apps/lang"; |
| opendir(DIR, $dir); |
| my @files = grep { /\.lang$/ } readdir(DIR); |
| closedir(DIR); |
| |
| for(@files) { |
| my $output = $_; |
| $output =~ s/(.*)\.lang/$1.lng/; |
| print "lang $_\n" if($verbose); |
| system ("../tools/binlang $dir/english.lang $dir/$_ $outputlang/$output >/dev/null 2>&1"); |
| } |
| } |
| |
| sub buildzip { |
| my ($zip, $image, $notplayer)=@_; |
| |
| # remove old traces |
| `rm -rf .rockbox`; |
| |
| mkdir ".rockbox", 0777; |
| mkdir ".rockbox/langs", 0777; |
| mkdir ".rockbox/rocks", 0777; |
| `find . -name "*.rock" ! -empty | xargs --replace=foo cp foo .rockbox/rocks/`; |
| |
| if($notplayer) { |
| `cp ../apps/plugins/sokoban.levels .rockbox/`; # sokoban levels |
| |
| open VIEWERS, "../apps/plugins/viewers.config" or |
| die "can't open viewers.config"; |
| @viewers = <VIEWERS>; |
| close VIEWERS; |
| `cp ../apps/plugins/viewers.config .rockbox`; |
| mkdir ".rockbox/viewers"; |
| for (@viewers) { |
| if (/,(.+),/) { |
| `mv .rockbox/rocks/$1 .rockbox/viewers`; |
| } |
| } |
| |
| mkdir ".rockbox/fonts", 0777; |
| |
| opendir(DIR, "../fonts") || die "can't open dir fonts"; |
| my @fonts = grep { /\.bdf$/ && -f "../fonts/$_" } readdir(DIR); |
| closedir DIR; |
| |
| for(@fonts) { |
| my $f = $_; |
| |
| print "FONT: $f\n" if($verbose); |
| my $o = $f; |
| $o =~ s/\.bdf/\.fnt/; |
| my $cmd ="../tools/convbdf -s 32 -l 255 -f -o \".rockbox/fonts/$o\" \"../fonts/$f\" >/dev/null 2>&1"; |
| print "CMD: $cmd\n" if($verbose); |
| `$cmd`; |
| } |
| |
| `cp rockbox.ucl .rockbox/`; # UCL for flashing |
| } |
| |
| mkdir ".rockbox/docs", 0777; |
| for(("BATTERY-FAQ", |
| "CUSTOM_CFG_FORMAT", |
| "CUSTOM_WPS_FORMAT", |
| "FAQ", |
| "NODO", |
| "TECH")) { |
| `cp ../docs/$_ .rockbox/docs/$_.txt`; |
| } |
| |
| # now copy the file made for reading on the unit: |
| #if($notplayer) { |
| # `cp $webroot/docs/Help-JBR.txt .rockbox/docs/`; |
| #} |
| #else { |
| # `cp $webroot/docs/Help-Stu.txt .rockbox/docs/`; |
| #} |
| |
| buildlangs(".rockbox/langs"); |
| |
| `find .rockbox | zip $zip -@ >/dev/null`; |
| |
| `zip $zip $image`; |
| |
| # remove the .rockbox afterwards |
| `rm -rf .rockbox`; |
| |
| print "Created $zip\n"; |
| } |
| |
| my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
| localtime(time); |
| |
| $mon+=1; |
| $year+=1900; |
| |
| $date=sprintf("%04d%02d%02d", $year,$mon, $mday); |
| $shortdate=sprintf("%02d%02d%02d", $year%100,$mon, $mday); |
| |
| my $verbose; |
| if($ARGV[0] eq "-v") { |
| $verbose =1; |
| shift @ARGV; |
| } |
| |
| # made once for all targets |
| sub runone { |
| my ($type, $target)=@_; |
| |
| # build a full install zip file |
| buildzip("rockbox.zip", $target, |
| ($type eq "player")?0:1); |
| }; |
| |
| if($ARGV[0] !~ /player/i) { |
| runone("recorder", "ajbrec.ajz"); |
| } |
| else { |
| runone("player", "archos.mod"); |
| } |
| |