--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1/abld/e32util/checkgcc.pm Fri Jun 25 17:29:25 2010 +0800
@@ -0,0 +1,99 @@
+# Copyright (c) 1997-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:
+# module for checking gcc is set up correctly
+#
+#
+
+package CheckGcc;
+
+use Preprocessor;
+
+
+sub CheckGcc_Default()
+{
+ # die if CPP.EXE (or whatever) in a dodgy place in the path
+ my $pbp = $ENV{PBUILDPID};
+ my @Paths=split ';', $ENV{Path};
+ unshift @Paths,'.'; # add the current directory
+ foreach (@Paths) {
+ s-/-\\-go; # for those working with UNIX shells
+ s-^(.*[^\\])$-$1\\-o; # ensure path ends with a backslash
+ if ((-e $_.'CPP.EXE') or (-e $_.'CPP.BAT') or (-e $_.'CPP.CMD')) {
+ unless (/\\GCC(\w\w)?\\BIN\\$/i) {
+ unless (lc($1) eq lc($pbp)) {
+ die
+ "ERROR: First CPP executable found in path is in $_,\n",
+ "but the required CPP.EXE was expected to be found in a directory\n",
+ "with a name ending in \\GCC$pbp\\BIN\\, where the Cygnus tools\n",
+ "this program depends upon are stored.\n",
+ "Is your path set up correctly?\n"
+ ;
+ }
+ }
+ return;
+ }
+ }
+ die "ERROR: CPP executable not found in path\n";
+}
+
+sub CheckGcc_Generic()
+{
+ # die if CPP.EXE (or whatever pre processor) in a dodgy place in the path
+
+ my @Paths=split ';', $ENV{Path};
+ unshift @Paths,'.'; # add the current directory
+
+ my $exe = &PreprocessorToUseExe();
+ my $path = &PreprocessorToUsePath();
+
+ foreach (@Paths) {
+ s-/-\\-go; # for those working with UNIX shells
+ s-^(.*[^\\])$-$1\\-o; # ensure path ends with a backslash
+ s-$-$path-; # add in the path relative to gcc\bin.
+ if ((-e $_.$exe.'.EXE') or (-e $_.$exe.'.BAT') or (-e $_.$exe.'.CMD')) {
+ unless (/\\EPOC32\\TOOLS\\\Q$path\E$/i) {
+ die
+ "ERROR: First $exe executable found in path is in $_,\n",
+ "but the required $exe.EXE was expected to be found in a directory\n",
+ "with a name ending in \\EPOC32\\TOOLS\\$path, where the tools\n",
+ "this program depends upon are stored.\n",
+ "Is your path set up correctly?\n"
+ ;
+ }
+ return;
+ }
+ }
+ die "ERROR: $exe executable not found in path\n";
+
+}
+BEGIN {
+ my $preprocessor_to_use = &PreprocessorToUseId();
+
+ if ( $preprocessor_to_use eq "DEFAULT" )
+ {
+ &CheckGcc_Default(); # pre processor & cpp same.
+ }
+ elsif ( $preprocessor_to_use eq "MINGW_NO_CYGWIN" )
+ {
+ &CheckGcc_Generic(); # check for preprocessor.
+ }
+ else
+ {
+ die("CHECKGCC.PM : error should never happen\n");
+ }
+}
+
+
+1;
+