Rev 5708 | Blame | Last modification | View Log | RSS feed
################################################################################ Copyright (c) VIX TECHNOLOGY (AUST) LTD## File: PLATFORM/DEVLINUX.cfg## Contents: DEVLINUX Build support## This package is used during the processing of the build.pl file# Values provided by this package are used to extend the Platform# information as platforms are being created. This provides a# powerful set of mechanism to extend the entire JATS toolset################################################################################use strict;use warnings;package DEVLINUX_Build;use JatsError;use Storable qw(dclone);## Create a hash of GBE_MACHTYPEs for which the DEVLINUX platform is available# It won't just build on any old machine## Hash values are an array of:# Operating System# architecture#my %valid_machines = ('linux_i386' => [ 'COBRA','COBRA2','ARM9TDMI',# 'LINUX_EMU', # Removed as there is no target for this code to run on'LINUX_ETX','PPC_603E','VIPER2','UBUNTU12','UBUNTU12_INSTRUMENT','SK20','SK20V41'],);#-------------------------------------------------------------------------------# Function : new_platform## Description : Called when a new platform is being created# The function can extend the build information## The 'LINUX' platform will be converted into a 'suitable'# platform for the current machine.## Inputs : $pInfo - Reference to the platform build info hash## Returns : Nothing yet#sub new_platform{my $class = shift; # Not really a class, but its called like a classmy $pInfo = shift;## Ignore this platform if there is no way that it can be built on the# current machine.#my $entry = $valid_machines{$::GBE_MACHTYPE};unless ( $entry ){Verbose ("DEVLINUX will not build on this machine type: $::GBE_MACHTYPE");$pInfo->{NOT_AVAILABLE} = 1;return;}## Instantiate all targets#foreach my $target ( @$entry ){DEVLINUX_generic( dclone($pInfo), $target );}## All done# Mark the original entry as a TEMPLATE so that it won't be added# We have added cloned copies of it#$pInfo->{TEMPLATE} = 1;}#-------------------------------------------------------------------------------# Function : DEVLINUX_generic## Description : Take a clone of the buildinfo structure and specialise it# for the required target## Inputs : $pInfo - A clone of the buildinfo data# $target - Name of the target platform## Returns : Nothing# The buildinfo MUST be added to the build system#sub DEVLINUX_generic{my ($pInfo, $target) = @_;Debug("DEVLINUX_generic: $target");## Request that a simple BuildAlias be created for this platform# Use the original name of the TARGET#$pInfo->{ALIAS} = $pInfo->{TARGET};# ## # Specify the hardware family# # Will be used to create an ALIAS# ## $pInfo->{HARDWARE} = uc($arch);## Alter the 'TARGET' name# This is allowed (expected)#$pInfo->{TARGET} = uc($target);## Register this 'new' buildinfo entry with the build system#::AddBuildPlatformEntry( $pInfo );}1;