author | Tom Sutcliffe <thomas.sutcliffe@accenture.com> |
Thu, 09 Sep 2010 15:47:34 +0100 | |
changeset 57 | 683f4b1f08ce |
parent 42 | e81b4e28b3e2 |
child 66 | 2a78c4ff2eab |
permissions | -rw-r--r-- |
42
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
1 |
#!perl -w |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
2 |
# baserom |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
3 |
# |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
4 |
# Copyright (c) 2009 - 2010 Accenture. All rights reserved. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
5 |
# This component and the accompanying materials are made available |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
6 |
# under the terms of the "Eclipse Public License v1.0" |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
7 |
# which accompanies this distribution, and is available |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
8 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html". |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
9 |
# |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
10 |
# Initial Contributors: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
11 |
# Accenture - Initial contribution |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
12 |
# |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
13 |
use strict; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
14 |
use Cwd; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
15 |
use Getopt::Long; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
16 |
use File::Path; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
17 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
18 |
#fwd decls for functions. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
19 |
sub CreateNewObeyFile(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
20 |
sub ProcessCommandLine(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
21 |
sub Usage(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
22 |
sub ConvertIbyLine($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
23 |
sub FindMissingDeps($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
24 |
sub ResolveMissingDeps($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
25 |
sub FindIby($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
26 |
sub CheckIbyContains($$); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
27 |
sub headerInfo($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
28 |
sub trim($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
29 |
sub Query($$); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
30 |
sub makeFullFileName($); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
31 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
32 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
33 |
# globals |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
34 |
my $verbose = 0; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
35 |
my $help; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
36 |
my $epocroot = $ENV{"epocroot"}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
37 |
my $tempDir = $ENV{"temp"}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
38 |
my $romIncludeDir; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
39 |
my $obyName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
40 |
my $obyPath; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
41 |
my $baseObeyFile = "tshell.oby"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
42 |
my $main = "armv5"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
43 |
my $build = "udeb"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
44 |
my $variant = "h4hrp"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
45 |
my $extraInclude = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
46 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
47 |
my %ignoreDeps = ('scppnwdl.dll' => 1, 'drtaeabi.dll' => 1, 'drtrvct2_2.dll' => 1, 'dfpaeabi.dll' => 1, 'dfprvct2_2.dll' => 1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
48 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
49 |
ProcessCommandLine(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
50 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
51 |
my $newObyFile; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
52 |
my $missingCount; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
53 |
my $continue; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
54 |
do { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
55 |
$continue = 0; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
56 |
$newObyFile = CreateNewObeyFile(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
57 |
my $missingFiles = FindMissingDeps($newObyFile); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
58 |
$missingCount = scalar(@$missingFiles); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
59 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
60 |
if ($missingCount) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
61 |
#print "$missingCount missing dependancies:\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
62 |
#foreach my $dep (@$missingFiles) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
63 |
# if (defined $dep->[1]) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
64 |
# print "$dep->[0] UID3: $dep->[1]\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
65 |
# } else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
66 |
# print "$dep->[0]\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
67 |
# } |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
68 |
#} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
69 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
70 |
if (Query("\nThere are $missingCount missing dependancies; resolve them now?", "yn")==0) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
71 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
72 |
ResolveMissingDeps($missingFiles); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
73 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
74 |
$continue = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
75 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
76 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
77 |
$newObyFile = CreateNewObeyFile(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
78 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
79 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
80 |
} while ($missingCount && $continue); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
81 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
82 |
print "New OBY file: $newObyFile\n\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
83 |
print "To build a ROM:\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
84 |
print "rom --type tshell_$obyName --inst $main --build $build --variant $variant\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
85 |
exit(0); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
86 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
87 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
88 |
sub ProcessCommandLine() { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
89 |
Getopt::Long::Configure ("bundling"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
90 |
GetOptions( 'h' => \$help, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
91 |
'v+' => \$verbose, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
92 |
'e=s' => \$epocroot, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
93 |
'i=s' => \$romIncludeDir, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
94 |
'x=s' => \$extraInclude, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
95 |
'o=s' => \$baseObeyFile, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
96 |
'V=s' => \$variant, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
97 |
't=s' => \$main, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
98 |
'b=s' => \$build); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
99 |
Usage() if ($help); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
100 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
101 |
$epocroot = "$epocroot\\" unless $epocroot =~ m/\\$/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
102 |
my ($drive) = (getcwd =~ m/^(\w)\:/); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
103 |
die "Can't get current drive\n" unless $drive; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
104 |
$epocroot = "$drive:$epocroot"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
105 |
print "Using epocroot $epocroot\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
106 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
107 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
108 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
109 |
($romIncludeDir = "epoc32\\rom\\include") unless ($romIncludeDir); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
110 |
$romIncludeDir =~ s/\\$//; # remove trailing \ if it exists |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
111 |
$romIncludeDir = "$epocroot$romIncludeDir"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
112 |
print "Using include directory $romIncludeDir\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
113 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
114 |
unless (scalar (@ARGV) == 1) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
115 |
print "Inavlid arguments\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
116 |
Usage(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
117 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
118 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
119 |
$obyPath = $ARGV[0]; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
120 |
if ($obyPath =~ m/.*[\\\/]([^.]+)\..*/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
121 |
$obyName = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
122 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
123 |
$obyName = $obyPath; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
124 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
125 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
126 |
die "ERROR: Build must be either 'udeb' or 'urel'\n" unless ($build =~ m/(udeb)|(urel)/i); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
127 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
128 |
print "Using variant $variant, build $main $build\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
129 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
130 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
131 |
sub CreateNewObeyFile() { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
132 |
unless (-d $obyName) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
133 |
mkdir $obyName or die "Can't create dir $obyName: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
134 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
135 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
136 |
open OBEY, "<$obyPath" or die "Can't open $obyPath: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
137 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
138 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
139 |
my %ibysProcessed; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
140 |
my @ibyStack; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
141 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
142 |
my $obyBaseName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
143 |
if ($baseObeyFile =~ m/(.*)\.oby/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
144 |
$obyBaseName = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
145 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
146 |
$obyBaseName = "tshell"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
147 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
148 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
149 |
my $newObyName = "${obyBaseName}_$obyName.oby"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
150 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
151 |
open TSHELL_OBY, "<$baseObeyFile" or die "Can't open $baseObeyFile: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
152 |
open TSHELL_NEW, ">$newObyName" or die "Can't write to $newObyName: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
153 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
154 |
print "Creating tshell_$obyName.oby\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
155 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
156 |
while (my $line = <TSHELL_OBY>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
157 |
print TSHELL_NEW "$line"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
158 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
159 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
160 |
close (TSHELL_OBY); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
161 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
162 |
while (my $line = <OBEY>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
163 |
chomp $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
164 |
if ($line =~ m/^#include\s+[<"](.*)[>"]/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
165 |
my $iby = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
166 |
if (!$ibysProcessed{lc($iby)}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
167 |
print "Adding $iby to stack\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
168 |
push @ibyStack, $iby; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
169 |
$ibysProcessed{lc($iby)} = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
170 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
171 |
print TSHELL_NEW "#include \"$obyName\\$iby\"\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
172 |
next; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
173 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
174 |
print TSHELL_NEW ConvertIbyLine("$line"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
175 |
print TSHELL_NEW "\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
176 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
177 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
178 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
179 |
close TSHELL_NEW; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
180 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
181 |
while (my $iby = pop(@ibyStack)) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
182 |
print "Processing $iby\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
183 |
my $fullIby = "$romIncludeDir\\$iby"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
184 |
unless (-f $fullIby) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
185 |
warn "$fullIby does not exist\n" ; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
186 |
next; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
187 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
188 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
189 |
my $fixedIby = $iby; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
190 |
$fixedIby =~ s|^(\.\.[\\/])*||; # get rid of ..\ at path start |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
191 |
$fixedIby =~ s|^[\\/]||; # remove \ at start too |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
192 |
my ($ibyPath, $ibyFile) = ($fixedIby =~ m|^((?:.*[\\/])?)(.*)$|); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
193 |
if (($ibyPath) && (!-d "$obyName\\$ibyPath")) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
194 |
$ibyPath =~ s|[\\/]$||; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
195 |
mkpath("$obyName\\$ibyPath") or die "Can't create path $obyName\\$ibyPath: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
196 |
$ibyPath .= "/"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
197 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
198 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
199 |
my $newIby = "$obyName\\$ibyPath$ibyFile"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
200 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
201 |
#BEGIN TOMSCI |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
202 |
# For the purposes of finding #includes, we run $fulliby through CPP first so that we don't pick up includes that are #ifdef'd out |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
203 |
# To prevent the #includes being expanded, we have to change them in the file we run cpp over. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
204 |
open IBY, "<$fullIby" or die "Can't open $fullIby: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
205 |
open NOINCLUDEIBY, ">$newIby.noinclude" or die "Can't open $newIby.noinclude: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
206 |
while (my $line = <IBY>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
207 |
$line =~ s/#include/BASEROMHASHINCLUDE/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
208 |
print NOINCLUDEIBY $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
209 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
210 |
close IBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
211 |
close NOINCLUDEIBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
212 |
my $cppOpts = "-undef -traditional -lang-c++ -nostdinc -I . -I $romIncludeDir"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
213 |
if ($extraInclude) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
214 |
if (!($newIby =~ /$extraInclude$/)) { # Make sure we don't include the extraInclude in itself |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
215 |
$cppOpts .= " -include $romIncludeDir\\$extraInclude"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
216 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
217 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
218 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
219 |
my $cmd .= "cpp $cppOpts $newIby.noinclude"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
220 |
print "running: $cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
221 |
open IBYCPP, "$cmd |" or die "Can't run '$cmd': $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
222 |
while (my $line = <IBYCPP>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
223 |
chomp $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
224 |
#print "TOMSCI: $line\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
225 |
if ($line =~ m/^BASEROMHASHINCLUDE\s+[<"](.*)[>"]/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
226 |
my $iby = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
227 |
if (!$ibysProcessed{lc($iby)}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
228 |
print "Adding $iby to stack\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
229 |
push @ibyStack, $iby; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
230 |
$ibysProcessed{lc($iby)} = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
231 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
232 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
233 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
234 |
close IBYCPP; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
235 |
#END TOMSCI |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
236 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
237 |
open IBY, "<$fullIby" or die "Can't open $fullIby: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
238 |
open NEWIBY, ">$newIby" or die "Can't open $newIby: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
239 |
print "Creating $newIby\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
240 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
241 |
while (my $line = <IBY>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
242 |
chomp $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
243 |
if ($line =~ m/^#include\s+[<"](.*)[>"]/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
244 |
my $iby = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
245 |
#if (!$ibysProcessed{lc($iby)}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
246 |
# print "Adding $iby to stack\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
247 |
# push @ibyStack, $iby; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
248 |
# $ibysProcessed{lc($iby)} = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
249 |
# } |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
250 |
print NEWIBY "#include \"$iby\"\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
251 |
next; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
252 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
253 |
print NEWIBY ConvertIbyLine("$line"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
254 |
print NEWIBY "\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
255 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
256 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
257 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
258 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
259 |
close IBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
260 |
close NEWIBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
261 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
262 |
return $newObyName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
263 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
264 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
265 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
266 |
sub ConvertIbyLine($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
267 |
my $line = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
268 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
269 |
if ($line =~ m/^\s*\w*ECOM_PLUGIN(?:_UDEB)?\s*\(\s*(.*?)\s*,\s*(.*?)\s*\)\s*$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
270 |
my $dll = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
271 |
my $rsc = $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
272 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
273 |
my ($dllName) = $dll =~ m/^(.*?)\./; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
274 |
$rsc =~ s/[A-Fa-f0-9]{8}\.rs[cs]/$dllName.rsc/; # Some broken IBYs specify .rss instead of .rsc |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
275 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
276 |
return "file=\\epoc32\\release\\##MAIN\\##BUILD##\\$dll\t\"sys\\bin\\$dll\"\n". |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
277 |
"data=\\epoc32\\data\\Z\\resource\\Plugins\\$rsc\t\"resource\\plugins\\$rsc\""; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
278 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
279 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
280 |
if ($line =~ m|\\ABI_DIR\\|) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
281 |
$line =~ s|\\ABI_DIR\\|\\epoc32\\release\\##MAIN##\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
282 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
283 |
$line =~ s|ABI_DIR\\|\\epoc32\\release\\##MAIN##\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
284 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
285 |
$line =~ s|\\BUILD_DIR\\|\\##BUILD##\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
286 |
$line =~ s|\\DEBUG_DIR\\|\\##BUILD##\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
287 |
$line =~ s|\\USB_DIR\\|\\##BUILD##\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
288 |
$line =~ s|ZRESOURCE\\|\\epoc32\\data\\Z\\resource\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
289 |
$line =~ s|ZPRIVATE\\|\\epoc32\\data\\Z\\private\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
290 |
$line =~ s|ZSYSTEM\\|\\epoc32\\data\\Z\\system\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
291 |
$line =~ s|DATAZ_\\|\\epoc32\\data\\Z\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
292 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
293 |
if ($line =~ m|MULTI_LINGUIFY\s*\(\s*RSC\s+(.*?)\s+(.*?)\s*\)|) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
294 |
my $localRsc = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
295 |
my $romRsc = $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
296 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
297 |
my @resources = <$epocroot$localRsc.R*>; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
298 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
299 |
if (scalar(@resources)) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
300 |
$localRsc = $resources[0]; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
301 |
my $er = $epocroot; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
302 |
$er =~ s/\\/\\\\/g; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
303 |
$localRsc =~ s|$er|\\|; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
304 |
#print "FOUND: $localRsc\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
305 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
306 |
print "WARNING: resource for $romRsc could not be found\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
307 |
$localRsc .= ".RSC"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
308 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
309 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
310 |
$line = "data=$localRsc\t\"$romRsc.RSC\""; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
311 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
312 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
313 |
if ($line =~ m|^#\s*include (["^])(.*?)([">])(.*)$|) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
314 |
my ($firstQuote, $include, $lastQuote, $extra) = ($1, $2, $3, $4); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
315 |
$include =~ s|^(\.\.[\\/])*||; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
316 |
$include =~ s|^[\\/]||; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
317 |
$line = "#include $firstQuote$include$lastQuote$extra\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
318 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
319 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
320 |
return $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
321 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
322 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
323 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
324 |
sub Usage() { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
325 |
require Pod::Text; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
326 |
print "\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
327 |
my $parser = Pod::Text->new(); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
328 |
$parser->parse_from_file($0); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
329 |
exit; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
330 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
331 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
332 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
333 |
sub FindMissingDeps($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
334 |
my $obyFile = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
335 |
print "Checking dependancies...\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
336 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
337 |
my $ibys = {}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
338 |
my $filesByName = {}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
339 |
my $filesByUid = {}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
340 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
341 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
342 |
# since cpp doesn't deal with macros inside #include's, do it manually here: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
343 |
print "Manually processing $obyFile\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
344 |
open IBY, "<$obyFile" or die "Can't open $obyFile: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
345 |
my $ibyFile = "$tempDir\\baserom.tmp"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
346 |
open TEMPIBY, ">$ibyFile" or die "Can't open $ibyFile: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
347 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
348 |
while (my $line = <IBY>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
349 |
$line =~ s/\#\#VARIANT\#\#/$variant/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
350 |
$line =~ s/^\s*#/#/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
351 |
print TEMPIBY $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
352 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
353 |
close IBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
354 |
close TEMPIBY; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
355 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
356 |
my $cppOpts = "-undef -traditional -lang-c++ -nostdinc -I . -I ${epocroot}epoc32 -DVARIANT=$variant -DBUILD=$build -DMAIN=$main -DEUSERDIR=$main -DKMAIN=$main"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
357 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
358 |
my $cmd .= "cpp $cppOpts $ibyFile"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
359 |
print "running: $cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
360 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
361 |
open CPP, "$cmd |" or die "Can't run '$cmd': $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
362 |
while (my $line = <CPP>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
363 |
chomp $line; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
364 |
#print "\tCPP:$.:$line\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
365 |
$line =~ s/EPOCROOT##/\\/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
366 |
$line =~ s/##//g; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
367 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
368 |
my $executableSrc = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
369 |
my $executableTrg = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
370 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
371 |
if ($line =~ m/^# 1 "(.*)" 1/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
372 |
my $includedIby = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
373 |
print "iby included by cpp: $includedIby\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
374 |
$ibys->{lc($includedIby)} = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
375 |
} elsif ($line =~ m/^#/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
376 |
# ignore - line inserted by c preprocessor |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
377 |
$line = ""; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
378 |
} elsif ($line =~ m/^\s*file\s*=\s*(.*?)\s+(.*)$/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
379 |
$executableSrc = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
380 |
$executableTrg = trim $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
381 |
} elsif ($line =~ m/^\s*(device|extension|primary|variant|file)\[0x[0-9A-Fa-f]{8}\]\s*=\s*(.*?)\s+(.*)$/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
382 |
$executableSrc = $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
383 |
$executableTrg = trim $3; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
384 |
} elsif ($line =~ m|^\s*ECOM_PLUGIN\(\s*(.*?)\s*,| ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
385 |
$executableSrc = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
386 |
$executableTrg = $executableSrc; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
387 |
} elsif ($line =~ m|^\s*secondary\s*=(.*?)\s+(.*)$| ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
388 |
$executableSrc = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
389 |
$executableTrg = trim $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
390 |
} elsif ($line =~ m|^\s*data\s*=(.*?)\s|) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
391 |
my $data = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
392 |
print "WARNING: file $data not found\n" unless (-f "$epocroot$data"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
393 |
} elsif (length(trim($line))==0) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
394 |
# ignore empty line |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
395 |
} elsif ($line =~ m|^\s*REM\s.*$|i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
396 |
# comment, ignore. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
397 |
} elsif ($line =~ m|^\s*patchdata\s.*$| ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
398 |
# patchdata - ignore |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
399 |
} elsif ($line =~ m|^files=$|) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
400 |
# tshell.oby contains this line, not sure why. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
401 |
} elsif ($line =~ m/^\s*PlatSec(Diagnostics|Enforcement|ProcessIsolation|EnforceSysBin)\s*(ON|OFF)\s*$/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
402 |
# ignore platsec stuff |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
403 |
} elsif ($line =~ m/^\s*(debugport|kerneltrace|memmodel|trace|collapse|multikernel|version|bootbinary|romsize|romlinearbase|romalign|(kernel)?dataaddress|kernelheap(max|min)|defaultstackreserve|romchecksum|nowrapper|pagingpolicy)/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
404 |
# rom config stuff, ignore |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
405 |
} elsif ($line =~ m/^\s*#/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
406 |
# We ignore any other preprocessor directive |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
407 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
408 |
print "OBY line not recognised: $line\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
409 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
410 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
411 |
if ((defined $executableSrc) && (! ($executableSrc =~ m|eka1_entry_stub\.dll$|)) ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
412 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
413 |
#die "Cannot find file ${epocroot}$executableSrc\n" unless (-f "${epocroot}$executableSrc"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
414 |
# Assume anything like BTDEBUG_DIR should equate to urel |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
415 |
$executableSrc =~ s/\\[A-Z]+_DIR\\/\\urel\\/; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
416 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
417 |
if (!(-f "${epocroot}$executableSrc")) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
418 |
print "WARNING: Can't find ${epocroot}$executableSrc, skipping dependancy check\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
419 |
next; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
420 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
421 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
422 |
my $exeOnly = lc $executableSrc; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
423 |
$exeOnly =~ s/.*\\//; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
424 |
my $exeOnlyTrg = lc $executableTrg; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
425 |
$exeOnlyTrg =~ s/.*\\//; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
426 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
427 |
my $uid3 = (headerInfo("${epocroot}$executableSrc"))[3]; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
428 |
if (defined $uid3) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
429 |
if ($filesByName->{$exeOnlyTrg}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
430 |
print "WARNING: 2 files with name $exeOnlyTrg in rom\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
431 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
432 |
$filesByName->{$exeOnlyTrg} = $executableSrc; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
433 |
if (!($uid3 eq "00000000")) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
434 |
$filesByUid->{$uid3} = $executableSrc; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
435 |
print "UID3 for $executableSrc: $uid3\n" if ($verbose>1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
436 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
437 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
438 |
print "WARNING: could not find UID3 for $executableSrc\n" |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
439 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
440 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
441 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
442 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
443 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
444 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
445 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
446 |
close CPP; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
447 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
448 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
449 |
# now check for missing dependancies |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
450 |
my @missingFiles; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
451 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
452 |
foreach my $dependancy (keys %$filesByName) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
453 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
454 |
my $executable = $filesByName->{$dependancy}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
455 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
456 |
$cmd = "elftran -dump i ${epocroot}$executable"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
457 |
print "running: $cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
458 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
459 |
open ELFTRAN, "$cmd|" or die "Couldn't run $cmd: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
460 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
461 |
while (my $line = <ELFTRAN>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
462 |
if ($line =~ m/^\d+ imports from (.*)$/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
463 |
my $dep = lc($1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
464 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
465 |
my $depName = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
466 |
my $depUid = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
467 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
468 |
if ($dep =~ m/^(.*?)\{[a-f0-9]{8}\}\[([a-f0-9]{8})\]\.(.*)$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
469 |
unless ($ignoreDeps{lc("$1.$3")}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
470 |
$depName = "$1.$3"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
471 |
$depUid = $2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
472 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
473 |
} elsif ($dep =~ m/^(.*?)\{[a-f0-9]{8}\}\.(.*)$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
474 |
unless ($ignoreDeps{lc("$1.$2")}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
475 |
$depName = "$1.$2"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
476 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
477 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
478 |
print "WARNING: dependancy name '$dep' could not be parsed\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
479 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
480 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
481 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
482 |
if (defined $depName) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
483 |
print "$executable links to $depName\n" if ($verbose>1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
484 |
if ((defined $depUid) && ($filesByUid->{$depUid})) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
485 |
print "Found match by UID3: $filesByUid->{$depUid} ($depUid)\n" if ($verbose>1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
486 |
} elsif ($filesByName->{lc($depName)}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
487 |
my $uid3 = $filesByName->{lc($depName)}; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
488 |
#print "WARNING: Found match by name but not UID: $depName UID3: $uid3 expected $depUid\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
489 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
490 |
my $fullDepName = makeFullFileName($depName); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
491 |
if (defined $depUid) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
492 |
print "Missing dependancy: $depName (UID3 $depUid) required by $executable\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
493 |
$filesByUid->{$depUid} = $fullDepName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
494 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
495 |
print "Missing dependancy: $depName required by $executable\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
496 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
497 |
push @missingFiles, [$depName, $depUid]; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
498 |
#print "WARNING: can't find dependancy $depName at $fullDepName\n" unless (-f $fullDepName); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
499 |
$filesByName->{lc($depName)} = $fullDepName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
500 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
501 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
502 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
503 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
504 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
505 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
506 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
507 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
508 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
509 |
close (ELFTRAN); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
510 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
511 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
512 |
return \@missingFiles; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
513 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
514 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
515 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
516 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
517 |
sub ResolveMissingDeps($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
518 |
my $missingFiles = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
519 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
520 |
my %addedIbys; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
521 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
522 |
foreach my $depInfo (@$missingFiles) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
523 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
524 |
my $expectedDepPath = makeFullFileName $depInfo->[0]; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
525 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
526 |
# find an IBY file than contains this dependancy |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
527 |
my $ibyFile = FindIby($depInfo->[0]); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
528 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
529 |
if (defined $ibyFile) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
530 |
print "\nFound $depInfo->[0] in $ibyFile\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
531 |
} elsif (-f $expectedDepPath) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
532 |
if (Query("\nCan't find IBY file for $depInfo->[0] based on components exports.\nSearch all of $romIncludeDir instead?", "yn") == 0) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
533 |
print "Not implemented yet, sorry!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
534 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
535 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
536 |
print "IBY file for $depInfo->[0] not found, and $expectedDepPath does not exist.\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
537 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
538 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
539 |
my $lineToAdd = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
540 |
if (defined $ibyFile) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
541 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
542 |
if ($addedIbys{$ibyFile}) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
543 |
print "$ibyFile already included.\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
544 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
545 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
546 |
my $continue; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
547 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
548 |
do { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
549 |
$continue = 0; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
550 |
my $option = Query("Do you want to include whole (I)BY file, just the one (f)ile or (n)either? (or (v)iew the IBY contents)", "ifnv"); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
551 |
if ($option==0) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
552 |
$addedIbys{$ibyFile}=1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
553 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
554 |
my $romIncludeMatchStr = $romIncludeDir; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
555 |
$romIncludeMatchStr =~ s|^\w\:\\||; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
556 |
$romIncludeMatchStr =~ s|\\|\\\\|g; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
557 |
my $shortIby = $ibyFile; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
558 |
$shortIby =~ s|.*$romIncludeMatchStr||i; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
559 |
$shortIby =~ s|^\\*||; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
560 |
$lineToAdd = "#include \"$shortIby\""; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
561 |
} elsif ($option==1) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
562 |
$lineToAdd = "file=ABI_DIR\\DEBUG_DIR\\$depInfo->[0]\t\\sys\\bin\\$depInfo->[0]"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
563 |
} elsif ($option==3) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
564 |
$continue=1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
565 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
566 |
open IBYFILE, "<$ibyFile" or die "ERROR: Can't open $ibyFile: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
567 |
print "$ibyFile:\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
568 |
while (<IBYFILE>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
569 |
print; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
570 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
571 |
print "\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
572 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
573 |
} while ($continue); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
574 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
575 |
} elsif (-f $expectedDepPath) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
576 |
if (Query("\nIBY file for $depInfo->[0] not found; include single file?", "yn")==0) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
577 |
$lineToAdd = "file=ABI_DIR\\DEBUG_DIR\\$depInfo->[0]\t\\sys\\bin\\$depInfo->[0]"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
578 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
579 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
580 |
# perhaps we could search in \release\$main\$build for a binary with the required UID3 value. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
581 |
# might be worth implementing later? |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
582 |
print "WARNING: $expectedDepPath does not exist, manual resolution of dependancy likely needed.\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
583 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
584 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
585 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
586 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
587 |
if (defined $lineToAdd) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
588 |
open OBYFILE, ">>$obyName.oby" or die "Can't append to $obyName.oby: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
589 |
print "Adding line:\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
590 |
print "$lineToAdd\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
591 |
print OBYFILE "$lineToAdd\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
592 |
close OBYFILE; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
593 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
594 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
595 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
596 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
597 |
print "\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
598 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
599 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
600 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
601 |
sub FindIby($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
602 |
my $file = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
603 |
my $fullFile = makeFullFileName $file; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
604 |
return undef unless (-f $fullFile); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
605 |
my $cmd = "bininfo $fullFile"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
606 |
print "$cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
607 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
608 |
my @ibys; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
609 |
my $comp = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
610 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
611 |
if (open BININFO, "$cmd |") { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
612 |
while (my $line = <BININFO>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
613 |
if ($line =~ m/^Component\:\s*(.*)$/) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
614 |
$comp = trim($1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
615 |
print "$comp owns $fullFile\n" if ($verbose>1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
616 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
617 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
618 |
close (BININFO); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
619 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
620 |
return undef unless defined ($comp); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
621 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
622 |
$cmd = "bininfo $comp"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
623 |
print "$cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
624 |
if (open BININFO2, "$cmd |") { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
625 |
while (my $line = <BININFO2>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
626 |
if ($line =~ m/^File\s+Status\s*$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
627 |
# ignore header line |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
628 |
} elsif ($line =~ m/^\s*$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
629 |
# ignore emptry line |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
630 |
} elsif ($line =~ m/^(.*?)\s+\w+\s*$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
631 |
my $file = trim($1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
632 |
if ($file =~ m/\.iby$/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
633 |
push @ibys, $file; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
634 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
635 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
636 |
print "WARNING: could not parse bininfo output '$line'\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
637 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
638 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
639 |
close BININFO2; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
640 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
641 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
642 |
print "WARNING: could not run '$cmd': $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
643 |
return undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
644 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
645 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
646 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
647 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
648 |
print "WARNING: could not run '$cmd': $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
649 |
return undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
650 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
651 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
652 |
my $num = scalar(@ibys); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
653 |
print "$comp owns $num IBY file(s)\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
654 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
655 |
return undef if ($num == 0); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
656 |
return $ibys[0] if ($num == 1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
657 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
658 |
my $compSubName; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
659 |
if ($comp =~ m/.*_(.*)/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
660 |
$compSubName = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
661 |
} else { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
662 |
$compSubName = $comp; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
663 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
664 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
665 |
my $chosenIby = undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
666 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
667 |
foreach my $iby (@ibys) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
668 |
if ($iby =~ m/\\$compSubName\.iby$/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
669 |
$chosenIby = $iby; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
670 |
print "Choosing IBY file $iby for component $comp based on name\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
671 |
last; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
672 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
673 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
674 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
675 |
return $chosenIby if ((defined $chosenIby) && (CheckIbyContains($chosenIby, $file))); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
676 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
677 |
# last resort: the first iby file that contains this file |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
678 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
679 |
foreach my $iby (@ibys) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
680 |
return $iby if (CheckIbyContains($iby, $file)); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
681 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
682 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
683 |
return undef; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
684 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
685 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
686 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
687 |
sub CheckIbyContains($$) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
688 |
my $iby = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
689 |
my $file = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
690 |
print "Checking for $file in $iby\n" if ($verbose>1); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
691 |
open IBYFILE, "<$iby" or return 0; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
692 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
693 |
my $found = 0; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
694 |
while (my $line = <IBYFILE>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
695 |
if ($line =~ m/\\$file\s/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
696 |
$found = 1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
697 |
last; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
698 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
699 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
700 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
701 |
close IBYFILE; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
702 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
703 |
print "$iby contains $file\n" if ($found && $verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
704 |
print "$iby does not contain $file\n" if ((!$found) && $verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
705 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
706 |
return $found; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
707 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
708 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
709 |
sub headerInfo($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
710 |
my $file = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
711 |
my $cmd = "elftran -dump h $file"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
712 |
print "running: $cmd\n" if ($verbose); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
713 |
open ELFTRANUID, "$cmd|" or die "Couldn't run $cmd: $!\n"; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
714 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
715 |
my ($flags, $uid1, $uid2, $uid3) = (undef, undef, undef, undef); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
716 |
while (my $line = <ELFTRANUID>) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
717 |
if ($line =~ m/^Uids:\s+([\da-f]{8})\s+([\da-f]{8})\s+([\da-f]{8})\s+\(([\da-f]{8})\)$/ ) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
718 |
($uid1, $uid2, $uid3) = ($1, $2, $3); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
719 |
} elsif ($line =~ m/^Flags:\s+([\da-f]{8})$/i) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
720 |
$flags = $1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
721 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
722 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
723 |
close (ELFTRANUID); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
724 |
return ($flags, $uid1, $uid2, $uid3); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
725 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
726 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
727 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
728 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
729 |
sub trim($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
730 |
my $str= shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
731 |
$str =~ s/^\s*//g; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
732 |
$str =~ s/\s*$//g; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
733 |
return $str; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
734 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
735 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
736 |
sub Query($$) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
737 |
my $question = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
738 |
my $options = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
739 |
local $" = '/'; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
740 |
#" fix syntax highlighting from above in CW |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
741 |
my @options = split(//, $options); |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
742 |
while (1) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
743 |
print "$question [@options] "; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
744 |
my $response = lc <STDIN>; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
745 |
chomp $response; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
746 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
747 |
if (length($response)==1) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
748 |
if ($options =~ m/$response/g) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
749 |
return pos($options)-1; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
750 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
751 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
752 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
753 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
754 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
755 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
756 |
sub makeFullFileName($) { |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
757 |
my $depName = shift; |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
758 |
return "${epocroot}epoc32\\release\\$main\\$build\\$depName" |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
759 |
} |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
760 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
761 |
__END__ |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
762 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
763 |
=head1 NAME |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
764 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
765 |
BaseRom - A tool to help you build a base ROM with selected user-side binaries. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
766 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
767 |
=head1 SYNOPSIS |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
768 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
769 |
baserom [options] F<romname> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
770 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
771 |
options: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
772 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
773 |
=over |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
774 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
775 |
=item -V variant |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
776 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
777 |
Use the specified variant; defaults to C<h4hrp>. (note capital V). |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
778 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
779 |
=item -t target |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
780 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
781 |
Use the specified target architecture; defaults to C<armv5>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
782 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
783 |
=item -b build |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
784 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
785 |
Use the specified build; defaults to C<udeb>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
786 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
787 |
=item -e F<\epocroot\> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
788 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
789 |
Use specified epocroot path instead of environment variable epocroot. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
790 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
791 |
=item -i F<\rom\include\directory> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
792 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
793 |
Use the specified directory to search for IBY files. Defaults to F<\epoc32\rom\include>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
794 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
795 |
=item -o F<base.oby> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
796 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
797 |
Use the specified OBY file as the basis for the ROM. Defaults to F<tshell.oby>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
798 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
799 |
=item -h |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
800 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
801 |
help |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
802 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
803 |
=item -v |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
804 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
805 |
verbose (-vv very verbose) |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
806 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
807 |
=item -x extraInclude |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
808 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
809 |
If specified this file is included whenever preprocessing IBYs. It also prevents this file from being processed for dependancies itself. This option is needed when building an toolkit rom and should be set to C<-x fsh_config.iby>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
810 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
811 |
=back |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
812 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
813 |
=head1 DESCRIPTION |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
814 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
815 |
The script is written to help you determine the dependancies that need to be included in a ROM to be able to use |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
816 |
specific functionality. It also builds the appropriate OBY file. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
817 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
818 |
To use it: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
819 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
820 |
=over |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
821 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
822 |
=item 1 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
823 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
824 |
do a C<getsource base_e32> if you don't already have the source |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
825 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
826 |
=item 2 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
827 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
828 |
create a file F<myrom.oby> in F<\src\cedar\generic\base\e32\rombuild\>. In this, include the top level IBY file (or executables, etc) that |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
829 |
you need to include in your ROM. Use OBY syntax that is used by the main rombuild tool (i.e. not the base one), for example: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
830 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
831 |
#include <mmf.iby> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
832 |
file=ABI_DIR\BUILD_DIR\MyTestHarness.exe sys\bin\MyTestHarness.exe |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
833 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
834 |
=item 3 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
835 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
836 |
run C<baserom myrom>. This will cause the script to create a new OBY file based on F<tshell.oby> called F<tshell_myrom.oby>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
837 |
It will also copy any required IBY files from the default ROM include directory (F<\epoc32\rom\include> by default) into a new directory |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
838 |
called F<myrom>. The format of the IBY files is converted for the base ROM building tool. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
839 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
840 |
=item 4 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
841 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
842 |
The script will the check the dependancies for the executables in your ROM. Any files that are missing will be listed, and it will give |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
843 |
you the option of attempting to resolve the dependancies. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
844 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
845 |
=item 5 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
846 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
847 |
If you choose the resolve the dependancies, the script will search for appropriate IBY files and ask you whether you want to include |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
848 |
the whole IBY file in your ROM, or just include the 1 dependancy via a C<file=> statement. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
849 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
850 |
=item 6 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
851 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
852 |
Once you have worked through all the dependancies, it will start again from step 3, allowing you to iteratively resolve all your |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
853 |
dependancies. Some often have to be resolved by hand, for example binaries that have a different name depending upon the variant |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
854 |
that you are building for. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
855 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
856 |
=item 7 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
857 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
858 |
When you are done, it will tell you the command to use to build the ROM. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
859 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
860 |
=back |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
861 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
862 |
=head1 NOTES |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
863 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
864 |
=head2 Resolving dependancies |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
865 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
866 |
Generally, when choosing whether or not to include an entire IBY file for a dependancy, you need to use to use some judgement. Including |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
867 |
the whole IBY file has the benefit that you won't end up including a user-side DLL for a server but not the server itself. You should |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
868 |
do this if you actually need to use the services provided by that server (ECOM is usually a good example of this). |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
869 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
870 |
Including just the dependancy DLL is good if you only need to include it to satisfy linking requirements, but you never actually need to |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
871 |
call into that DLL (i.e. to stop the rom build failing). For example, if your code links to F<c32.dll> but never actually uses it, it's best |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
872 |
to just include that one file rather than including F<c32.iby>. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
873 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
874 |
Always including the whole IBY file generally results in the dependancies growing very fast until you are including pretty much the whole OS. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
875 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
876 |
Including F<wserv.iby> can cause problems in a C<tshell> ROM, as then you'll end up with two files trying to be F<EwSrv.exe> in the ROM. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
877 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
878 |
Generally, after a few iterations you can resolve most of the dependancies in your ROM, and those that remain must be done by hand, or can |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
879 |
be ignored. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
880 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
881 |
=head3 Manually Resolving dependancies |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
882 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
883 |
Some dependancies the script will fail to resolve automatically. For example, something that links to the screen driver F<ScDv.dll> will |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
884 |
cause problems because F<ScDv.dll> doesn't exist in F<\epoc32\release\armv5\udeb> or similar places - it's actually called F<_omapqvga_scdv.dll> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
885 |
for the H4, and other things for other platforms. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
886 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
887 |
Generally, when the script has finished resolving dependancies automatically, you can work these out by yourself. In the example of F<ScDv.dll>, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
888 |
looking in F<\epoc32\rom\include\base_h4hrp.iby> does the trick: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
889 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
890 |
define SCDV_DLL _omapqvga_scdv.dll |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
891 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
892 |
Then you can manually include the following line in your F<myrom.oby> file: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
893 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
894 |
file=ABI_DIR\DEBUG_DIR\_omapqvga_scdv.dll \sys\bin\ScDv.dll |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
895 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
896 |
The same trick for other files should work. After editing F<myrom.oby> you need to run the script on it again to update the generated OBY file. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
897 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
898 |
=head2 Finding IBY files |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
899 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
900 |
When finding an IBY file for a given file, the tool does the following: |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
901 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
902 |
=over |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
903 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
904 |
=item 1 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
905 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
906 |
determine the CBR component that owns the file, using C<bininfo> |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
907 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
908 |
=item 2 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
909 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
910 |
use C<bininfo> again to find a list of IBY files owned by that component. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
911 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
912 |
=item 3 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
913 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
914 |
If it owns just 1 IBY file, use that if it includes the file we're looking for. Otherwise, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
915 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
916 |
=item 4 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
917 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
918 |
Find the IBY file whose name closely matches the components name For example, for the component C<graphics_wserv> it will prefer |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
919 |
an IBY file called F<wserv.iby>, or F<graphics_wserv.iby>. If one matches on this basis, use it. Otherwise, |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
920 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
921 |
=item 5 |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
922 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
923 |
Use the first IBY file owned by the component that contains the file needed. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
924 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
925 |
=back |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
926 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
927 |
=head1 COPYRIGHT |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
928 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
929 |
Copyright (c) 2009 - 2010 Accenture. All rights reserved. |
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
930 |
|
e81b4e28b3e2
Added sf\3tshell platform with support for building beagle textshell+fshell ROMs.
Tom Sutcliffe <thomas.sutcliffe@accenture.com>
parents:
diff
changeset
|
931 |
=cut |