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:
parent
d2dd34ba29
commit
7728c94470
5 changed files with 435 additions and 0 deletions
32
tools/release/README
Normal file
32
tools/release/README
Normal 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
169
tools/release/bins.pl
Executable 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
99
tools/release/manuals.pl
Executable 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
34
tools/release/tarball.sh
Executable 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
101
tools/release/voices.pl
Executable 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");
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue