summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/autoconf.pl79
1 files changed, 79 insertions, 0 deletions
diff --git a/tools/autoconf.pl b/tools/autoconf.pl
new file mode 100755
index 0000000000..3dae96502f
--- /dev/null
+++ b/tools/autoconf.pl
@@ -0,0 +1,79 @@
1#!/usr/bin/perl
2# __________ __ ___.
3# Open \______ \ ____ ____ | | _\_ |__ _______ ___
4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7# \/ \/ \/ \/ \/
8# $Id$
9#
10
11# This program attempts to run configure with the correct build target
12# and type based on the pwd.
13# example: ~/rockbox/sansae200 is the build dir, it would run configure
14# for the sansae200 normal build target.
15# ~/rockbox/sansae200-sim for the e200 sim build (-boot for bootloader)
16# ~/rockbox/sim/sansae200 for e200 sim build. (replace sim with boot is also possible)
17# The full shortname is not required, each target name is checked and the first
18# possible match is used.
19
20# This script must be placed in the same directory as configure and builds.pm
21#
22
23use File::Basename;
24my $srcdir = dirname $0;
25require "$srcdir/builds.pm";
26
27my $builddir = `pwd`;
28my @dirs = split(/\//, $builddir);
29
30my $test = pop(@dirs);
31
32sub doconfigure {
33 my ($target, $type) = @_;
34 if (!exists($builds{$target})) {
35 for $key (keys(%builds)) {
36 if ($key =~ $target) {
37 $target = $key;
38 last;
39 }
40 }
41 }
42 $command = "${srcdir}/configure --type=${type} --target=${target}";
43 %typenames = ("n" => "Normal", "s" => "Simulator", "b" => "Bootloader" );
44 print "Rockbox autoconf: \n\tTarget: $target \n\tType: $typenames{$type} \nCorrect? [Y/n] ";
45 chomp($response = <>);
46 if ($response eq "") {
47 $response = "y";
48 }
49 if ($response ne "y" && $response ne "Y") {
50 print "autoconf: Aborting\n";
51 exit(0);
52 }
53 system($command);
54}
55
56sub buildtype {
57 my ($text) = @_;
58 if ($text eq "sim") {
59 $build = "s";
60 } elsif ($text eq "boot") {
61 $build = "b";
62 } else {
63 $build = "n";
64 }
65 return $build;
66}
67
68if ($test =~ /(.*)-(.*)/)
69{
70 $target = $1;
71 $build = buildtype($2);
72 doconfigure($target, $build);
73}
74elsif ($test =~ /(.*)/)
75{
76 $target = $1;
77 $build = buildtype(pop(@dirs));
78 doconfigure($target, $build);
79}