1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Daniel Stenberg 2008-10-14 20:44:49 +00:00
parent d2dd34ba29
commit 7728c94470
5 changed files with 435 additions and 0 deletions

32
tools/release/README Normal file
View file

@ -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.

169
tools/release/bins.pl Executable file
View file

@ -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");

99
tools/release/manuals.pl Executable file
View file

@ -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");

34
tools/release/tarball.sh Executable file
View file

@ -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

101
tools/release/voices.pl Executable file
View file

@ -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");