From 7728c9447010e74709ef9f3cb6ddeaa731cc0465 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 14 Oct 2008 20:44:49 +0000 Subject: 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 --- tools/release/README | 32 +++++++++ tools/release/bins.pl | 169 +++++++++++++++++++++++++++++++++++++++++++++++ tools/release/manuals.pl | 99 +++++++++++++++++++++++++++ tools/release/tarball.sh | 34 ++++++++++ tools/release/voices.pl | 101 ++++++++++++++++++++++++++++ 5 files changed, 435 insertions(+) create mode 100644 tools/release/README create mode 100755 tools/release/bins.pl create mode 100755 tools/release/manuals.pl create mode 100755 tools/release/tarball.sh create mode 100755 tools/release/voices.pl diff --git a/tools/release/README b/tools/release/README new file mode 100644 index 0000000000..294c7ba136 --- /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 0000000000..49fe8c1d73 --- /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 0000000000..4867a17920 --- /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 0000000000..21335dd954 --- /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 0000000000..a05f706111 --- /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"); + -- cgit v1.2.3