summaryrefslogtreecommitdiff
path: root/tools/buildzip.pl
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-05-21 19:05:27 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-05-21 19:05:27 +0000
commit760b7b9ed4dbafff70bade59cd06cd5f19ead9cc (patch)
tree8aa1100b3d162e69a7950ae8b05a78dfb3375102 /tools/buildzip.pl
parent0a6acd5539e36171ef39afdaf4b51e9e5e75f0a1 (diff)
downloadrockbox-760b7b9ed4dbafff70bade59cd06cd5f19ead9cc.zip
rockbox-760b7b9ed4dbafff70bade59cd06cd5f19ead9cc.tar.gz
rockbox-760b7b9ed4dbafff70bade59cd06cd5f19ead9cc.tar.bz2
rockbox-760b7b9ed4dbafff70bade59cd06cd5f19ead9cc.tar.xz
build a Rockbox zip file suitable for install
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4671 a1c6a512-1295-4272-9138-f99709370657
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");
+}
+