summaryrefslogtreecommitdiff
path: root/tools/buildzip.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/buildzip.pl')
-rwxr-xr-xtools/buildzip.pl112
1 files changed, 112 insertions, 0 deletions
diff --git a/tools/buildzip.pl b/tools/buildzip.pl
new file mode 100755
index 0000000..a1edb4e
--- /dev/null
+++ b/tools/buildzip.pl
@@ -0,0 +1,112 @@
+#!/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
+
+ 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");
+}
+