(0) You need to have the Symbian SDK installed.
These instructions have been tested under various Nokia Series 60
- Symbian SDKs (1.2 to 2.6). You can get the SDKs from
+ Symbian SDKs (1.2 to 2.6, 2.8 should also work, 1.2 compiles but
+ does not work). You can get the SDKs from
Forum Nokia (http://www.forum.nokia.com/).
A prerequisite for any of the SDKs is to install ActivePerl
or the Microsoft Visual C++ 6.0 installed (SP3 minimum, SP5 recommended).
Note that for example the Serie s60 2.0 VC SDK installation talks
- about ActivePerl build 518, which does no more (as of mid-2004) exist
+ about ActivePerl build 518, which does no more (as of mid-2005) exist
at the ActiveState website. The ActivePerl 5.8.4 build 810 was
used successfully for compiling Perl on Symbian. The 5.6.x ActivePerls
do not work.
2.1 | - | + | 6670
2.6 | + | + | 6630
+ Also 2.8 should work fine.
+
If you are using the 'make' directly, it is the GNU make from the SDKs,
and it will invoke the right make commands for the Windows emulator
build and the Arm target builds ('thumb' by default) as necessary.
DynaLoader Exporter File::Spec integer lib strict Symbol
vars warnings XSLoader
- The following extensions are available:
- attrs Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
+ attrs Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 DynaLoader
Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64
PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes
- The following extensions are missing for various technical reasons:
#define crcInitial crc32(0L, Z_NULL, 0)
#if 1
-static char *my_z_errmsg[] = {
+static const char * const my_z_errmsg[] = {
"need dictionary", /* Z_NEED_DICT 2 */
"stream end", /* Z_STREAM_END 1 */
"", /* Z_OK 0 */
""};
#endif
+#if defined(__SYMBIAN32__)
+# define NO_WRITEABLE_DATA
+#endif
+
+#define TRACE_DEFAULT 0
+
+#ifdef NO_WRITEABLE_DATA
+#define trace TRACE_DEFAULT
+#else
+static int trace = TRACE_DEFAULT ;
+#endif
-static int trace = 0 ;
+/* Dodge PerlIO hiding of these functions. */
+#undef printf
static void
#ifdef CAN_PROTOTYPE
int error_no ;
#endif
{
+ dTHX;
char * errstr ;
SV * gzerror_sv = perl_get_sv(GZERRNO, FALSE) ;
SV * output ;
#endif
{
-
+ dTHX;
SV * store = file->buffer ;
char *nl = "\n";
char *p;
char * string;
#endif
{
+ dTHX;
if (SvROK(sv)) {
sv = SvRV(sv) ;
switch(SvTYPE(sv)) {
#ifdef HAS_STRTOD
if (*s == 'n' || *s == 'N' || *s == 'i' || *s == 'I') {
- char *p = negative ? s-1 : s;
+ const char *p = negative ? s - 1 : s;
char *endp;
NV rslt;
rslt = strtod(p, &endp);
- libnet
- Bundle::CPAN
- Archive::Tar
- - Compress::Zlib (zlib?) (there is builtin gz support)
- Term::ReadKey (useless?)
- Term::ReadLine (useless?)
- Bundle::LWP
- HTML::HeadParser
- LWP
- Crypt::SSLeay? (ssl?)
- - IO::Zlib? (zlib?)
- IMAP?
- Net::Telnet?
- Archive::Zip?
- Date::Calc?
- XML? XML::Simple? (expat?) (there is builtin xml support)
- RSS?
- - DBI
+ - DBI (DBD::???)
- DBD::SQLite? (sqlite?)
- SOAP? XML-RPC?
perlext.sis: perldll_arm buildext_sis
perl symbian\\makesis.pl perl${VERSION}ext
-EXT = Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attrs
+EXT = Compress::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attrs
-buildext: perldll symbian\\xsbuild.pl
+buildext: perldll symbian\\xsbuild.pl lib\\Config.pm
perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) \$(EXT)
-buildext_sis: perldll.sis symbian\\xsbuild.pl
+buildext_sis: perldll.sis symbian\\xsbuild.pl lib\\Config.pm
perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) --sis \$(EXT)
cleanext: symbian\\xsbuild.pl
privlib='\\system\\libs\\perl\\x.y.z'
privlibexp='\\system\\libs\\perl\\x.y.z'
procselfexe=''
-prototype='undef'
+prototype='define'
ptrsize='4'
quadkind='4'
quadtype='int64_t'
lib Filter/Simple.pm
lib if.pm
lib integer.pm
+lib IO/Zlib.pm
lib lib.pm
lib Net/Cmd.pm
lib Net/Config.pm
# Extensions.
#
ext attrs
+ext Compress/Zlib -zlib-src
ext Cwd
ext Data/Dumper
ext Devel/Peek
void Perl_my_setenv(pTHX_ const char *var, const char *val) { }
#endif
-bool Perl_do_exec(pTHX_ char *cmd) { return FALSE; }
-bool Perl_do_exec3(pTHX_ char *cmd, int fd, int flag) { return FALSE; }
+bool Perl_do_exec(pTHX_ const char *cmd) { return FALSE; }
+bool Perl_do_exec3(pTHX_ const char *cmd, int fd, int flag) { return FALSE; }
int Perl_do_spawn(pTHX_ char *cmd) { return symbian_do_spawn(cmd); }
int Perl_do_aspawn(pTHX_ SV *really, SV** mark, SV **sp) { return symbian_do_aspawn(really, mark, sp); }
}
}
if ( my @c = glob("*.c *.cpp */*.c */*.cpp") ) {
+ @c = grep { ! m:^zlib-src/: } @c if $ext eq 'ext\Compress\Zlib';
for my $c (@c) {
$c =~ s:/:\\:g;
$src{$c}++;
}
}
if ( my @h = glob("*.h */*.h") ) {
+ @h = grep { ! m:^zlib-src/: } @h if $ext eq 'ext\Compress\Zlib';
for my $h (@h) {
$h =~ s:/:\\:g;
$h = dirname($h);
$incdir{"$dir\\$h"}++ unless $h eq ".";
}
}
+ if ( $ext eq 'ext\Compress\Zlib' ) {
+ system_echo("perl -pi.bak -e s:True:False: config.in") == 0
+ or die "$0: changing BUILD_ZLIB failed: $!\n";
+ }
if ( exists $EXTCFG{$ext} ) {
for my $cfg ( @{ $EXTCFG{$ext} } ) {
if ( $cfg =~ /^([-+])?(.+\.(c|cpp|h))$/ ) {