Subversion Repositories DevTools

Rev

Rev 6177 | Rev 6276 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6177 Rev 6198
Line 27... Line 27...
27
 
27
 
28
package PlatformConfig;
28
package PlatformConfig;
29
use JatsError;
29
use JatsError;
30
 
30
 
31
#
31
#
-
 
32
#   An array of known Keywords and Aliases
-
 
33
#       Keywords should not be used for platform names
-
 
34
#       Aliases are set up for the user
-
 
35
# 
-
 
36
our @BuildAliases = qw (NATIVE INSTRUMENT PKG_WIN PKG_RPM PKG_DEB SK );
-
 
37
our @BuildKeywords = ( qw (TOOLSET GENERIC GENERIC_MACHTYPE), @BuildAliases );
-
 
38
 
-
 
39
#
32
#   The following structure is a hash of arrays
40
#   The following structure is a hash of arrays
33
#   The hash key is a supported machine type - one per machine
41
#   The hash key is a supported machine type - one per machine
34
#   The data is an array of supported PLATFORMS
42
#   The data is an array of supported PLATFORMS
35
#   Each platform may have a : seperated list of tags
43
#   Each platform may have a : seperated list of tags
36
#   Known tags include:
44
#   Known tags include:
Line 42... Line 50...
42
#       LINUX - Part of the LINUX alias 
50
#       LINUX - Part of the LINUX alias 
43
#       LMOS - Bastard Platforms from Hell
51
#       LMOS - Bastard Platforms from Hell
44
#       PKG_DEB - Install Debian Packages   
52
#       PKG_DEB - Install Debian Packages   
45
#       PKG_RPM - Install RPM Packages
53
#       PKG_RPM - Install RPM Packages
46
#       PKG_WIN - Install Windows Installers
54
#       PKG_WIN - Install Windows Installers
-
 
55
#       SK - The SK familty of platforms
47
#
56
#
48
my %BuildAvailability = (
57
our %BuildAvailability = (
49
    'linux_i386' => [
58
    'linux_i386' => [
50
        'ANDROIDARM:ANDROIDNDK',
59
        'ANDROIDARM:ANDROIDNDK',
51
        'ANDROIDMIPS:ANDROIDNDK',
60
        'ANDROIDMIPS:ANDROIDNDK',
52
        'ANDROIDX86:ANDROIDNDK',
61
        'ANDROIDX86:ANDROIDNDK',
53
        'ANDROID',
62
        'ANDROID',
Line 60... Line 69...
60
        'LINUX_ARMV4',
69
        'LINUX_ARMV4',
61
        'LINUX_EMU',
70
        'LINUX_EMU',
62
        'LINUX_ETX:DEVLINUX:LMOS',
71
        'LINUX_ETX:DEVLINUX:LMOS',
63
        'LINUX_I386:NATIVE:TOOLSET',
72
        'LINUX_I386:NATIVE:TOOLSET',
64
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
73
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
65
        'SK20:DEVLINUX:PKG_DEB',
74
        'SK20:DEVLINUX:PKG_DEB:SK',
66
        'SK20V41:DEVLINUX:PKG_DEB',
75
        'SK20V41:DEVLINUX:PKG_DEB:SK',
67
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
76
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
68
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
77
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
69
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
78
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
70
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
79
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
71
        'VIPER2:DEVLINUX:PKG_DEB',
80
        'VIPER2:DEVLINUX:PKG_DEB',
Line 86... Line 95...
86
        'COBRA:DEVLINUX:LMOS:PKG_DEB',
95
        'COBRA:DEVLINUX:LMOS:PKG_DEB',
87
        'COBRA2:DEVLINUX:LMOS:PKG_DEB',
96
        'COBRA2:DEVLINUX:LMOS:PKG_DEB',
88
        'HAMMERHEAD',
97
        'HAMMERHEAD',
89
        'LINUX_ETX:DEVLINUX:LMOS',
98
        'LINUX_ETX:DEVLINUX:LMOS',
90
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
99
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
91
        'SK20:DEVLINUX:PKG_DEB',
100
        'SK20:DEVLINUX:PKG_DEB:SK',
92
        'SK20V41:DEVLINUX:PKG_DEB',
101
        'SK20V41:DEVLINUX:PKG_DEB:SK',
-
 
102
        'SK100:DEVLINUX:PKG_DEB:SK',
93
        'UBUNTU12C11:NATIVE:DEVLINUX:LMOS:PKG_DEB',
103
        'UBUNTU12C11:NATIVE:DEVLINUX:LMOS:PKG_DEB',
94
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
104
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
95
        'VIPER2:DEVLINUX:PKG_DEB',
105
        'VIPER2:DEVLINUX:PKG_DEB',
96
        ],
106
        ],
97
 
107
 
Line 111... Line 121...
111
        'SOLARIS10_X64:NATIVE',
121
        'SOLARIS10_X64:NATIVE',
112
        'JAVA',
122
        'JAVA',
113
        ],
123
        ],
