3 ##############################################################################
5 # Ok, so there is this buildsystem that has variables set in shell
10 # This means we can go
12 # if test "${AR+set}" != set; then
20 # Damn perl installation *PARSES* and *PATTERN MATCHES* this file.
22 ##############################################################################
29 $callbacks->{'ar'} = [\&simple_process, ["AR", "arm-linux-ar"]];
30 $callbacks->{'archname'} = [\&simple_process, ["SYS", "armv4l-linux"]];
31 $callbacks->{'cc'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
32 $callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
33 $callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]];
34 $callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
35 $callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]];
36 $callbacks->{'ccname'} = [\&simple_process, ["CC", "arm-linux-gcc"]];
37 $callbacks->{'cpp'} = [\&simple_process, ["CCP", "arm-linux-cpp"]];
38 $callbacks->{'cppflags'} = [\&simple_process, ["CCPFLAGS", "-fno-strict-aliasing"]];
39 $callbacks->{'cpprun'} = [\&simple_process_append, ["CC", "arm-linux-gcc -E", "-E"]];
40 $callbacks->{'cppstdin'} = [\&simple_process_append, ["CC", "arm-linux-gcc -E", "-E"]];
41 $callbacks->{'full_ar'} = [\&backtick, ["AR", "which $ENV{AR}", "/usr/local/arm/2.95.3/bin/arm-linux-ar"]];
42 $callbacks->{'ld'} = [\&simple_process, ["LD", "arm-linux-ld"]];
43 $callbacks->{'ldflags'} = [\&simple_process, ["LDFLAGS", ""]];
44 $callbacks->{'ldflags_uselargefiles'} = [\&simple_process, ["LDFLAGS", ""]];
45 $callbacks->{'myarchname'} = [\&simple_process, ["SYS", "armv4l-linux"]];
46 $callbacks->{'archlib'} = [\&library_munge, ["SYS", "armv4l-linux"]];
47 $callbacks->{'archlibexp'} = [\&library_munge, ["SYS", "armv4l-linux"]];
48 $callbacks->{'installarchlib'} = [\&library_munge, ["SYS", "armv4l-linux"]];
49 $callbacks->{'installsitearch'} = [\&library_munge, ["SYS", "armv4l-linux"]];
50 $callbacks->{'sitearch'} = [\&library_munge, ["SYS", "armv4l-linux"]];
51 $callbacks->{'sitearchexp'} = [\&library_munge, ["SYS", "armv4l-linux"]];
54 die("Please run me as generate_config_sh path/to/original/config.sh");
57 open(FILE, "$config") || die("Unable to open $config");
60 while ($line_in = <FILE>) {
61 if ($line_in =~ /^#/) {
65 if ($line_in !~ /./) {
69 $line_in =~ /^([^=]+)=(.*)/;
72 if (ref($callbacks->{$key}) eq "ARRAY") {
73 ($callbacks->{$key}[0])->($key,$value);
82 my $envvar = $callbacks->{$key}->[1][0];
85 my $rawtext = `$callbacks->{$key}->[1][1]`;
87 print("$key=\'$rawtext\'\n");
89 print("$key=\'$callbacks->{$key}->[1][2]\'\n");
96 my $envvar = $callbacks->{$key}->[1][0];
99 print("$key=\"$ENV{$envvar}\"\n");
101 print("$key=\'$callbacks->{$key}->[1][1]\'\n");
106 sub simple_process_append {
108 my $envvar = $callbacks->{$key}->[1][0];
111 print("$key=\"$ENV{$envvar} $callbacks->{$key}->[1][2]\"\n");
113 print("$key=\'$callbacks->{$key}->[1][1]\'\n");
121 my $envvar = $callbacks->{$key}->[1][0];
124 $value =~ s/$callbacks->{$key}->[1][1]/$ENV{$envvar}/g;
125 print("$key=$value\n");
127 print("$key=$value\n");