Subversion Repositories DevTools

Rev

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

Rev 7307 Rev 7308
Line 31... Line 31...
31
#
31
#
32
#   An array of known Keywords and Aliases
32
#   An array of known Keywords and Aliases
33
#       Keywords should not be used for platform names
33
#       Keywords should not be used for platform names
34
#       Aliases are set up for the user
34
#       Aliases are set up for the user
35
# 
35
# 
36
our @BuildAliases = qw (NATIVE INSTRUMENT PKG_WIN PKG_RPM PKG_DEB SK);
36
our @BuildAliases = qw (NATIVE INSTRUMENT PKG_WIN PKG_RPM PKG_DEB SK );
37
our @BuildKeywords = ( qw (TOOLSET GENERIC), @BuildAliases );
37
our @BuildKeywords = ( qw (TOOLSET GENERIC GENERIC_MACHTYPE), @BuildAliases );
38
 
38
 
39
#
39
#
40
#   The following structure is a hash of arrays
40
#   The following structure is a hash of arrays
41
#   The hash key is a supported machine type - one per machine
41
#   The hash key is a supported machine type - one per machine
42
#   The data is an array of supported PLATFORMS
42
#   The data is an array of supported PLATFORMS
Line 52... Line 52...
52
#       PKG_DEB - Install Debian Packages   
52
#       PKG_DEB - Install Debian Packages   
53
#       PKG_RPM - Install RPM Packages
53
#       PKG_RPM - Install RPM Packages
54
#       PKG_WIN - Install Windows Installers
54
#       PKG_WIN - Install Windows Installers
55
#       SK - The SK familty of platforms
55
#       SK - The SK familty of platforms
56
#
56
#
57
my %BuildAvailability = (
57
our %BuildAvailability = (
58
    'linux_i386' => [
58
    'linux_i386' => [
59
        'ANDROIDARM:ANDROIDNDK',
59
        'ANDROIDARM:ANDROIDNDK',
60
        'ANDROIDMIPS:ANDROIDNDK',
60
        'ANDROIDMIPS:ANDROIDNDK',
61
        'ANDROIDX86:ANDROIDNDK',
61
        'ANDROIDX86:ANDROIDNDK',
62
        'ANDROID',
62
        'ANDROID',
Line 71... Line 71...
71
        'LINUX_ETX:DEVLINUX:LMOS',
71
        'LINUX_ETX:DEVLINUX:LMOS',
72
        'LINUX_I386:NATIVE:TOOLSET',
72
        'LINUX_I386:NATIVE:TOOLSET',
73
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
73
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
74
        'SK20:DEVLINUX:PKG_DEB:SK',
74
        'SK20:DEVLINUX:PKG_DEB:SK',
75
        'SK20V41:DEVLINUX:PKG_DEB:SK',
75
        'SK20V41:DEVLINUX:PKG_DEB:SK',
76
        'SK100:DEVLINUX:PKG_DEB:SK',
-
 
77
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
76
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
78
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
77
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
79
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
78
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
80
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
79
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
81
        'VIPER2:DEVLINUX:PKG_DEB',
80
        'VIPER2:DEVLINUX:PKG_DEB',
Line 122... Line 121...
122
        'SOLARIS10_X64:NATIVE',
121
        'SOLARIS10_X64:NATIVE',
123
        'JAVA',
122
        'JAVA',
124
        ],
123
        ],
125
 
124
 
126
    'sparc' => [
125
    'sparc' => [
127
        'SOLARIS:NATIVE:TOOLSET',
126
        'SOLARIS:NATIVE:TOOLSET:TARGET_CFG=SOLARIS8_SPARC32',
128
        'SOLARIS_I386',
127
        'SOLARIS_I386',
129
        'SOLARIS_SPARC',
128
        'SOLARIS_SPARC',
130
        'JAVA:NATIVE',
129
        'JAVA:NATIVE',
131
        ],
130
        ],
132
 
131
 
Line 245... Line 244...
245
    #
244
    #
246
    return if exists $TagByTarget{'GENERIC'};
245
    return if exists $TagByTarget{'GENERIC'};
247
    #
246
    #
248
    #   Validate build machine
247
    #   Validate build machine
249
    #
248
    #
-
 
249
    Error("GBE_MACHTYPE has not been defined ") unless defined $::GBE_MACHTYPE;
250
    Error (__PACKAGE__ . " : Unknown build machine type: $::GBE_MACHTYPE")
250
    Error (__PACKAGE__ . " : Unknown build machine type: $::GBE_MACHTYPE")
251
        unless ( exists $BuildAvailability{$::GBE_MACHTYPE} );
251
        unless ( exists $BuildAvailability{$::GBE_MACHTYPE} );
252
 
252
 
253
    #
253
    #
254
    #   Convert the array into a hash to speed up access later
254
    #   Convert the array into a hash to speed up access later
Line 269... Line 269...
269
        my $target = shift @data;
269
        my $target = shift @data;
270
 
270
 
271
        $TagByTarget{$target}{'KNOWN'} = 1;
271
        $TagByTarget{$target}{'KNOWN'} = 1;
272
        foreach my $item ( @data )
272
        foreach my $item ( @data )
273
        {
273
        {
-
 
274
            ($item, my $value) = split (/=/, $item,2);
-
 
275
            $value = 1 unless defined $value;
274
            $TagByTarget{$target}{uc($item)} = 1;
276
            $TagByTarget{$target}{uc($item)} = $value;
275
            push @{$TargetByTag{uc($item)}}, $target;
277
            push @{$TargetByTag{uc($item)}}, $target;
276
        }
278
        }
277
    }
279
    }
278
 
280
 
279
    #DebugDumpData("TagByTarget", \%TagByTarget);
281
    #DebugDumpData("TagByTarget", \%TagByTarget);
Line 311... Line 313...
311
# Description     : Determineif the named target has the specified tag
313
# Description     : Determineif the named target has the specified tag
312
#
314
#
313
# Inputs          : $target
315
# Inputs          : $target
314
#                   $tag 
316
#                   $tag 
315
#
317
#
316
# Returns         : Boolean
318
# Returns         : Value of the Tag. May be 1
-
 
319
#                   Tags of the form NAME=VALUE wull return 'VALUE'
317
#
320
#
318
sub targetHasTag
321
sub targetHasTag
319
{
322
{
320
    my ($target, $tag) = @_;
323
    my ($target, $tag) = @_;
321
    Error("Internal: targetHasTag. No target specified") unless ($target);
324
    Error("Internal: targetHasTag. No target specified") unless ($target);
322
    Error("Internal: targetHasTag. No tag specified") unless ($tag);
325
    Error("Internal: targetHasTag. No tag specified") unless ($tag);
323
 
326
 
324
    InitData();
327
    InitData();
325
    if (exists ($TagByTarget{$target}) && exists ($TagByTarget{$target}{$tag}))
328
    if (exists ($TagByTarget{$target}) && exists ($TagByTarget{$target}{$tag}))
326
    {
329
    {
327
        return 1;
330
        return $TagByTarget{$target}{$tag};
328
    }
331
    }
329
    return 0;
332
    return 0;
330
}
333
}
331
 
334
 
332
1;
335
1;