summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2008-10-14 20:44:49 +0000
committerDaniel Stenberg <daniel@haxx.se>2008-10-14 20:44:49 +0000
commit7728c9447010e74709ef9f3cb6ddeaa731cc0465 (patch)
tree493b442e72f6d07174993bf285505f03c2d20601
parentd2dd34ba29d2d3f392c9d8f6052e9127556f8d83 (diff)
downloadrockbox-7728c9447010e74709ef9f3cb6ddeaa731cc0465.zip
rockbox-7728c9447010e74709ef9f3cb6ddeaa731cc0465.tar.gz
rockbox-7728c9447010e74709ef9f3cb6ddeaa731cc0465.tar.bz2
rockbox-7728c9447010e74709ef9f3cb6ddeaa731cc0465.tar.xz
This is my initial commit of the scripts I used to make the 3.0 release
files. The README contains some initial docs, plans and current status. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18812 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--tools/release/README32
-rwxr-xr-xtools/release/bins.pl169
-rwxr-xr-xtools/release/manuals.pl99
-rwxr-xr-xtools/release/tarball.sh34
-rwxr-xr-xtools/release/voices.pl101
5 files changed, 435 insertions, 0 deletions
diff --git a/tools/release/README b/tools/release/README
new file mode 100644
index 0000000..294c7ba
--- /dev/null
+++ b/tools/release/README
@@ -0,0 +1,32 @@
+ __________ __ ___.
+ Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ \/ \/ \/ \/ \/
+
+ This directory contains useful scripts when creating and building
+ releases. The plan is to hopefully create a single top-level script that will
+ run everything needed to make a complete and full release and put all
+ generated data into a separate output directory.
+
+ NOTE that these scripts assume that you have the necessary compilers already
+ present in your PATH.
+
+ The scripts:
+
+ bins.pl Builds all the binary rockbox zip files.
+
+ manuals.pl Builds all manuals
+
+ voices.pl Builds all english voice files
+
+ tarball.sh Builds the source tarball
+
+
+ STATUS
+
+ All these scripts have a "version" variable at the top that needs editing and
+ each of this script needs to be run at the source tree root to function. Most
+ of them put their generated files in a subdir called 'output' which the
+ scripts create.
diff --git a/tools/release/bins.pl b/tools/release/bins.pl
new file mode 100755
index 0000000..49fe8c1
--- /dev/null
+++ b/tools/release/bins.pl
@@ -0,0 +1,169 @@
+#!/usr/bin/perl
+
+$version="3.0";
+
+my $verbose;
+if($ARGV[0] eq "-v") {
+ $verbose =1;
+ shift @ARGV;
+}
+
+my $update;
+if($ARGV[0] eq "-u") {
+ $update =1;
+ shift @ARGV;
+}
+
+my $doonly;
+if($ARGV[0]) {
+ $doonly = $ARGV[0];
+ print "only build $doonly\n" if($verbose);
+}
+
+if($update) {
+ # svn update!
+ system("svn -q up");
+}
+
+$rev = `svnversion`;
+chomp $rev;
+print "rev $rev\n" if($verbose);
+
+# made once for all targets
+sub runone {
+ my ($dir, $confnum, $extra)=@_;
+ my $a;
+
+ if($doonly && ($doonly ne $dir)) {
+ return;
+ }
+
+ mkdir "build-$dir";
+ chdir "build-$dir";
+ print "Build in build-$dir\n" if($verbose);
+
+ # build the manual(s)
+ $a = buildit($dir, $confnum, $extra);
+
+ chdir "..";
+
+ my $o="build-$dir/rockbox.zip";
+ if (-f $o) {
+ my $newo="output/rockbox-$dir-$version.zip";
+ system("mkdir -p output");
+ system("mv $o $newo");
+ print "moved $o to $newo\n" if($verbose);
+ }
+
+ print "remove all contents in build-$dir\n" if($verbose);
+ system("rm -rf build-$dir");
+
+ return $a;
+};
+
+sub fonts {
+ my ($dir, $confnum, $newl)=@_;
+ my $a;
+
+ if($doonly && ($doonly ne $dir)) {
+ return;
+ }
+
+ mkdir "build-$dir";
+ chdir "build-$dir";
+ print "Build fonts in build-$dir\n" if($verbose);
+
+ # build the manual(s)
+ $a = buildfonts($dir, $confnum, $newl);
+
+ chdir "..";
+
+ my $o="build-$dir/rockbox-fonts.zip";
+ if (-f $o) {
+ my $newo="output/rockbox-fonts-$version.zip";
+ system("mv $o $newo");
+ print "moved $o to $newo\n" if($verbose);
+ }
+
+ print "remove all contents in build-$dir\n" if($verbose);
+ system("rm -rf build-$dir");
+
+ return $a;
+};
+
+
+
+sub buildit {
+ my ($target, $confnum, $extra)=@_;
+
+ `rm -rf * >/dev/null 2>&1`;
+
+ my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
+ $confnum, $extra);
+
+ print "C: $c\n" if($verbose);
+ `$c`;
+
+ print "Run 'make'\n" if($verbose);
+ `make -j 2>/dev/null`;
+
+ print "Run 'make zip'\n" if($verbose);
+ `make zip 2>/dev/null`;
+
+ print "Run 'make mapzip'\n" if($verbose);
+ `make mapzip 2>/dev/null`;
+}
+
+sub buildfonts {
+ my ($target, $confnum, $newl)=@_;
+
+ `rm -rf * >/dev/null 2>&1`;
+
+ my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
+ $confnum, $newl?'\n':'');
+
+ print "C: $c\n" if($verbose);
+ `$c`;
+
+ print "Run 'make fontzip'\n" if($verbose);
+ `make fontzip 2>/dev/null`;
+}
+
+# run make in tools first to make sure they're up-to-date
+print "cd tools && make\n" if($verbose);
+`(cd tools && make ) >/dev/null 2>&1`;
+
+runone("player", "player", '\n');
+runone("recorder", "recorder", '\n');
+runone("recorder8mb", "recorder", '8\n');
+runone("fmrecorder", "fmrecorder", '\n');
+runone("fmrecorder8mb", "fmrecorder", '8\n');
+runone("recorderv2", "recorderv2", '\n');
+runone("ondiosp", "ondiosp", '\n');
+runone("ondiofm", "ondiofm", '\n');
+runone("h100", "h100");
+runone("h120", "h120");
+runone("h300", "h300");
+runone("ipodcolor", "ipodcolor");
+runone("ipodnano", "ipodnano");
+runone("ipod4gray", "ipod4g");
+runone("ipodvideo", "ipodvideo", '32\n');
+runone("ipodvideo64mb", "ipodvideo", '64\n');
+runone("ipod3g", "ipod3g");
+runone("ipod1g2g", "ipod1g2g");
+runone("iaudiox5", "x5");
+runone("iaudiom5", "m5");
+runone("iaudiom3", "m3");
+runone("ipodmini1g", "ipodmini");
+runone("ipodmini2g", "ipodmini2g");
+runone("h10", "h10");
+runone("h10_5gb", "h10_5gb");
+runone("gigabeatf", "gigabeatf");
+runone("sansae200", "e200");
+runone("sansac200", "c200");
+#runone("mrobe500", "mrobe500");
+runone("mrobe100", "mrobe100");
+runone("cowond2", "cowond2");
+fonts("fonts", "x5");
+
+
diff --git a/tools/release/manuals.pl b/tools/release/manuals.pl
new file mode 100755
index 0000000..4867a17
--- /dev/null
+++ b/tools/release/manuals.pl
@@ -0,0 +1,99 @@
+#!/usr/bin/perl
+
+$version="3.0";
+
+my $verbose;
+if($ARGV[0] eq "-v") {
+ $verbose =1;
+ shift @ARGV;
+}
+
+my $doonly;
+if($ARGV[0]) {
+ $doonly = $ARGV[0];
+ print "only build $doonly\n" if($verbose);
+}
+
+# made once for all targets
+sub runone {
+ my ($dir, $conf, $nl)=@_;
+ my $a;
+
+ if($doonly && ($doonly ne $dir)) {
+ return;
+ }
+
+ mkdir "buildm-$dir";
+ chdir "buildm-$dir";
+ print "Build in buildm-$dir\n" if($verbose);
+
+ # build the manual(s)
+ $a = buildit($dir, $conf, $nl);
+
+ chdir "..";
+
+ my $o="buildm-$dir/manual/rockbox-build.pdf";
+ if (-f $o) {
+ my $newo="output/rockbox-$dir-$version.pdf";
+ system("mv $o $newo");
+ print "moved $o to $newo\n" if($verbose);
+ }
+
+ $o="buildm-$dir/rockbox-manual.zip";
+ if (-f $o) {
+ my $newo="output/rockbox-$dir-$version-html.zip";
+ system("mv $o $newo");
+ print "moved $o to $newo\n" if($verbose);
+ }
+
+ print "remove all contents in buildm-$dir\n" if($verbose);
+ system("rm -rf buildm-$dir");
+
+ return $a;
+};
+
+sub buildit {
+ my ($target, $confnum, $newl)=@_;
+
+ `rm -rf * >/dev/null 2>&1`;
+
+ my $c = sprintf('echo -e "%s\n%sm\n" | ../tools/configure',
+ $confnum, $newl?'\n':'');
+
+ print "C: $c\n" if($verbose);
+ `$c`;
+
+ print "Run 'make'\n" if($verbose);
+ `make manual 2>/dev/null`;
+
+ print "Run 'make manual-zip'\n" if($verbose);
+ `make manual-zip 2>/dev/null`;
+}
+
+# run make in tools first to make sure they're up-to-date
+`(cd tools && make ) >/dev/null 2>&1`;
+
+runone("player", "player", 1);
+runone("recorder", "recorder", 1);
+runone("fmrecorder", "fmrecorder", 1);
+runone("recorderv2", "recorderv2", 1);
+runone("ondiosp", "ondiosp", 1);
+runone("ondiofm", "ondiofm", 1);
+runone("h100", "h100");
+#runone("h120", 9);
+runone("h300", "h300");
+runone("ipodcolor", "ipodcolor");
+runone("ipodnano", "ipodnano");
+runone("ipod4gray", "ipod4g");
+runone("ipodvideo", "ipodvideo", 1);
+runone("ipod3g", "ipod3g");
+runone("ipod1g2g", "ipod1g2g");
+runone("iaudiox5", "x5");
+runone("iaudiom5", "m5");
+runone("ipodmini2g", "ipodmini2g");
+runone("h10", "h10");
+runone("h10_5gb", "h10_5gb");
+runone("gigabeatf", "gigabeatf");
+runone("sansae200", "e200");
+runone("sansac200", "c200");
+runone("mrobe100", "mrobe100");
diff --git a/tools/release/tarball.sh b/tools/release/tarball.sh
new file mode 100755
index 0000000..21335dd
--- /dev/null
+++ b/tools/release/tarball.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+version="3.0"
+
+srcdir=.
+tempdir=rockbox-temp
+outfile=rockbox-$version.7z
+
+# remove previous leftovers
+rm -rf $tempdir
+
+cd $srcdir
+
+# create the dir name based on revision number
+rbdir=$tempdir/rockbox-$version
+
+# create new temp dir
+mkdir -p $rbdir
+
+# copy everything to the temp dir
+svn ls -R | xargs -Imoo cp --parents moo $rbdir 2>/dev/null
+
+cd $tempdir
+
+rm -f $outfile
+
+# 7zip the entire directory
+7zr a $outfile rockbox*
+
+# world readable please
+chmod a+r $outfile
+
+# remove temporary files
+rm -rf $tempdir
diff --git a/tools/release/voices.pl b/tools/release/voices.pl
new file mode 100755
index 0000000..a05f706
--- /dev/null
+++ b/tools/release/voices.pl
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+
+$version="3.0";
+
+my $verbose;
+if($ARGV[0] eq "-v") {
+ $verbose =1;
+ shift @ARGV;
+}
+
+my $doonly;
+if($ARGV[0]) {
+ $doonly = $ARGV[0];
+ print "only build $doonly\n" if($verbose);
+}
+
+# made once for all targets
+sub runone {
+ my ($dir, $select, $newl)=@_;
+ my $a;
+
+ if($doonly && ($doonly ne $dir)) {
+ return;
+ }
+
+ mkdir "build-$dir";
+ chdir "build-$dir";
+ print "Build in build-$dir\n" if($verbose);
+
+ # build the manual(s)
+ $a = buildit($dir, $select, $newl);
+
+ chdir "..";
+
+ my $o="build-$dir/english.voice";
+ if (-f $o) {
+ my $newo="output/$dir-$version-english.zip";
+ system("cp $o output/$dir-$version-english.voice");
+ system("mkdir -p .rockbox/langs");
+ system("cp $o .rockbox/langs");
+ system("zip -r $newo .rockbox");
+ system("rm -rf .rockbox");
+ print "moved $o to $newo\n" if($verbose);
+ }
+
+ print "remove all contents in build-$dir\n" if($verbose);
+ system("rm -rf build-$dir");
+
+ return $a;
+};
+
+sub buildit {
+ my ($dir, $select, $newl)=@_;
+
+ `rm -rf * >/dev/null 2>&1`;
+
+ # V (voice), F (festival), L (lame), [blank] (English)
+ my $c = sprintf('echo -e "%s\n%sa\nv\n\n\nf\n\n" | ../tools/configure',
+ $select, $newl?'\n':"");
+
+ print "C: $c\n" if($verbose);
+ `$c`;
+
+ print "Run 'make voice'\n" if($verbose);
+ print `make voice 2>/dev/null`;
+}
+
+# run make in tools first to make sure they're up-to-date
+`(cd tools && make ) >/dev/null 2>&1`;
+
+`rm -f /home/dast/tmp/rockbox-voices-$version/voice-pool/*`;
+$ENV{'POOL'}="/home/dast/tmp/rockbox-voices-$version/voice-pool";
+
+runone("player", "player", 1);
+runone("recorder", "recorder", 1);
+runone("fmrecorder", "fmrecorder", 1);
+runone("recorderv2", "recorderv2", 1);
+runone("ondiosp", "ondiosp", 1);
+runone("ondiofm", "ondiofm", 1);
+runone("h100", "h100");
+runone("h120", "h120");
+runone("h300", "h300");
+runone("ipodcolor", "ipodcolor");
+runone("ipodnano", "ipodnano");
+runone("ipod4gray", "ipod4g");
+runone("ipodvideo", "ipodvideo", 1);
+runone("ipod3g", "ipod3g");
+runone("ipod1g2g", "ipod1g2g");
+runone("iaudiox5", "x5");
+runone("iaudiom5", "m5");
+runone("iaudiom3", "m3");
+runone("ipodmini2g", "ipodmini2g");
+runone("ipodmini1g", "ipodmini");
+runone("h10", "h10");
+runone("h10_5gb", "h10_5gb");
+runone("gigabeatf", "gigabeatf");
+runone("sansae200", "e200");
+runone("sansac200", "c200");
+runone("mrobe100", "mrobe100");
+#runone("cowond2", "cowond2");
+