This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
handy.h: Add an enum typedef
[perl5.git] / win32 / config_sh.PL
index 4d83369..d866f76 100644 (file)
@@ -103,24 +103,93 @@ if (exists $opt{cc}) {
 }
 
 $opt{cf_by} = $ENV{USERNAME} unless $opt{cf_by};
-$opt{cf_email} = $opt{cf_by} . '@' . (gethostbyname('localhost'))[0]
-       unless $opt{cf_email};
+if (!$opt{cf_email}) {
+    my $computername = eval{(gethostbyname('localhost'))[0]};
+# gethostbyname might not be implemented in miniperl
+    $computername = $ENV{COMPUTERNAME} if $@;    
+    $opt{cf_email} = $opt{cf_by} . '@' . $computername;
+}
 $opt{usemymalloc} = 'y' if $opt{d_mymalloc} eq 'define';
 
 $opt{libpth} = mungepath($opt{libpth}) if exists $opt{libpth};
 $opt{incpath} = mungepath($opt{incpath}) if exists $opt{incpath};
 
-# change the lseeksize and lseektype from their canned default values (which
-# are set-up for a non-uselargefiles build) if we are building with
-# uselargefiles.
+my($int64, $int64f);
+if ($opt{cc} eq 'cl') {
+    $int64  = '__int64';
+    $int64f = 'I64';
+}
+elsif ($opt{cc} =~ /\bgcc\b/) {
+    $int64  = 'long long';
+    $int64f = 'll';
+}
+
+# set large files options
 if ($opt{uselargefiles} eq 'define') {
     $opt{lseeksize} = 8;
-    if ($opt{cc} eq 'cl') {
-       $opt{lseektype} = '__int64';
-    }
-    elsif ($opt{cc} =~ /\bgcc\b/) {
-       $opt{lseektype} = 'long long';
-    }
+    $opt{lseektype} = $int64;
+}
+else {
+    $opt{lseeksize} = 4;
+    $opt{lseektype} = 'long';
+}
+
+# set 64-bit options
+if ($opt{WIN64} eq 'define') {
+    $opt{d_atoll} = 'define';
+    $opt{d_strtoll} = 'define';
+    $opt{d_strtoull} = 'define';
+    $opt{ptrsize} = 8;
+    $opt{sizesize} = 8;
+    $opt{ssizetype} = $int64;
+    $opt{st_ino_size} = 8;
+}
+else {
+    $opt{d_atoll} = 'undef';
+    $opt{d_strtoll} = 'undef';
+    $opt{d_strtoull} = 'undef';
+    $opt{ptrsize} = 4;
+    $opt{sizesize} = 4;
+    $opt{ssizetype} = 'int';
+    $opt{st_ino_size} = 4;
+}
+if ($opt{use64bitint} eq 'define') {
+    $opt{d_nv_preserves_uv} = 'undef';
+    $opt{ivdformat} = qq{"${int64f}d"};
+    $opt{ivsize} = 8;
+    $opt{ivtype} = $int64;
+    $opt{nv_preserves_uv_bits} = 53;
+    $opt{sPRIXU64} = qq{"${int64f}X"};
+    $opt{sPRId64} = qq{"${int64f}d"};
+    $opt{sPRIi64} = qq{"${int64f}i"};
+    $opt{sPRIo64} = qq{"${int64f}o"};
+    $opt{sPRIu64} = qq{"${int64f}u"};
+    $opt{sPRIx64} = qq{"${int64f}x"};
+    $opt{uvXUformat} = qq{"${int64f}X"};
+    $opt{uvoformat} = qq{"${int64f}o"};
+    $opt{uvsize} = 8;
+    $opt{uvtype} = qq{unsigned $int64};
+    $opt{uvuformat} = qq{"${int64f}u"};
+    $opt{uvxformat} = qq{"${int64f}x"};
+}
+else {
+    $opt{d_nv_preserves_uv} = 'define';
+    $opt{ivdformat} = '"ld"';
+    $opt{ivsize} = 4;
+    $opt{ivtype} = 'long';
+    $opt{nv_preserves_uv_bits} = 32;
+    $opt{sPRIXU64} = '"lX"';
+    $opt{sPRId64} = '"ld"';
+    $opt{sPRIi64} = '"li"';
+    $opt{sPRIo64} = '"lo"';
+    $opt{sPRIu64} = '"lu"';
+    $opt{sPRIx64} = '"lx"';
+    $opt{uvXUformat} = '"lX"';
+    $opt{uvoformat} = '"lo"';
+    $opt{uvsize} = 4;
+    $opt{uvtype} = 'unsigned long';
+    $opt{uvuformat} = '"lu"';
+    $opt{uvxformat} = '"lx"';
 }
 
 # change the s{GM|LOCAL}TIME_{min|max} for VS2005 (aka VC 8) and