10 if ($ENV{PATH} =~ m!\\Symbian\\(.+?)\\(.+?)\\Epoc32\\gcc\\bin!i) {
11 $SYMBIAN_VERSION = $1;
13 $WIN = ($SDK_NAME =~ m!_CW!i || $SDK_NAME eq '8.1a') ?
16 if ($SDK_NAME =~ m!Series60_v20!) {
18 $SDK_VERSION = $ENV{S60SDK} = '2.0';
19 } elsif ($SDK_NAME =~ m!Series60_v21!) {
21 $SDK_VERSION = $ENV{S60SDK} = '2.1';
22 } elsif ($SDK_NAME =~ m!S60_2nd_FP2!) {
24 $SDK_VERSION = $ENV{S60SDK} = '2.6';
25 } elsif ($SDK_NAME =~ m!S60_2nd_FP3!) {
27 $SDK_VERSION = $ENV{S60SDK} = '2.8';
28 } elsif ($SDK_NAME =~ m!S80_DP2_0_SDK!) {
30 $SDK_VERSION = $ENV{S80SDK} = '2.0';
31 } elsif ($SDK_NAME =~ m!Nokia_7710_SDK!) {
33 $SDK_VERSION = $ENV{S90SDK} = '1.1';
35 } elsif ($ENV{PATH} =~ m!\\Symbian\\UIQ_(\d)(\d)\\Epoc32\\gcc\\bin!i) {
38 $SDK_VERSION = $ENV{UIQSDK} = "$1.$2";
39 if ($SDK_VERSION =~ /^2\./) {
40 $SYMBIAN_VERSION = '7.0s';
42 die "$0: Unknown UIQ version '$SDK_VERSION'\n";
44 $WIN = 'winscw'; # This is CodeWarrior, how about Borland?
48 if (open(GCC, "gcc -v 2>&1 |")) {
51 if (/Reading specs from (.+?)\\Epoc32\\/i) {
53 # The S60SDK tells the Series 60 SDK version.
55 if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Shared') { # Visual C.
56 $SYMBIAN_ROOT = 'C:\Symbian\6.1\Series60';
57 $SDK_VERSION = $ENV{S60SDK} = '1.2';
58 } elsif ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') { # CodeWarrior.
59 $SDK_VERSION = $ENV{S60SDK} = '1.2';
67 die "$0: failed to run gcc: $!\n";
70 # Configuration for S60 5th Edition SDK v0.9
71 $SYMBIAN_VERSION = '9.4';
72 $SDK_NAME = 'S60_5th_Edition_SDK';
76 $SDK_VERSION = $ENV{S60SDK} = '5.0';
79 die "$0: failed to locate the Symbian SDK\n" unless defined $SYMBIAN_ROOT;
81 my $UARM = $ENV{UARM} ? $ENV{UARM} : "urel";
82 my $UREL = "$SYMBIAN_ROOT\\epoc32\\release\\-ARM-\\$UARM";
83 if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Series60' && $ENV{WIN} eq 'winscw') {
84 $UREL = "C:\\Symbian\\Series60_1_2_CW\\epoc32\\release\\-ARM-\\urel";
89 [ $SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, $SDK_VERSION ];
91 # The following is a cheat sheet for the right S60/S80 SDK settings.
94 # set EPOC_BIN=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\Tools
95 # set MWCW=C:\Program Files\Metrowerks\CodeWarrior for Symbian OEM v2.8
96 # set MSVC=C:\Program Files\Microsoft Visual Studio
97 # set MSVC_BIN=%MSVC%\VC98\Bin;%MSVC%\Aux\MSDev98\Bin
98 # set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\VC98\include;%MSVC%\mfc\include;%MSVC%\include
99 # set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib
101 # Note that if you are using Microsoft Visual Studio 8
102 # (for example because you are using the Microsoft Visual C++
103 # 2005 Express Edition), the MSVC settings will be different:
104 # set MSVC=C:\Program Files\Microsoft Visual Studio 8\VC
105 # set MSVC_BIN=%MSVC%\bin
106 # set MSVC_INC=%MSVC%\include
107 # set MSVC_LIB=%MSVC%\lib
111 # set EPOCROOT=\Symbian\Series60_1_2_CW\
113 # set PATH=%EPOC_BIN%;%MSVC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
114 # set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
118 # set EPOCROOT=\Symbian\6.1\Series60\
120 # set PATH=\Symbian\6.1\Shared\Epoc32\gcc\bin;\Symbian\6.1\Shared\Epoc32\Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
121 # set INCLUDE=%MSVC_INC%
123 # set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
127 # set EPOCROOT=\Symbian\7.0s\Series60_v20_CW\
128 # set EPOCDEVICE=Series60_2_0_CW:com.Nokia.Series60_2_0_CW
130 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
131 # set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
135 # set EPOCROOT=\Symbian\7.0s\Series60_v20\
136 # set EPOCDEVICE=Series60_v20:com.nokia.series60
138 # set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
139 # set INCLUDE=%MSVC_INC%
141 # set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
145 # set EPOCROOT=\Symbian\7.0s\Series60_v21_CW\
146 # set EPOCDEVICE=Series60_v21_CW:com.Nokia.series60
148 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
149 # set USERDEFS=%USERDEFS% -D__SERIES60_21__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=1 -D__SERIES60_2X__
153 # set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2_CW\
154 # set EPOCDEVICE=S60_2nd_FP2_CW:com.nokia.series60
156 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
157 # set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
161 # set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2\
162 # set EPOCDEVICE=S60_2nd_FP2:com.nokia.Series60
164 # set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
165 # set INCLUDE=%MSVC_INC%
167 # set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
171 # set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\
172 # set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60
174 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
175 # set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
179 # set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\
180 # set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60
182 # set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
183 # set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
187 # set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK_CW\
188 # set EPOCDEVICE=Series80_DP2_0_SDK_CW:com.nokia.Series80
190 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
191 # set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
195 # set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK\
196 # set EPOCDEVICE=Series80_DP2_0_SDK:com.nokia.Series80
198 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
199 # set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
202 # set EPOCROOT=\Symbian\UIQ_21\
204 # set EPOC_BIN=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\Tools
205 # set MWCW=C:\APPS\codewarrior_3.0
206 # set MSVC=C:\Program Files\Microsoft Visual Studio
207 # set MSVC_BIN=%MSVC%;%MSVC%\Common\MSDev98\Bin
208 # set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\mfc\include;%MSVC%\include
209 # set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib
210 # set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
211 # set USERDEFS=%USERDEFS% -D__UIQ_21__ -D__UIQ_MAJOR__=2 -D__UIQ_MINOR__=1 -D__UIQ_2X__
213 # Configuration for S60 5th Edition SDK v0.9
215 #set PATH=%EPOCROOT%epoc32\gcc\bin;%EPOCROOT%epoc32\tools;%PATH%