http://www.symbian.com/
This is a port of perl to EPOC. It runs on ER5 machines: Psion 5mx,
-5mx Pro, Psion Revo and on the Ericson M128. I have no report about
-the Psion Netbook or the S7. It runs on ER3 Hardware (Series 5
-classic), too. For more information about this hardware please refer
-to http://www.psion.com.
+5mx Pro, Psion Revo, Psion Netbook and on the Ericson M128. It runs on
+ER3 Hardware (Series 5 classic), too. For more information about this
+hardware please refer to http://www.psion.com.
Vendors which like to have support for their devices are free to send
me a sample.
the perl installation drive first. You can even provide a script with
a special commandline, if needed.
-Alternatively you can get ESHELL from symbian:
-http://developer.epocworld.com/downloads/progs/Eshell.zip
-
-Running ESHELL you can enter: perl -de 0 in order to run the perl
-debugger. If you are leaving perl, you get into the system screen. You
-have to switch back manually to ESHELL. When perl is running, you will
-see a task with the name STDOUT in the task list.
+Alternatively you can use the epocemx shell
If you have an ER3 machine (i.e. a PSION 5), you may have to supply the
full path to the perl executable C:\system\programs\perl.exe.
=head1 STOPPING PERL ON EPOC
You can stop a running perl process in the task list by closing the
-application `STDOUT'. You cannot stop a running perl process if it has
-not written anything to stdout or stderr! Be very cautious with I/O
-redirection. You will have to reboot the PDA!
+application `STDOUT'. You can use the kill command in the epocemx
+shell to kill perl.
=head1 USING PERL ON EPOC
=head2 Editors on Epoc
A suitable text editor can be downloaded from symbian
- http://developer.epocworld.com/downloads/progs/Editor.zip
+http://www.symbian.com/developer/downloads/files/editor.zip
=head2 Features of Perl on Epoc
=item *
-You will need the C++ SDK from http://developer.epocworld.com/.
-
-=item *
-
-You will need to set up the cross SDK from
-http://www.science-computing.de/o.flebbe/sdk
-
-=item *
-
-You may have to adjust config.sh (cc, cppflags) to reflect your epoc
-and SDK location.
+You will need the epocemx SDK from Eberhard Mattes. Watch out for an
+announcement.
=item *
make
cp miniperl.native miniperl
make
- make ext/Errno/pm_to_blib
- perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \
- lib/auto/Data/Dumper/Dumper.a \
- lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \
- lib/auto/Socket/Socket.a \
- lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \
- perl.a `cat ext.libs`
perl createpkg.pl
- wine G:/bin/makesis perl.pkg perl.sis
+ emxsis perl.pkg perl.sis
=back
=head1 LAST UPDATE
-2001-02-26
+2001-12-12
=cut
apirevision=''
apisubversion=''
apiversion=''
-ar='arm-pe-ar'
+ar='arm-epoc-pe-ar'
archlib='?:/perl/lib/5.7.2/epoc'
archlibexp='?:/perl/lib/5.7.2/epoc'
archname64=''
c=''
castflags='0'
cat='cat'
-cc='arm-pe-gcc -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/ -nostdinc -D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__EXE__ -I/usr/local/epoc/include/ -I/usr/local/epoc/include/libc -DEPOC'
+cc='arm-epoc-pe-gcc -DEPOC'
cccdlflags=''
ccdlflags=''
-ccflags='-Wno-ctor-dtor-privacy -mcpu-arm710 -mapcs-32 -mshort-load-bytes -msoft-float -fcheck-new -fvtable-thunks'
+ccflags=''
ccsymbols=''
cf_by='olaf'
cf_email='o.flebbe@gmx.de'
-cf_time='Dec 1999'
+cf_time='Dec 2001'
chgrp=''
chmod=''
chown=''
contains='grep'
cp='cp'
cpio=''
-cpp='arm-pe-cpp'
+cpp='arm-epoc-pe-cpp'
cpp_stuff='42'
cppccsymbols='EPOC=1'
-cppflags=' -nostdinc -D__SYMBIAN32__ -D__PSISOFT32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__EXE__ -I/usr/local/epoc/include/ -I/usr/local/epoc/include/libc'
+cppflags=''
cpplast='-'
cppminus='-'
-cpprun='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/'
-cppstdin='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/'
+cpprun='arm-epoc-pe-gcc -E'
+cppstdin='arm-epoc-pe-gcc -E'
cppsymbols=''
cryptlib=''
csh='csh'
flex=''
fpostype='fpos_t'
freetype='void'
-full_ar='/usr/local/bin/arm-pe-ar'
+full_ar='arm-epoc-pe-ar'
full_csh=''
full_sed='/usr/bin/sed'
gccversion=''
ksh=''
ld='echo'
lddlflags=''
-ldflags=''
+ldflags='-Wl,-heap,0x04000000'
ldlibpthname=''
less=''
lib_ext=''
netdb_host_type='const char *'
netdb_name_type='const char *'
netdb_net_type='int'
-nm='arm-pe-nm'
+nm='arm-epoc-pe-nm'
nm_opt=''
nm_so_opt=''
nonxs_ext='Errno'
randbits='31'
randfunc=''
randseedtype='unsigned'
-ranlib='arm-pe-ranlib'
+ranlib='arm-epoc-pe-ranlib'
rd_nodata='-1'
rm='rm'
rmail=''
$VERSION="5.7";
$PATCH="1";
$EPOC_VERSION=27;
-$CROSSCOMPILEPATH=cwd;
-$CROSSREPLACEPATH="H:\\perl";
sub filefound {
- my $f = $File::Find::name;
-
- return if ( $f =~ /CVS|unicode|CPAN|ExtUtils|IPC|User|DB.pm|\.a$|\.ld$|\.exists$|\.pod$/i);
- my $back = $f;
-
- $back =~ s|$CROSSCOMPILEPATH||;
- $back =~ s|/|\\|g;
+ my $f = $File::Find::name;
+
+ return if ( $f =~ /CVS|unicode|CPAN|ExtUtils|IPC|User|DB.pm|\.a$|\.ld$|\.exists$|\.pod$/i);
+ my $back = $f;
- my $psiback = $back;
+ my $psiback = $back;
- $psiback =~ s/\\lib\\/\\perl\\lib\\$VERSION.$PATCH\\/i;
+ $psiback =~ s|.*/lib/|\\perl\\lib\\$VERSION.$PATCH\\|;
- print OUT "\"$CROSSREPLACEPATH$back\"-\"!:$psiback\"\n" if ( -f $f );
-;
+ print OUT "\"$back\"-\"!:$psiback\"\n" if ( -f $f );
}
open OUT,">perl.pkg";
print OUT "#{\"perl$VERSION\"},(0x100051d8),$PATCH,$EPOC_VERSION,0\n";
-print OUT "\"$CROSSREPLACEPATH\\Artistic\"-\"\",FT,TA\n";
-print OUT "\"$CROSSREPLACEPATH\\perlmain.exe\"-\"!:\\system\\programs\\perl.exe\"\n";
+print OUT "\"" . cwd . "/Artistic.txt\"-\"\",FT,TA\n";
+print OUT "\"" . cwd . "/perl\"-\"!:\\system\\programs\\perl.exe\"\n";
find(\&filefound, cwd.'/lib');
-print OUT "@\"G:\\lib\\stdlib.sis\",(0x0100002c3)\n"
+# print OUT "@\"G:\\lib\\stdlib.sis\",(0x0100002c3)\n";
+
+open IN, "<Artistic";
+open OUT, ">Artistic.txt";
+while (my $line = <IN>) {
+ chomp $line;
+ print OUT "$line\x13\x10";
+}
+close IN;
+close OUT;
}
sortsv(AvARRAY(keys),
av_len(keys)+1,
+#ifdef USE_LOCALE_NUMERIC
IN_LOCALE ? Perl_sv_cmp_locale : Perl_sv_cmp);
+#else
+ Perl_sv_cmp);
+#endif
}
else {
dSP; ENTER; SAVETMPS; PUSHMARK(sp);
$file{'../../vmesa/errno.h'} = 1;
} elsif ($Config{archname} eq 'epoc') {
# Watch out for cross compiling for EPOC (usually done on linux)
- $file{'/usr/local/epoc/include/libc/sys/errno.h'} = 1;
+ $file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
} elsif ($^O eq 'linux' &&
$Config{gccversion} ne '' # might be using, say, Intel's icc
) {