Subversion Repositories DevTools

Rev

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

Rev 7308 Rev 7309
Line 32... Line 32...
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 GENERIC_MACHTYPE), @BuildAliases );
37
our @BuildKeywords = ( qw (TOOLSET GENERIC GENERIC_MACHTYPE BASE_TARGET), @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 73... Line 73...
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
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
76
        'UBUNTU12:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
77
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
77
        'UBUNTU12_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
78
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:LMOS:PKG_DEB',
78
        'UBUNTU12C11:NATIVE:TOOLSET:DEVLINUX:PKG_DEB',
79
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
79
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
80
        'VIPER2:DEVLINUX:PKG_DEB',
80
        'VIPER2:DEVLINUX:PKG_DEB',
81
        ],
81
        ],
82
 
82
 
83
    'linux_x64' => [
83
    'linux_x64' => [
Line 98... Line 98...
98
        'LINUX_ETX:DEVLINUX:LMOS',
98
        'LINUX_ETX:DEVLINUX:LMOS',
99
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
99
        'PPC_603E:DEVLINUX:LMOS:PKG_DEB',
100
        'SK20:DEVLINUX:PKG_DEB:SK',
100
        'SK20:DEVLINUX:PKG_DEB:SK',
101
        'SK20V41:DEVLINUX:PKG_DEB:SK',
101
        'SK20V41:DEVLINUX:PKG_DEB:SK',
102
        'SK100:DEVLINUX:PKG_DEB:SK',
102
        'SK100:DEVLINUX:PKG_DEB:SK',
103
        'UBUNTU12C11:NATIVE:DEVLINUX:LMOS:PKG_DEB',
103
        'UBUNTU12C11:NATIVE:DEVLINUX:PKG_DEB',
104
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
104
        'UBUNTU12C11_INSTRUMENT:NATIVE:DEVLINUX:INSTRUMENT',
105
        'VIPER2:DEVLINUX:PKG_DEB',
105
        'VIPER2:DEVLINUX:PKG_DEB',
106
        ],
106
        ],
107
 
107
 
