Subversion Repositories DevTools

Rev

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

Rev 283 Rev 327
Line 28... Line 28...
28
 
28
 
29
ToolsetInit();
29
ToolsetInit();
30
 
30
 
31
sub ToolsetInit
31
sub ToolsetInit
32
{
32
{
33
    my $KeilVersion = "MDK Arm V4.3";
-
 
34
    my $GenThumb;
33
    my $GenThumb;
35
    my $GenDevice;
34
    my $GenDevice;
-
 
35
    #
-
 
36
    #   Version Specific
-
 
37
    #
-
 
38
    my $KeilVersion = "MDK Arm V4.3";
-
 
39
    my $Version = '3.40';
-
 
40
    my $DefFile = 'KeilArmV3.def';
36
 
41
 
37
#.. Parse arguments
42
#.. Parse arguments
38
#
43
#
39
    foreach $_ ( @ScmToolsetArgs ) {
44
    foreach $_ ( @ScmToolsetArgs ) {
40
        if ( m~^--Thumb~ ) {
45
        if ( m~^--Thumb~ ) {
41
            $GenThumb=1;
46
            $GenThumb=1;
42
 
47
 
43
        } elsif ( m~^--Device=(.*)~ ) {
48
        } elsif ( m~^--Device=(.*)~ ) {
44
            $GenDevice = $1;
49
            $GenDevice = $1;
45
 
50
 
-
 
51
        } elsif ( m~^--Version=(.*)~ ) {
-
 
52
            $Version = $1;
-
 
53
 
46
        } else {
54
        } else {
47
            Message( "KeilArmV3: unknown option $_ -- ignored\n" );
55
            Message( "KeilArmV3: unknown option $_ -- ignored\n" );
48
        }
56
        }
49
    }
57
    }
50
    Error ("KeilArmV3: Toolset error. --Device must be specified")
58
    Error ("KeilArmV3: Toolset error. --Device must be specified")
51
        unless ( $GenDevice );
59
        unless ( $GenDevice );
52
 
60
 
-
 
61
    #
-
 
62
    #   If using a specified version, then ensure that the required
-
 
63
    #   def file is present. This is used to setup the environment
-
 
64
    #   for this family of compilers
-
 
65
    #
-
 
66
    if ( $Version =~ m/4.03a/i)
-
 
67
    {
-
 
68
        $DefFile = 'KeilArmV43a.def';
-
 
69
        $KeilVersion = "MDK Arm V4.03a";
-
 
70
    }
-
 
71
    Error ("Unsupported compiler version: $Version")
-
 
72
        unless (Exists( "$::GBE_CONFIG/TOOLSET", $DefFile));
-
 
73
 
53
#.. Standard.rul requirements
74
#.. Standard.rul requirements
54
#
75
#
55
    $s = 's';
76
    $s = 's';
56
    $o = 'o';
77
    $o = 'o';
57
    $a = 'lib';
78
    $a = 'lib';
Line 59... Line 80...
59
 
80
 
60
    AddSourceType( ".$s", '.asm' );
81
    AddSourceType( ".$s", '.asm' );
61
 
82
 
62
#.. Define environment
83
#.. Define environment
63
#
84
#
64
    Init( "KeilArmV3" );
85
    Init( "KeilArm" );
65
 
86
 
66
    ToolsetDefine( "#################################################" );
87
    ToolsetDefine( "#################################################" );
67
    ToolsetDefine( "# Compiler version" );
88
    ToolsetDefine( "# Compiler version" );
68
    ToolsetDefine( "#" );
89
    ToolsetDefine( "#" );
69
    ToolsetDefine( "KeilC Version      = \"$KeilVersion\"" );
90
    ToolsetDefine( "KeilC Version      = \"$KeilVersion\"" );
70
    ToolsetDefine( "USE_THUMB = 1" ) if $GenThumb;
91
    ToolsetDefine( "USE_THUMB = 1" ) if $GenThumb;
71
    ToolsetDefine( "USE_DEVICE = $GenDevice" );
92
    ToolsetDefine( "USE_DEVICE = $GenDevice" );
72
    ToolsetDefine( "" );
93
    ToolsetDefine( "" );
73
    ToolsetDefine( "#" );
94
    ToolsetDefine( "#" );
74
 
95
 
75
    ToolsetDefines( "KeilArmV3.def" );
96
    ToolsetDefines( $DefFile );
76
    ToolsetRules  ( "KeilArmV3.rul" );
97
    ToolsetRules  ( "KeilArmV3.rul" );
77
    ToolsetRules  ( "standard.rul" );
98
    ToolsetRules  ( "standard.rul" );
78
 
99
 
79
    #
100
    #
80
    #   Extend the cleanup rule
101
    #   Extend the cleanup rule