114
 
124
 
115
    'sparc' => [
125
    'sparc' => [
116
        'SOLARIS:NATIVE:TOOLSET',
126
        'SOLARIS:NATIVE:TOOLSET:TARGET_CFG=SOLARIS8_SPARC32',
117
        'SOLARIS_I386',
127
        'SOLARIS_I386',
118
        'SOLARIS_SPARC',
128
        'SOLARIS_SPARC',
119
        'JAVA:NATIVE',
129
        'JAVA:NATIVE',
120
        ],
130
        ],
121
 
131
 
Line 234... Line 244...
234
    #
244
    #
235
    return if exists $TagByTarget{'GENERIC'};
245
    return if exists $TagByTarget{'GENERIC'};
236
    #
246
    #
237
    #   Validate build machine
247
    #   Validate build machine
238
    #
248
    #
-
 
249
    Error("GBE_MACHTYPE has not been defined ") unless defined $::GBE_MACHTYPE;
239
    Error (__PACKAGE__ . " : Unknown build machine type: $::GBE_MACHTYPE")
250
    Error (__PACKAGE__ . " : Unknown build machine type: $::GBE_MACHTYPE")
240
        unless ( exists $BuildAvailability{$::GBE_MACHTYPE} );
251
        unless ( exists $BuildAvailability{$::GBE_MACHTYPE} );
241
 
252
 
242
    #
253
    #
243
    #   Convert the array into a hash to speed up access later
254
    #   Convert the array into a hash to speed up access later
Line 258... Line 269...
258
        my $target = shift @data;
269
        my $target = shift @data;
259
 
270
 
260
        $TagByTarget{$target}{'KNOWN'} = 1;
271
        $TagByTarget{$target}{'KNOWN'} = 1;
261
        foreach my $item ( @data )
272
        foreach my $item ( @data )
262
        {
273
        {
-
 
274
            ($item, my $value) = split (/=/, $item,2);
-
 
275
            $value = 1 unless defined $value;
263
            $TagByTarget{$target}{uc($item)} = 1;
276
            $TagByTarget{$target}{uc($item)} = $value;
264
            push @{$TargetByTag{uc($item)}}, $target;
277
            push @{$TargetByTag{uc($item)}}, $target;
265
        }
278
        }
266
    }
279
    }
267
 
280
 
268
    #DebugDumpData("TagByTarget", \%TagByTarget);
281
    #DebugDumpData("TagByTarget", \%TagByTarget);
Line 300... Line 313...
300
# Description     : Determineif the named target has the specified tag
313
# Description     : Determineif the named target has the specified tag
301
#
314
#
302
# Inputs          : $target
315
# Inputs          : $target
303
#                   $tag 
316
#                   $tag 
304
#
317
#
305
# Returns         : Boolean
318
# Returns         : Value of the Tag. May be 1
-
 
319
#                   Tags of the form NAME=VALUE wull return 'VALUE'
306
#
320
#
307
sub targetHasTag
321
sub targetHasTag
308
{
322
{
309
    my ($target, $tag) = @_;
323
    my ($target, $tag) = @_;
310
    Error("Internal: targetHasTag. No target specified") unless ($target);
324
    Error("Internal: targetHasTag. No target specified") unless ($target);
311
    Error("Internal: targetHasTag. No tag specified") unless ($tag);
325
    Error("Internal: targetHasTag. No tag specified") unless ($tag);
312
 
326
 
313
    InitData();
327
    InitData();
314
    if (exists ($TagByTarget{$target}) && exists ($TagByTarget{$target}{$tag}))
328
    if (exists ($TagByTarget{$target}) && exists ($TagByTarget{$target}{$tag}))
315
    {
329
    {
316
        return 1;
330
        return $TagByTarget{$target}{$tag};
317
    }
331
    }
318
    return 0;
332
    return 0;
319
}
333
}
320
 
334
 
321
1;
335
1;