perl symbian\config.pl
- You must use the cmd.exe, the Cygwin shell will not work
- (the PATH must include the SDK tools, including a Perl,
- which should be the case under cmd.exe)
+ You must use the cmd.exe, the Cygwin shell will not work.
+ The PATH must include the SDK tools, including a Perl,
+ which should be the case under cmd.exe. If you do not
+ have that, see the end of symbian\sdk.pl for notes of
+ how your environment should be set up for Symbian compiles.
(4) Build the project, either by
make all
in cmd.exe or by using either the Metrowerks CodeWarrior
- or the Visual C++ 6.0.
+ or the Visual C++ 6.0, or the Visual Studio 8 (the Visual C++
+ 2005 Express Edition works fine).
If you use the VC IDE, you will have to run F<symbian\config.pl>
first using the cmd.exe, and then run 'make win.mf vc6.mf' to generate
S60 2.0 | + | + | 6600
S60 2.1 | - | + | 6670
S60 2.6 | + | + | 6630
- S60 2.8 | - | + | (not tested in a device)
+ S60 2.8 | + | + | (not tested in a device)
S80 2.6 | - | + | 9300
S90 1.1 | + | - | 7710
UIQ 2.1 | - | + | (not tested in a device)
Copyright (c) 2004-2005 Nokia. All rights reserved.
+Copyright (c) 2006-2007 Jarkko Hietaniemi.
+
=head1 LICENSE
The Symbian port is licensed under the same terms as Perl itself.
We maintain the binary incompatibility.
+=item *
+
0.4.1: December 2006
- - Perl 5.9.5 (patch level 30002)
+ - Perl 5.9.5-to-be (patch level 30002)
- added extensions: Compress/Raw/Zlib, Digest/SHA,
Hash/Util, Math/BigInt/FastCalc, Text/Soundex, Time/Piece
- port to S90 1.1 by alexander smishlajev
We maintain the binary incompatibility.
+=item *
+
+0.4.2: March 2007
+
+ - catchup with Perl 5.9.5-to-be (patch level 30812)
+ - tested to build with Microsoft Visual C++ 2005 Express Edition
+ (which uses Microsoft Visual C 8, instead of the old VC6),
+ SDK used for testing S60_2nd_FP3 aka 8.1a
+
+We maintain the binary incompatibility.
+
=back
=cut
package AutoSplit;
-use 5.009005; # due to "my $_" and new regexp features
use Exporter ();
use Config qw(%Config);
use File::Basename ();
}
my $Is_VMS = ($^O eq 'VMS');
-# allow checking for valid ': attrlist' attachments
+# allow checking for valid ': attrlist' attachments.
+# extra jugglery required to support both 5.8 and 5.9/5.10 features
+# (support for 5.8 required for cross-compiling environments)
-my $attr_list = qr{
+my $attr_list =
+ $] >= 5.009005 ?
+ eval <<'__QR__'
+ qr{
\s* : \s*
(?:
# one attribute
)
(?: \s* : \s* | \s+ (?! :) )
)*
-}x;
+ }x
+__QR__
+ :
+ do {
+ # In pre-5.9.5 world we have to do dirty tricks.
+ # (we use 'our' rather than 'my' here, due to the rather complex and buggy
+ # behaviour of lexicals with qr// and (??{$lex}) )
+ our $trick1; # yes, cannot our and assign at the same time.
+ $trick1 = qr{ \( (?: (?> [^()]+ ) | (??{ $trick1 }) )* \) }x;
+ our $trick2 = qr{ (?> (?! \d) \w+ (?:$trick1)? ) (?:\s*\:\s*|\s+(?!\:)) }x;
+ qr{ \s* : \s* (?: $trick2 )* }x;
+ };
sub autosplit{
my($file, $autodir, $keep, $ckal, $ckmt) = @_;
sub autosplit_lib_modules {
my(@modules) = @_; # list of Module names
-
- while (defined(my $_ = shift @modules)) {
+ local $_; # Avoid clobber.
+ while (defined($_ = shift @modules)) {
while (m#([^:]+)::([^:].*)#) { # in case specified as ABC::XYZ
$_ = catfile($1, $2);
}
# constants from cv_const_sv are read only. So we have to:
Internals::SvREADONLY($scalar, 1);
$symtab->{$name} = \$scalar;
- Internals::inc_sub_generation;
+ &Internals::inc_sub_generation;
} else {
*$full_name = sub () { $scalar };
}
#ifndef DOINIT
EXTCONST char * PL_reg_name[];
#else
-EXTCONST char * PL_reg_name[] = {
+EXTCONST char * const PL_reg_name[] = {
EOP
$ind = 0;
#ifndef DOINIT
EXTCONST char * PL_reg_name[];
#else
-EXTCONST char * PL_reg_name[] = {
+EXTCONST char * const PL_reg_name[] = {
"END", /* 0000 */
"SUCCEED", /* 0x01 */
"BOL", /* 0x02 */
{
- dll => { MAJOR => 0, MINOR => 4, PATCH => 0 },
- ext => { MAJOR => 0, MINOR => 4, PATCH => 0 },
- lib => { MAJOR => 0, MINOR => 4, PATCH => 0 },
+ dll => { MAJOR => 0, MINOR => 4, PATCH => 2 },
+ ext => { MAJOR => 0, MINOR => 4, PATCH => 2 },
+ lib => { MAJOR => 0, MINOR => 4, PATCH => 2 },
}
# set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\VC98\include;%MSVC%\mfc\include;%MSVC%\include
# set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib
#
+# Note that if you are using Microsoft Visual Studio 8
+# (for example because you are using the Microsoft Visual C++
+# 2005 Express Edition), the MSVC settings will be different:
+# set MSVC=C:\Program Files\Microsoft Visual Studio 8\VC
+# set MSVC_BIN=%MSVC%\bin
+# set MSVC_INC=%MSVC%\include
+# set MSVC_LIB=%MSVC%\lib
+#
# s60-1.2-cw:
#
# set EPOCROOT=\Symbian\Series60_1_2_CW\
# symbiancommon
-# set PATH=%EPOC_BIN%;%MSVC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MSVC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
#
# s60-1.2-vc:
#
# set EPOCROOT=\Symbian\6.1\Series60\
# symbiancommon
-# set PATH=\Symbian\6.1\Shared\Epoc32\gcc\bin;\Symbian\6.1\Shared\Epoc32\Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=\Symbian\6.1\Shared\Epoc32\gcc\bin;\Symbian\6.1\Shared\Epoc32\Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set INCLUDE=%MSVC_INC%
# set LIB=%MSVC_LIB%
# set USERDEFS=%USERDEFS% -D__SERIES60_12__ -D__SERIES60_MAJOR__=1 -D__SERIES60_MINOR__=2 -D__SERIES60_1X__
# set EPOCROOT=\Symbian\7.0s\Series60_v20_CW\
# set EPOCDEVICE=Series60_2_0_CW:com.Nokia.Series60_2_0_CW
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
#
# s60-2.0-vc:
# set EPOCROOT=\Symbian\7.0s\Series60_v20\
# set EPOCDEVICE=Series60_v20:com.nokia.series60
# symbiancommon
-# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set INCLUDE=%MSVC_INC%
# set LIB=%MSVC_LIB%
# set USERDEFS=%USERDEFS% -D__SERIES60_20__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=0 -D__SERIES60_2X__
# set EPOCROOT=\Symbian\7.0s\Series60_v21_CW\
# set EPOCDEVICE=Series60_v21_CW:com.Nokia.series60
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES60_21__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=1 -D__SERIES60_2X__
#
# s60-2.6-cw:
# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2_CW\
# set EPOCDEVICE=S60_2nd_FP2_CW:com.nokia.series60
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
#
# s60-2.6-vc:
# set EPOCROOT=\Symbian\8.0a\S60_2nd_FP2\
# set EPOCDEVICE=S60_2nd_FP2:com.nokia.Series60
# symbiancommon
-# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set INCLUDE=%MSVC_INC%
# set LIB=%MSVC_LIB%
# set USERDEFS=%USERDEFS% -D__SERIES60_26__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=6 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
# set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\
# set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
#
+# s60-2.8-vc:
+#
+# set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\
+# set EPOCDEVICE=S60_2nd_FP3:com.nokia.series60
+# symbiancommon
+# set PATH=%EPOC_BIN%;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
+# set USERDEFS=%USERDEFS% -D__SERIES60_28__ -D__SERIES60_MAJOR__=2 -D__SERIES60_MINOR__=8 -D__SERIES60_2X__ -D__BLUETOOTH_API_V2__
+#
# s80-2.0-cw:
#
# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK_CW\
# set EPOCDEVICE=Series80_DP2_0_SDK_CW:com.nokia.Series80
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
#
# s80-2.0-vc:
# set EPOCROOT=\Symbian\7.0s\S80_DP2_0_SDK\
# set EPOCDEVICE=Series80_DP2_0_SDK:com.nokia.Series80
# symbiancommon
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__SERIES80_20__ -D__SERIES80_MAJOR__=2 -D__SERIES80_MINOR__=0 -D__SERIES80_2X__
#
# UIQ-2.1-vc:
# set MSVC_BIN=%MSVC%;%MSVC%\Common\MSDev98\Bin
# set MSVC_INC=%MSVC%\VC98\atl\include;%MSVC%\mfc\include;%MSVC%\include
# set MSVC_LIB=%MSVC%\mfc\lib;%MSVC%\lib
-# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32
+# set PATH=%EPOC_BIN%;%MWCW%\Bin;%MWCW%\Symbian_Tools\Command_Line_Tools;%MSVC_BIN%;C:\perl\bin;C:\winnt\system32;%PATH%
# set USERDEFS=%USERDEFS% -D__UIQ_21__ -D__UIQ_MAJOR__=2 -D__UIQ_MINOR__=1 -D__UIQ_2X__
#
# EOF