1use strict; 2 3my $SYMBIAN_VERSION; 4my $SYMBIAN_ROOT; 5my $SDK_NAME; 6my $SDK_VARIANT; 7my $SDK_VERSION; 8my $WIN; 9 10if ($ENV{PATH} =~ m!\\Symbian\\(.+?)\\(.+?)\\Epoc32\\gcc\\bin!i) { 11 $SYMBIAN_VERSION = $1; 12 $SDK_NAME = $2; 13 $WIN = ($SDK_NAME =~ m!_CW!i || $SDK_NAME eq '8.1a') ? 14 'winscw' : 'wins'; 15 $ENV{WIN} = $WIN; 16 if ($SDK_NAME =~ m!Series60_v20!) { 17 $SDK_VARIANT = 'S60'; 18 $SDK_VERSION = $ENV{S60SDK} = '2.0'; 19 } elsif ($SDK_NAME =~ m!Series60_v21!) { 20 $SDK_VARIANT = 'S60'; 21 $SDK_VERSION = $ENV{S60SDK} = '2.1'; 22 } elsif ($SDK_NAME =~ m!S60_2nd_FP2!) { 23 $SDK_VARIANT = 'S60'; 24 $SDK_VERSION = $ENV{S60SDK} = '2.6'; 25 } elsif ($SDK_NAME =~ m!S60_2nd_FP3!) { 26 $SDK_VARIANT = 'S60'; 27 $SDK_VERSION = $ENV{S60SDK} = '2.8'; 28 } elsif ($SDK_NAME =~ m!S80_DP2_0_SDK!) { 29 $SDK_VARIANT = 'S80'; 30 $SDK_VERSION = $ENV{S80SDK} = '2.0'; 31 } elsif ($SDK_NAME =~ m!Nokia_7710_SDK!) { 32 $SDK_VARIANT = 'S90'; 33 $SDK_VERSION = $ENV{S90SDK} = '1.1'; 34 } 35} elsif ($ENV{PATH} =~ m!\\S60\\devices\\(.+?)\\epoc32\\gcc\\bin!i) { 36 $SDK_VARIANT = 'S60'; 37 $SDK_NAME = $1; 38 $WIN = $ENV{WIN} = 'winscw'; 39 $SYMBIAN_VERSION = '9.4'; 40 $SDK_VERSION = $ENV{S60SDK} = '5.0'; 41 $SYMBIAN_ROOT = $ENV{EPOCROOT}; 42} elsif ($ENV{PATH} =~ m!\\Symbian\\UIQ_(\d)(\d)\\Epoc32\\gcc\\bin!i) { 43 $SDK_NAME = 'UIQ'; 44 $SDK_VARIANT = 'UIQ'; 45 $SDK_VERSION = $ENV{UIQSDK} = "$1.$2"; 46 if ($SDK_VERSION =~ /^2\./) { 47 $SYMBIAN_VERSION = '7.0s'; 48 } else { 49 die "$0: Unknown UIQ version '$SDK_VERSION'\n"; 50 } 51 $WIN = 'winscw'; # This is CodeWarrior, how about Borland? 52 $ENV{WIN} = $WIN; 53} 54 55if (open(GCC, "gcc -v 2>&1 |")) { 56 while (<GCC>) { 57 # print; 58 if (/Reading specs from (.+?)\\Epoc32\\/i) { 59 $SYMBIAN_ROOT = $1; 60 # The S60SDK tells the Series 60 SDK version. 61 if ($ENV{S60SDK}) { 62 if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Shared') { # Visual C. 63 $SYMBIAN_ROOT = 'C:\Symbian\6.1\Series60'; 64 $SDK_VERSION = $ENV{S60SDK} = '1.2'; 65 } elsif ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') { # CodeWarrior. 66 $SDK_VERSION = $ENV{S60SDK} = '1.2'; 67 } 68 } 69 last; 70 } 71 } 72 close GCC; 73} else { 74 die "$0: failed to run gcc: $!\n"; 75} 76 77die "$0: failed to locate the Symbian SDK\n" unless defined $SYMBIAN_ROOT; 78 79my $UARM = $ENV{UARM} ? $ENV{UARM} : "urel"; 80my $UREL = "$SYMBIAN_ROOT\\epoc32\\release\\-ARM-\\$UARM"; 81if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Series60' && $ENV{WIN} eq 'winscw') { 82 $UREL = "C:\\Symbian\\Series60_1_2_CW\\epoc32\\release\\-ARM-\\urel"; 83} 84$ENV{UREL} = $UREL; 85$ENV{UARM} = $UARM; 86 87[ $SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, $SDK_VERSION ]; 88 89# The following is a cheat sheet for the right S60/S80 SDK settings. 90# 91# symbiancommon.bat: 92# set EPOC_BIN=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\Tools 93# set MWCW=C:\Program Files\Metrowerks\CodeWarrior for Symbian OEM v2.8 94# set MSVC=C:\Program Files\Microsoft Visual Studio 95# set MSVC_BIN=%MSVC%\VC98\Bin;%MSVC%\Aux\MSDev98\Bin 96# set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\VC98\include;%MSVC%\mfc\include;%MSVC%\include 97# set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib 98# 99# Note that if you are using Microsoft Visual Studio 8 100# (for example because you are using the Microsoft Visual C++ 101# 2005 Express Edition), the MSVC settings will be different: 102# set MSVC=C:\Program Files\Microsoft Visual Studio 8\VC 103# set MSVC_BIN=%MSVC%\bin 104# set MSVC_INC=%MSVC%\include 105# set MSVC_LIB=%MSVC%\lib 106# 107# s60-1.2-cw: 108# 109# set EPOCROOT=\Symbian\Series60_1_2_CW\ 110# symbiancommon 111# set PATH=%EPOC_BIN%;%MSVC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 112# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__ 113# 114# s60-1.2-vc: 115# 116# set EPOCROOT=\Symbian\6.1\Series60\ 117# symbiancommon 118# set PATH=\Symbian\6.1\Shared\Epoc32\gcc\bin;\Symbian\6.1\Shared\Epoc32\Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 119# set INCLUDE=%MSVC_INC% 120# set LIB=%MSVC_LIB% 121# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__ 122# 123# s60-2.0-cw: 124# 125# set EPOCROOT=\Symbian\7.0s\Series60_v20_CW\ 126# set EPOCDEVICE=Series60_2_0_CW:com.Nokia.Series60_2_0_CW 127# symbiancommon 128# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 129# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__ 130# 131# s60-2.0-vc: 132# 133# set EPOCROOT=\Symbian\7.0s\Series60_v20\ 134# set EPOCDEVICE=Series60_v20:com.nokia.series60 135# symbiancommon 136# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 137# set INCLUDE=%MSVC_INC% 138# set LIB=%MSVC_LIB% 139# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__ 140# 141# s60-2.1-cw: 142# 143# set EPOCROOT=\Symbian\7.0s\Series60_v21_CW\ 144# set EPOCDEVICE=Series60_v21_CW:com.Nokia.series60 145# symbiancommon 146# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 147# set USERDEFS=%USERDEFS% -D__SERIES60_21__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=1 -D__SERIES60_2X__ 148# 149# s60-2.6-cw: 150# 151# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2_CW\ 152# set EPOCDEVICE=S60_2nd_FP2_CW:com.nokia.series60 153# symbiancommon 154# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 155# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__ 156# 157# s60-2.6-vc: 158# 159# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2\ 160# set EPOCDEVICE=S60_2nd_FP2:com.nokia.Series60 161# symbiancommon 162# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 163# set INCLUDE=%MSVC_INC% 164# set LIB=%MSVC_LIB% 165# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__ 166# 167# s60-2.8-cw: 168# 169# set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\ 170# set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60 171# symbiancommon 172# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 173# set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__ 174# 175# s60-2.8-vc: 176# 177# set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\ 178# set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60 179# symbiancommon 180# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 181# set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__ 182# 183# s60-5.0 - S60 5th Edition SDK v1.0: 184# 185# set EPOCROOT=\S60\devices\S60_5th_Edition_SDK_v1.0\ 186# set PATH=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\tools;%PATH% 187# 188# s80-2.0-cw: 189# 190# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK_CW\ 191# set EPOCDEVICE=Series80_DP2_0_SDK_CW:com.nokia.Series80 192# symbiancommon 193# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 194# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__ 195# 196# s80-2.0-vc: 197# 198# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK\ 199# set EPOCDEVICE=Series80_DP2_0_SDK:com.nokia.Series80 200# symbiancommon 201# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 202# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__ 203# 204# UIQ-2.1-vc: 205# set EPOCROOT=\Symbian\UIQ_21\ 206# set EPOCDEVICE= 207# set EPOC_BIN=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\Tools 208# set MWCW=C:\APPS\codewarrior_3.0 209# set MSVC=C:\Program Files\Microsoft Visual Studio 210# set MSVC_BIN=%MSVC%;%MSVC%\Common\MSDev98\Bin 211# set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\mfc\include;%MSVC%\include 212# set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib 213# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH% 214# set USERDEFS=%USERDEFS% -D__UIQ_21__ -D__UIQ_MAJOR__=2 -D__UIQ_MINOR__=1 -D__UIQ_2X__ 215# 216# EOF 217

