sbsv1/abld/e32util/preprocessor.pm
author lorewang
Wed, 17 Nov 2010 11:21:28 +0800
changeset 684 2defe8c85348
parent 599 fa7a3cc6effd
permissions -rw-r--r--
elf2e32 treatment of ARM$$INIT_ARRAY$$Base can break GCCE builds

# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
# prepocessor.pm
# Used to allow us to access and manipulate other pre processors
# 
#

package Preprocessor;

require Exporter;
@ISA=qw(Exporter);

@EXPORT=qw(
	PreprocessorToUseId PreprocessorToUseExe PreprocessorToUsePath 
);



#
# Returns the preprocessor name.
# (After checking it is valid)
#
sub PreprocessorToUseId()
{
    $env="0";
    if (defined $ENV{ALT_PRE})
    {
	$env = $ENV{ALT_PRE};
    }
    
    if ( $env eq "1" ) # Only a value of 1 will use alternative preprocessor
    {
        return "MINGW_NO_CYGWIN";
    }
    else
    {
        return "DEFAULT";
    }
}



#
# Returns the preprocessor exe name.
# without the exe extension.
#


sub PreprocessorToUseExe()
{
    $env = &PreprocessorToUseId();
    
    if ( ($env eq "DEFAULT") )
    {
        return "cpp";
    }
    elsif ( $env eq "MINGW_NO_CYGWIN" )
    {
        return "scpp";
    }
}




#
# Returns the full path and exe of the preprocessor relative to the 
# gcc\bin path.
#
sub PreprocessorToUsePath()
{
    $env = &PreprocessorToUseId();

    if ( ($env eq "") || ($env eq "DEFAULT") )
    {
        return "";
    }
    elsif ( $env eq "MINGW_NO_CYGWIN" )
    {
        return ""; # Currently same path as default (different name though !)
    }
    else
    { # Nothing really to use.
        die
            "Unable to find the correct pre processor\n",
    }
}


1;