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