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.tar.gz
rockbox-7728c9447010e74709ef9f3cb6ddeaa731cc0465.zip
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 0000000000..294c7ba136
--- /dev/null
+++ b/tools/release/README
@@ -0,0 +1,32 @@
1 __________ __ ___.
2 Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 \/ \/ \/ \/ \/
7
8 This directory contains useful scripts when creating and building
9 releases. The plan is to hopefully create a single top-level script that will
10 run everything needed to make a complete and full release and put all
11 generated data into a separate output directory.
12
13 NOTE that these scripts assume that you have the necessary compilers already
14 present in your PATH.
15
16 The scripts:
17
18 bins.pl Builds all the binary rockbox zip files.
19
20 manuals.pl Builds all manuals
21
22 voices.pl Builds all english voice files
23
24 tarball.sh Builds the source tarball
25
26
27 STATUS
28
29 All these scripts have a "version" variable at the top that needs editing and
30 each of this script needs to be run at the source tree root to function. Most
31 of them put their generated files in a subdir called 'output' which the
32 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 @@
1#!/usr/bin/perl
2
3$version="3.0";
4
5my $verbose;
6if($ARGV[0] eq "-v") {
7 $verbose =1;
8 shift @ARGV;
9}
10
11my $update;
12if($ARGV[0] eq "-u") {
13 $update =1;
14 shift @ARGV;
15}
16
17my $doonly;
18if($ARGV[0]) {
19 $doonly = $ARGV[0];
20 print "only build $doonly\n" if($verbose);
21}
22
23if($update) {
24 # svn update!
25 system("svn -q up");
26}
27
28$rev = `svnversion`;
29chomp $rev;
30print "rev $rev\n" if($verbose);
31
32# made once for all targets
33sub runone {
34 my ($dir, $confnum, $extra)=@_;
35 my $a;
36
37 if($doonly && ($doonly ne $dir)) {
38 return;
39 }
40
41 mkdir "build-$dir";
42 chdir "build-$dir";
43 print "Build in build-$dir\n" if($verbose);
44
45 # build the manual(s)
46 $a = buildit($dir, $confnum, $extra);
47
48 chdir "..";
49
50 my $o="build-$dir/rockbox.zip";
51 if (-f $o) {
52 my $newo="output/rockbox-$dir-$version.zip";
53 system("mkdir -p output");
54 system("mv $o $newo");
55 print "moved $o to $newo\n" if($verbose);
56 }
57
58 print "remove all contents in build-$dir\n" if($verbose);
59 system("rm -rf build-$dir");
60
61 return $a;
62};
63
64sub fonts {
65 my ($dir, $confnum, $newl)=@_;
66 my $a;
67
68 if($doonly && ($doonly ne $dir)) {
69 return;
70 }
71
72 mkdir "build-$dir";
73 chdir "build-$dir";
74 print "Build fonts in build-$dir\n" if($verbose);
75
76 # build the manual(s)
77 $a = buildfonts($dir, $confnum, $newl);
78
79 chdir "..";
80
81 my $o="build-$dir/rockbox-fonts.zip";
82 if (-f $o) {
83 my $newo="output/rockbox-fonts-$version.zip";
84 system("mv $o $newo");
85 print "moved $o to $newo\n" if($verbose);
86 }
87
88 print "remove all contents in build-$dir\n" if($verbose);
89 system("rm -rf build-$dir");
90
91 return $a;
92};
93
94
95
96sub buildit {
97 my ($target, $confnum, $extra)=@_;
98
99 `rm -rf * >/dev/null 2>&1`;
100
101 my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
102 $confnum, $extra);
103
104 print "C: $c\n" if($verbose);
105 `$c`;
106
107 print "Run 'make'\n" if($verbose);
108 `make -j 2>/dev/null`;
109
110 print "Run 'make zip'\n" if($verbose);
111 `make zip 2>/dev/null`;
112
113 print "Run 'make mapzip'\n" if($verbose);
114 `make mapzip 2>/dev/null`;
115}
116
117sub buildfonts {
118 my ($target, $confnum, $newl)=@_;
119
120 `rm -rf * >/dev/null 2>&1`;
121
122 my $c = sprintf('echo -e "%s\n%sn\n" | ../tools/configure',
123 $confnum, $newl?'\n':'');
124
125 print "C: $c\n" if($verbose);
126 `$c`;
127
128 print "Run 'make fontzip'\n" if($verbose);
129 `make fontzip 2>/dev/null`;
130}
131
132# run make in tools first to make sure they're up-to-date
133print "cd tools && make\n" if($verbose);
134`(cd tools && make ) >/dev/null 2>&1`;
135
136runone("player", "player", '\n');
137runone("recorder", "recorder", '\n');
138runone("recorder8mb", "recorder", '8\n');
139runone("fmrecorder", "fmrecorder", '\n');
140runone("fmrecorder8mb", "fmrecorder", '8\n');
141runone("recorderv2", "recorderv2", '\n');
142runone("ondiosp", "ondiosp", '\n');
143runone("ondiofm", "ondiofm", '\n');
144runone("h100", "h100");
145runone("h120", "h120");
146runone("h300", "h300");
147runone("ipodcolor", "ipodcolor");
148runone("ipodnano", "ipodnano");
149runone("ipod4gray", "ipod4g");
150runone("ipodvideo", "ipodvideo", '32\n');
151runone("ipodvideo64mb", "ipodvideo", '64\n');
152runone("ipod3g", "ipod3g");
153runone("ipod1g2g", "ipod1g2g");
154runone("iaudiox5", "x5");
155runone("iaudiom5", "m5");
156runone("iaudiom3", "m3");
157runone("ipodmini1g", "ipodmini");
158runone("ipodmini2g", "ipodmini2g");
159runone("h10", "h10");
160runone("h10_5gb", "h10_5gb");
161runone("gigabeatf", "gigabeatf");
162runone("sansae200", "e200");
163runone("sansac200", "c200");
164#runone("mrobe500", "mrobe500");
165runone("mrobe100", "mrobe100");
166runone("cowond2", "cowond2");
167fonts("fonts", "x5");
168
169
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 @@
1#!/usr/bin/perl
2
3$version="3.0";
4
5my $verbose;
6if($ARGV[0] eq "-v") {
7 $verbose =1;
8 shift @ARGV;
9}
10
11my $doonly;
12if($ARGV[0]) {
13 $doonly = $ARGV[0];
14 print "only build $doonly\n" if($verbose);
15}
16
17# made once for all targets
18sub runone {
19 my ($dir, $conf, $nl)=@_;
20 my $a;
21
22 if($doonly && ($doonly ne $dir)) {
23 return;
24 }
25
26 mkdir "buildm-$dir";
27 chdir "buildm-$dir";
28 print "Build in buildm-$dir\n" if($verbose);
29
30 # build the manual(s)
31 $a = buildit($dir, $conf, $nl);
32
33 chdir "..";
34
35 my $o="buildm-$dir/manual/rockbox-build.pdf";
36 if (-f $o) {
37 my $newo="output/rockbox-$dir-$version.pdf";
38 system("mv $o $newo");
39 print "moved $o to $newo\n" if($verbose);
40 }
41
42 $o="buildm-$dir/rockbox-manual.zip";
43 if (-f $o) {
44 my $newo="output/rockbox-$dir-$version-html.zip";
45 system("mv $o $newo");
46 print "moved $o to $newo\n" if($verbose);
47 }
48
49 print "remove all contents in buildm-$dir\n" if($verbose);
50 system("rm -rf buildm-$dir");
51
52 return $a;
53};
54
55sub buildit {
56 my ($target, $confnum, $newl)=@_;
57
58 `rm -rf * >/dev/null 2>&1`;
59
60 my $c = sprintf('echo -e "%s\n%sm\n" | ../tools/configure',
61 $confnum, $newl?'\n':'');
62
63 print "C: $c\n" if($verbose);
64 `$c`;
65
66 print "Run 'make'\n" if($verbose);
67 `make manual 2>/dev/null`;
68
69 print "Run 'make manual-zip'\n" if($verbose);
70 `make manual-zip 2>/dev/null`;
71}
72
73# run make in tools first to make sure they're up-to-date
74`(cd tools && make ) >/dev/null 2>&1`;
75
76runone("player", "player", 1);
77runone("recorder", "recorder", 1);
78runone("fmrecorder", "fmrecorder", 1);
79runone("recorderv2", "recorderv2", 1);
80runone("ondiosp", "ondiosp", 1);
81runone("ondiofm", "ondiofm", 1);
82runone("h100", "h100");
83#runone("h120", 9);
84runone("h300", "h300");
85runone("ipodcolor", "ipodcolor");
86runone("ipodnano", "ipodnano");
87runone("ipod4gray", "ipod4g");
88runone("ipodvideo", "ipodvideo", 1);
89runone("ipod3g", "ipod3g");
90runone("ipod1g2g", "ipod1g2g");
91runone("iaudiox5", "x5");
92runone("iaudiom5", "m5");
93runone("ipodmini2g", "ipodmini2g");
94runone("h10", "h10");
95runone("h10_5gb", "h10_5gb");
96runone("gigabeatf", "gigabeatf");
97runone("sansae200", "e200");
98runone("sansac200", "c200");
99runone("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 @@
1#!/bin/sh
2
3version="3.0"
4
5srcdir=.
6tempdir=rockbox-temp
7outfile=rockbox-$version.7z
8
9# remove previous leftovers
10rm -rf $tempdir
11
12cd $srcdir
13
14# create the dir name based on revision number
15rbdir=$tempdir/rockbox-$version
16
17# create new temp dir
18mkdir -p $rbdir
19
20# copy everything to the temp dir
21svn ls -R | xargs -Imoo cp --parents moo $rbdir 2>/dev/null
22
23cd $tempdir
24
25rm -f $outfile
26
27# 7zip the entire directory
287zr a $outfile rockbox*
29
30# world readable please
31chmod a+r $outfile
32
33# remove temporary files
34rm -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 @@
1#!/usr/bin/perl
2
3$version="3.0";
4
5my $verbose;
6if($ARGV[0] eq "-v") {
7 $verbose =1;
8 shift @ARGV;
9}
10
11my $doonly;
12if($ARGV[0]) {
13 $doonly = $ARGV[0];
14 print "only build $doonly\n" if($verbose);
15}
16
17# made once for all targets
18sub runone {
19 my ($dir, $select, $newl)=@_;
20 my $a;
21
22 if($doonly && ($doonly ne $dir)) {
23 return;
24 }
25
26 mkdir "build-$dir";
27 chdir "build-$dir";
28 print "Build in build-$dir\n" if($verbose);
29
30 # build the manual(s)
31 $a = buildit($dir, $select, $newl);
32
33 chdir "..";
34
35 my $o="build-$dir/english.voice";
36 if (-f $o) {
37 my $newo="output/$dir-$version-english.zip";
38 system("cp $o output/$dir-$version-english.voice");
39 system("mkdir -p .rockbox/langs");
40 system("cp $o .rockbox/langs");
41 system("zip -r $newo .rockbox");
42 system("rm -rf .rockbox");
43 print "moved $o to $newo\n" if($verbose);
44 }
45
46 print "remove all contents in build-$dir\n" if($verbose);
47 system("rm -rf build-$dir");
48
49 return $a;
50};
51
52sub buildit {
53 my ($dir, $select, $newl)=@_;
54
55 `rm -rf * >/dev/null 2>&1`;
56
57 # V (voice), F (festival), L (lame), [blank] (English)
58 my $c = sprintf('echo -e "%s\n%sa\nv\n\n\nf\n\n" | ../tools/configure',
59 $select, $newl?'\n':"");
60
61 print "C: $c\n" if($verbose);
62 `$c`;
63
64 print "Run 'make voice'\n" if($verbose);
65 print `make voice 2>/dev/null`;
66}
67
68# run make in tools first to make sure they're up-to-date
69`(cd tools && make ) >/dev/null 2>&1`;
70
71`rm -f /home/dast/tmp/rockbox-voices-$version/voice-pool/*`;
72$ENV{'POOL'}="/home/dast/tmp/rockbox-voices-$version/voice-pool";
73
74runone("player", "player", 1);
75runone("recorder", "recorder", 1);
76runone("fmrecorder", "fmrecorder", 1);
77runone("recorderv2", "recorderv2", 1);
78runone("ondiosp", "ondiosp", 1);
79runone("ondiofm", "ondiofm", 1);
80runone("h100", "h100");
81runone("h120", "h120");
82runone("h300", "h300");
83runone("ipodcolor", "ipodcolor");
84runone("ipodnano", "ipodnano");
85runone("ipod4gray", "ipod4g");
86runone("ipodvideo", "ipodvideo", 1);
87runone("ipod3g", "ipod3g");
88runone("ipod1g2g", "ipod1g2g");
89runone("iaudiox5", "x5");
90runone("iaudiom5", "m5");
91runone("iaudiom3", "m3");
92runone("ipodmini2g", "ipodmini2g");
93runone("ipodmini1g", "ipodmini");
94runone("h10", "h10");
95runone("h10_5gb", "h10_5gb");
96runone("gigabeatf", "gigabeatf");
97runone("sansae200", "e200");
98runone("sansac200", "c200");
99runone("mrobe100", "mrobe100");
100#runone("cowond2", "cowond2");
101