Also build and keep elfs zip file for the release.
[maemo-rb.git] / tools / release / bins.pl
blob99982be41ad122528e3dad798f493b815f7b4437
1 #!/usr/bin/perl
2 $version="3.5RC";
4 require "tools/builds.pm";
6 my $verbose;
7 if($ARGV[0] eq "-v") {
8 $verbose =1;
9 shift @ARGV;
12 my $update;
13 if($ARGV[0] eq "-u") {
14 $update =1;
15 shift @ARGV;
18 my $doonly;
19 if($ARGV[0]) {
20 $doonly = $ARGV[0];
21 print "only build $doonly\n" if($verbose);
24 if($update) {
25 # svn update!
26 system("svn -q up");
29 $rev = `svnversion`;
30 chomp $rev;
31 print "rev $rev\n" if($verbose);
33 # made once for all targets
34 sub runone {
35 my ($dir, $confnum, $extra)=@_;
36 my $a;
38 if($doonly && ($doonly ne $dir)) {
39 return;
42 mkdir "build-$dir";
43 chdir "build-$dir";
44 print "Build in build-$dir\n" if($verbose);
46 # build the manual(s)
47 $a = buildit($dir, $confnum, $extra);
49 chdir "..";
51 my $o="build-$dir/rockbox.zip";
52 my $map="build-$dir/rockbox-maps.zip";
53 my $elf="build-$dir/rockbox-elfs.zip";
54 if (-f $o) {
55 my $newo="output/rockbox-$dir-$version.zip";
56 my $newmap="output/rockbox-$dir-$version-maps.zip";
57 my $newelf="output/rockbox-$dir-$version-elfs.zip";
58 system("mkdir -p output");
59 system("mv $o $newo");
60 print "moved $o to $newo\n" if($verbose);
61 system("mv $map $newmap");
62 print "moved $map to $newmap\n" if($verbose);
63 system("mv $elf $newelf");
64 print "moved $elf to $newelf\n" if($verbose);
67 print "remove all contents in build-$dir\n" if($verbose);
68 system("rm -rf build-$dir");
70 return $a;
73 sub fonts {
74 my ($dir, $confnum, $newl)=@_;
75 my $a;
77 if($doonly && ($doonly ne $dir)) {
78 return;
81 mkdir "build-$dir";
82 chdir "build-$dir";
83 print "Build fonts in build-$dir\n" if($verbose);
85 # build the fonts
86 $a = buildfonts($dir, $confnum, $newl);
88 chdir "..";
90 my $o="build-$dir/rockbox-fonts.zip";
91 if (-f $o) {
92 my $newo="output/rockbox-fonts-$version.zip";
93 system("mv $o $newo");
94 print "moved $o to $newo\n" if($verbose);
97 print "remove all contents in build-$dir\n" if($verbose);
98 system("rm -rf build-$dir");
100 return $a;
105 sub buildit {
106 my ($target, $confnum, $extra)=@_;
108 `rm -rf * >/dev/null 2>&1`;
110 my $ram = $extra ? $extra : -1;
111 my $c = "../tools/configure --type=n --target=$confnum --ram=$ram";
113 print "C: $c\n" if($verbose);
114 `$c`;
116 print "Run 'make'\n" if($verbose);
117 `make VERSION=$version`;
119 print "Run 'make zip'\n" if($verbose);
120 `make zip`;
122 print "Run 'make mapzip'\n" if($verbose);
123 `make mapzip`;
125 print "Run 'make elfzip'\n" if($verbose);
126 `make elfzip`;
129 sub buildfonts {
130 my ($target, $confnum, $newl)=@_;
132 `rm -rf * >/dev/null 2>&1`;
134 my $ram = $extra ? $extra : -1;
135 my $c = "../tools/configure --type=n --target=$confnum --ram=$ram";
137 print "C: $c\n" if($verbose);
138 `$c`;
140 print "Run 'make fontzip'\n" if($verbose);
141 `make fontzip`;
144 # run make in tools first to make sure they're up-to-date
145 print "cd tools && make\n" if($verbose);
146 `(cd tools && make ) >/dev/null`;
148 for my $b (&stablebuilds) {
149 my $configname = $builds{$b}{configname} ? $builds{$b}{configname} : $b;
150 runone($b, $configname, $builds{$b}{ram});
153 fonts("fonts", "iaudiox5");