Avoid corruption when calling mg_get to retrieve the value
[p5sagit/p5-mst-13.2.git] / symbian / sdk.pl
CommitLineData
27da23d5 1use strict;
2
ed76c0e4 3my $SYMBIAN_VERSION;
4my $SYMBIAN_ROOT;
5my $SDK_NAME;
6my $SDK_VARIANT;
7my $SDK_VERSION;
27da23d5 8my $WIN;
9
ed76c0e4 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';
27da23d5 15 $ENV{WIN} = $WIN;
ed76c0e4 16 if ($SDK_NAME =~ m!Series60_v20!) {
17 $SDK_VARIANT = 'S60';
27da23d5 18 $ENV{S60SDK} = '2.0';
ed76c0e4 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';
27da23d5 31 }
32}
33
34if (open(GCC, "gcc -v 2>&1|")) {
35 while (<GCC>) {
36 if (/Reading specs from ((?:C:)?\\Symbian.+?)\\Epoc32\\/i) {
ed76c0e4 37 $SYMBIAN_ROOT = $1;
38 # The S60SDK/S60SDK tells the Series 60 SDK version.
39 if ($ENV{S60SDK}) {
40 if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Shared') { # Visual C.
41 $SYMBIAN_ROOT = 'C:\Symbian\6.1\Series60';
42 $SDK_VERSION = $ENV{S60SDK} = '1.2';
43 } elsif ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') { # CodeWarrior.
44 $SDK_VERSION = $ENV{S60SDK} = '1.2';
45 }
27da23d5 46 }
47 last;
48 }
49 }
50 close GCC;
51} else {
52 die "$0: failed to run gcc: $!\n";
53}
54
ed76c0e4 55die "$0: failed to locate the Symbian SDK\n" unless defined $SYMBIAN_ROOT;
56
27da23d5 57my $UARM = $ENV{UARM} ? $ENV{UARM} : "urel";
ed76c0e4 58my $UREL = "$SYMBIAN_ROOT\\epoc32\\release\\-ARM-\\$UARM";
59if ($SYMBIAN_ROOT eq 'C:\Symbian\6.1\Series60' && $ENV{WIN} eq 'winscw') {
27da23d5 60 $UREL = "C:\\Symbian\\Series60_1_2_CW\\epoc32\\release\\-ARM-\\urel";
61}
62$ENV{UREL} = $UREL;
63$ENV{UARM} = $UARM;
64
ed76c0e4 65[ $SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, $SDK_VERSION ];
c8f896e5 66
67# The following is a cheat sheet for the right S60/S80 SDK settings.
68#
ed76c0e4 69# macro.bat:
c8f896e5 70# set EPOC_BIN=%EPOCROOT%Epoc32\gcc\bin;%EPOCROOT%Epoc32\Tools
71# set MWCW=C:\Program Files\Metrowerks\CodeWarrior for Symbian OEM v2.8
72# set MSVC=C:\Program Files\Microsoft Visual Studio
73# set MSVC_BIN=%MSVC%\VC98\Bin;%MSVC%\Common\MSDev98\Bin
74# set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\mfc\include;%MSVC%\include
75# set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib
76#
77# s60-1.2-cw:
78#
79# set EPOCROOT=\Symbian\Series60_1_2_CW\
ed76c0e4 80# macro
c8f896e5 81# set PATH=%EPOC_BIN%;%MSVC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
82# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
83#
84# s60-1.2-vc:
85#
86# set EPOCROOT=\Symbian\6.1\Series60\
ed76c0e4 87# macro
c8f896e5 88# set PATH=\Symbian\6.1\Shared\Epoc32\gcc\bin;\Symbian\6.1\Shared\Epoc32\Tools;%MSVC_BIN%;%PATH%
89# set INCLUDE=%MSVC_INC%
90# set LIB=%MSVC_LIB%
91# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
92#
93# s60-2.0-cw:
94#
95# set EPOCROOT=\Symbian\7.0s\Series60_v20_CW\
96# set EPOCDEVICE=Series60_2_0_CW:com.Nokia.Series60_2_0_CW
ed76c0e4 97# macro
c8f896e5 98# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
99# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
100#
101# s60-2.0-vc:
102#
103# set EPOCROOT=\Symbian\7.0s\Series60_v20\
104# set EPOCDEVICE=Series60_v20:com.nokia.series60
ed76c0e4 105# macro
c8f896e5 106# set PATH=%EPOC_BIN%;%MSVC_BIN%;%PATH%
107# set INCLUDE=%MSVC_INC%
108# set LIB=%MSVC_LIB%
109# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
110#
111# s60-2.1-cw:
112#
113# set EPOCROOT=\Symbian\7.0s\Series60_v21_CW\
114# set EPOCDEVICE=Series60_v21_CW:com.Nokia.series60
ed76c0e4 115# macro
c8f896e5 116# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
117# set USERDEFS=%USERDEFS% -D__SERIES60_21__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=1 -D__SERIES60_2X__
118#
119# s60-2.6-cw:
120#
121# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2_CW\
122# set EPOCDEVICE=S60_2nd_FP2_CW:com.nokia.series60
ed76c0e4 123# macro
c8f896e5 124# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
125# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
126#
127# s60-2.6-vc:
128#
129# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2\
130# set EPOCDEVICE=S60_2nd_FP2:com.nokia.Series60
ed76c0e4 131# macro
c8f896e5 132# set PATH=%EPOC_BIN%;%MSVC_BIN%;%PATH%
133# set INCLUDE=%MSVC_INC%
134# set LIB=%MSVC_LIB%
135# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
136#
137# s60-2.8-cw:
138#
139# set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\
140# set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60
ed76c0e4 141# macro
c8f896e5 142# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
143# set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
144#
145# s80-2.0-cw:
146#
147# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK_CW\
148# set EPOCDEVICE=Series80_DP2_0_SDK_CW:com.nokia.Series80
ed76c0e4 149# macro
c8f896e5 150# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
151# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
152#
153# s80-2.0-vc:
154#
155# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK\
156# set EPOCDEVICE=Series80_DP2_0_SDK:com.nokia.Series80
ed76c0e4 157# macro
c8f896e5 158# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%PATH%
159# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
160#
161# EOF
162