108
    'linux_el7_x64' => [
108
    'linux_el7_x64' => [
Line 241... Line 241...
241
{
241
{
242
    #
242
    #
243
    #   Only do this work once
243
    #   Only do this work once
244
    #
244
    #
245
    return if exists $TagByTarget{'GENERIC'};
245
    return if exists $TagByTarget{'GENERIC'};
246
    #
-
 
247
    #   Validate build machine
-
 
248
    #
-
 
249
    Error("GBE_MACHTYPE has not been defined ") unless defined $::GBE_MACHTYPE;
-
 
250
    Error (__PACKAGE__ . " : Unknown build machine type: $::GBE_MACHTYPE")
-
 
251
        unless ( exists $BuildAvailability{$::GBE_MACHTYPE} );
-
 
252
 
-
 
253
    #
-
 
254
    #   Convert the array into a hash to speed up access later
-
 
255
    #   Create GENERIC platform
-
 
256
    #
-
 
257
    push @{$BuildAvailability{$::GBE_MACHTYPE}}, 'GENERIC:GENERIC';
-
 
258
 
246
 
259
    #
-
 
260
    #   Create Machine Type specific Generic
-
 
261
    #       GENERIC_XXXX:GENERIC_MACHTYPE:TOOLSET
-
 
262
    #   
-
 
263
    my $genericMachTypes = 'GENERIC_' . uc ($::GBE_MACHTYPE);
-
 
264
    push @{$BuildAvailability{$::GBE_MACHTYPE}}, join (':', $genericMachTypes, 'GENERIC_MACHTYPE', 'TOOLSET' );
247
    foreach my $machType ( qw(linux_x64  linux_i386 linux_el7_x64 solaris10_sparc32 solaris10_x86 sparc win32 ))
265
 
-
 
266
    foreach ( @{$BuildAvailability{$::GBE_MACHTYPE}}  )
-
 
267
    {
248
    {
268
        my @data = split(':', $_ );
-
 
269
        my $target = shift @data;
-
 
270
 
249
 
-
 
250
        #
271
        $TagByTarget{$target}{'KNOWN'} = 1;
251
        #   Validate build machine
-
 
252
        #
-
 
253
        Error("GBE_MACHTYPE has not been defined ") unless defined $machType;
-
 
254
        Error (__PACKAGE__ . " : Unknown build machine type: $machType")
-
 
255
            unless ( exists $BuildAvailability{$machType} );
-
 
256
 
-
 
257
        #
-
 
258
        #   Convert the array into a hash to speed up access later
272
        foreach my $item ( @data )
259
        #   Create GENERIC platform
-
 
260
        #
-
 
261
        push @{$BuildAvailability{$machType}}, 'GENERIC:GENERIC';
-
 
262
 
-
 
263
        #
-
 
264
        #   Create Machine Type specific Generic
-
 
265
        #       GENERIC_XXXX:GENERIC_MACHTYPE:TOOLSET
-
 
266
        #   
-
 
267
        my $genericMachTypes = 'GENERIC_' . uc ($machType);
-
 
268
        push @{$BuildAvailability{$machType}}, join (':', $genericMachTypes, 'GENERIC_MACHTYPE', 'TOOLSET' );
-
 
269
 
-
 
270
        foreach ( @{$BuildAvailability{$machType}}  )
273
        {
271
        {
-
 
272
            my @data = split(':', $_ );
-
 
273
            my $target = shift @data;
-
 
274
            my $hasLMOS;
-
 
275
 
-
 
276
            next if exists $TagByTarget{$target}{'MACHTYPE'};
-
 
277
            $TagByTarget{$target}{'MACHTYPE'} = $machType;
-
 
278
            foreach my $item ( @data )
-
 
279
            {
-
 
280
                if ($item eq 'LMOS') {
-
 
281
                    $hasLMOS = 1;
-
 
282
                    next;
-
 
283
                }
-
 
284
 
274
            ($item, my $value) = split (/=/, $item,2);
285
                ($item, my $value) = split (/=/, $item,2);
275
            $value = 1 unless defined $value;
286
                $value = 1 unless defined $value;
276
            $TagByTarget{$target}{uc($item)} = $value;
287
                $TagByTarget{$target}{uc($item)} = $value;
277
            push @{$TargetByTag{uc($item)}}, $target;
288
                push @{$TargetByTag{uc($item)}}, $target;
-
 
289
            }
-
 
290
 
-
 
291
            #
-
 
292
            #   Generate LMOS platforms entries from the base platform entry
-
 
293
            #
-
 
294
            if ($hasLMOS)
-
 
295
            {
-
 
296
                my $lmosTarget = 'LMOS_' . $target;
-
 
297
                next if exists $TagByTarget{$lmosTarget}{'MACHTYPE'};
-
 
298
                $TagByTarget{$lmosTarget}{'MACHTYPE'} = $machType;
-
 
299
                $TagByTarget{$lmosTarget}{'BASE_TARGET'} = $target;
-
 
300
                push @{$TargetByTag{uc('LMOS')}}, $lmosTarget;
-
 
301
                foreach my $item ( @data )
-
 
302
                {
-
 
303
                    next if ($item eq 'LMOS');
-
 
304
                    ($item, my $value) = split (/=/, $item,2);
-
 
305
                    $value = 1 unless defined $value;
-
 
306
                    $item = 'LMOS_' . $item;
-
 
307
                    $TagByTarget{$lmosTarget}{uc($item)} = $value;
-
 
308
                    push @{$TargetByTag{uc($item)}}, $lmosTarget;
-
 
309
                }
-
 
310
 
-
 
311
            }
278
        }
312
        }
279
    }
313
    }
280
 
314
 
281
    #DebugDumpData("TagByTarget", \%TagByTarget);
315
    #DebugDumpData("TagByTarget", \%TagByTarget);
282
    #DebugDumpData("TargetByTag", \%TargetByTag);
316
    #DebugDumpData("TargetByTag", \%TargetByTag);
-
 
317
    #DebugDumpData("BuildAvailability", \%BuildAvailability);
283
}
318
}
284
 
319
 
285
#-------------------------------------------------------------------------------
320
#-------------------------------------------------------------------------------
286
# Function        : getTargetsByTag 
321
# Function        : getTargetsByTag 
287
#
322
#
Line 308... Line 343...
308
}
343
}
309
 
344
 
310
#-------------------------------------------------------------------------------
345
#-------------------------------------------------------------------------------
311
# Function        : targetHasTag 
346
# Function        : targetHasTag 
312
#
347
#
313
# Description     : Determineif the named target has the specified tag
348
# Description     : Determine if the named target has the specified tag
314
#
349
#
315
# Inputs          : $target
350
# Inputs          : $target
316
#                   $tag 
351
#                   $tag 
317
#
352
#
318
# Returns         : Value of the Tag. May be 1
353
# Returns         : Value of the Tag. May be 1