diff options
-rw-r--r-- | README.symbian | 30 | ||||
-rw-r--r-- | lib/AutoSplit.pm | 27 | ||||
-rw-r--r-- | lib/constant.pm | 2 | ||||
-rw-r--r-- | regcomp.pl | 2 | ||||
-rw-r--r-- | regnodes.h | 2 | ||||
-rw-r--r-- | symbian/port.pl | 6 | ||||
-rw-r--r-- | symbian/sdk.pl | 38 |
7 files changed, 78 insertions, 29 deletions
diff --git a/README.symbian b/README.symbian index b96a911fc0..6bd36f5a75 100644 --- a/README.symbian +++ b/README.symbian @@ -69,16 +69,19 @@ mainly as demonstrations. 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 @@ -95,7 +98,7 @@ mainly as demonstrations. 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) @@ -330,6 +333,8 @@ Jarkko Hietaniemi 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. @@ -400,15 +405,28 @@ We maintain the binary incompatibility. 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 diff --git a/lib/AutoSplit.pm b/lib/AutoSplit.pm index bf9280623f..a6c0ee32b2 100644 --- a/lib/AutoSplit.pm +++ b/lib/AutoSplit.pm @@ -1,6 +1,5 @@ package AutoSplit; -use 5.009005; # due to "my $_" and new regexp features use Exporter (); use Config qw(%Config); use File::Basename (); @@ -146,9 +145,14 @@ if (defined (&Dos::UseLFN)) { } 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 @@ -158,7 +162,18 @@ my $attr_list = qr{ ) (?: \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) = @_; @@ -181,8 +196,8 @@ sub carp{ 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); } diff --git a/lib/constant.pm b/lib/constant.pm index 83714a89a4..f1b4d73f59 100644 --- a/lib/constant.pm +++ b/lib/constant.pm @@ -109,7 +109,7 @@ sub import { # 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 }; } diff --git a/regcomp.pl b/regcomp.pl index 38c346cc0c..3ba699b0b6 100644 --- a/regcomp.pl +++ b/regcomp.pl @@ -164,7 +164,7 @@ print OUT <<EOP; #ifndef DOINIT EXTCONST char * PL_reg_name[]; #else -EXTCONST char * PL_reg_name[] = { +EXTCONST char * const PL_reg_name[] = { EOP $ind = 0; diff --git a/regnodes.h b/regnodes.h index 6f6e0b262a..e704427847 100644 --- a/regnodes.h +++ b/regnodes.h @@ -459,7 +459,7 @@ static const char reg_off_by_arg[] = { #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 */ diff --git a/symbian/port.pl b/symbian/port.pl index cbba0c8579..599321dfb1 100644 --- a/symbian/port.pl +++ b/symbian/port.pl @@ -1,6 +1,6 @@ { - 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 }, } diff --git a/symbian/sdk.pl b/symbian/sdk.pl index 0db16ed323..4003ae0df5 100644 --- a/symbian/sdk.pl +++ b/symbian/sdk.pl @@ -89,18 +89,26 @@ $ENV{UARM} = $UARM; # 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__ @@ -110,7 +118,7 @@ $ENV{UARM} = $UARM; # 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: @@ -118,7 +126,7 @@ $ENV{UARM} = $UARM; # 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__ @@ -128,7 +136,7 @@ $ENV{UARM} = $UARM; # 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: @@ -136,7 +144,7 @@ $ENV{UARM} = $UARM; # 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: @@ -144,7 +152,7 @@ $ENV{UARM} = $UARM; # 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__ @@ -154,15 +162,23 @@ $ENV{UARM} = $UARM; # 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: @@ -170,7 +186,7 @@ $ENV{UARM} = $UARM; # 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: @@ -182,7 +198,7 @@ $ENV{UARM} = $UARM; # 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 |