This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Handle subnormals of x86 80-bit
[perl5.git] / symbian / config.pl
index 52b6e71..e82c365 100644 (file)
@@ -9,9 +9,9 @@ use lib "symbian";
 print "Configuring...\n";
 print "Configuring with: Perl version $] ($^X)\n";
 
-do "sanity.pl";
+do "sanity.pl" or die $@;
 
-my %VERSION = %{ do "version.pl" };
+my %VERSION = %{ do "version.pl" or die $@ };
 
 printf "Configuring for:  Perl version $VERSION{REVISION}.%03d%03d\n",
   $VERSION{VERSION}, $VERSION{SUBVERSION};
@@ -20,8 +20,8 @@ my $VERSION = "$VERSION{REVISION}$VERSION{VERSION}$VERSION{SUBVERSION}";
 my $R_V_SV  = "$VERSION{REVISION}.$VERSION{VERSION}.$VERSION{SUBVERSION}";
 
 my ($SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, $SDK_VERSION) =
-    @{ do "sdk.pl" };
-my %PORT = %{ do "port.pl" };
+    @{ do "sdk.pl" or die $@ };
+my %PORT = %{ do "port.pl" or die $@ };
 
 if ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') {
     ( $SYMBIAN_VERSION, $SDK_VERSION ) = qw(6.1 1.2);
@@ -30,6 +30,9 @@ if ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') {
 my $WIN = $ENV{WIN} ; # 'wins', 'winscw' (from sdk.pl)
 my $ARM = 'thumb';    # 'thumb', 'armv5'
 my $S60SDK = $ENV{S60SDK}; # qw(1.2 2.0 2.1 2.6) (from sdk.pl)
+    if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) {
+        $ARM = 'armv5';    # 'thumb', 'armv5' # Configuration for S60 5th Edition SDK v1.0
+    }
 my $S80SDK = $ENV{S80SDK}; # qw(2.0) (from sdk.pl)
 my $S90SDK = $ENV{S90SDK}; # qw(1.1) (from sdk.pl)
 my $UIQSDK = $ENV{UIQSDK}; # qw(2.0 2.1) (from sdk.pl)
@@ -48,7 +51,7 @@ die "$0: does not know which Windows compiler to use\n"
 
 print "Symbian $SYMBIAN_VERSION SDK $SDK_VARIANT $SDK_VERSION ($WIN) installed at $SYMBIAN_ROOT\n";
 
-my $CWD = do "cwd.pl";
+my $CWD = do "cwd.pl" or die $@;
 print "Build directory $CWD\n";
 
 die "$0: '+' in cwd does not work with Series 60 SDK 1.2\n"
@@ -71,16 +74,26 @@ sub create_mmp {
         print $fh <<__EOF__;
 TARGET         $target.$type
 TARGETTYPE     $type
-$targetpath
-EPOCHEAPSIZE   1024 8388608
-EPOCSTACKSIZE  65536
+__EOF__
+        if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) {
+            print $fh "UID\t0 0xEA3E9181\n" if $miniperl;
+            print $fh "UID\t0 0xED04DD86\n" if $perl;
+            print $fh "UID\t0x1000008d 0xE8667302\n" unless $miniperl || $perl; 
+            print $fh "CAPABILITY\tNONE\n";
+        } else {
+            print $targetpath; 
+            print $fh "EPOCHEAPSIZE\t1024 8388608"; 
+            print $fh "EPOCSTACKSIZE\t65536"; 
+        }
+        print $fh <<__EOF__;
 EXPORTUNFROZEN
 SRCDBG
 __EOF__
         if ($SDK_VARIANT eq 'S60') {
-           print $fh "MACRO\t__SERIES60__\n";
-           print $fh "MACRO\t__SERIES60_1X__\n" if $S60SDK =~ /^1\./;
-           print $fh "MACRO\t__SERIES60_2X__\n" if $S60SDK =~ /^2\./;
+            print $fh "MACRO\t__SERIES60__\n";
+            print $fh "MACRO\t__SERIES60_1X__\n" if $S60SDK =~ /^1\./;
+            print $fh "MACRO\t__SERIES60_2X__\n" if $S60SDK =~ /^2\./;
+            print $fh "MACRO\t__SERIES60_3X__\n" if $S60SDK =~ /^5\./; 
        }
         if ($SDK_VARIANT eq 'S80') {
            print $fh "MACRO\t__SERIES80__\n";
@@ -99,7 +112,6 @@ __EOF__
         @c = map  { glob } qw(*.c);       # Find the .c files.
         @c = map  { lc } @c;              # Lowercase the names.
         @c = grep { !/malloc\.c/ } @c;    # Use the system malloc.
-        @c = grep { !/madly\.c/ } @c;     # mad is undef.
         @c = grep { !/main\.c/ } @c;      # main.c must be explicit.
         push @c, map { lc } @x;
         @c = map { s:^\.\./::; $_ } @c;    # Remove the leading ../
@@ -180,9 +192,15 @@ __EOF__
             print $fh <<__EOF__;
 MACRO          PERL_GLOBAL_STRUCT
 MACRO          PERL_GLOBAL_STRUCT_PRIVATE
-RESOURCE       symbian\\PerlUi.rss
 __EOF__
-        }
+    }
+        unless ($miniperl || $perl ) {
+            if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) {
+                print $fh "START RESOURCE\tsymbian\\PerlUi.rss\nEND\n";
+            } else {
+                print $fh "RESOURCE\tsymbian\\PerlUi.rss";
+            }
+       }
         close $fh;
     }
     else {
@@ -717,7 +735,7 @@ perl${VERSION}lib.sis perllib.sis:  \$(PM)
 perl${VERSION}ext.sis perlext.sis:     perldll_arm buildext_sis
        perl symbian\\makesis.pl perl${VERSION}ext
 
-EXT =  Compress::Raw::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
+EXT =  Compress::Raw::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 attributes
 
 buildext: perldll symbian\\xsbuild.pl lib\\Config.pm
        perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) \$(EXT)