This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: [PATCH README.os390] URL fixes and "Tools and Toys" link
[perl5.git] / configpm
index 2994787..86abd6d 100755 (executable)
--- a/configpm
+++ b/configpm
@@ -60,7 +60,7 @@ $in_v = 0;
 
 while (<>) {
     next if m:^#!/bin/sh:;
-    # Catch CONFIGDOTSH=true and PERL_VERSION=n line from Configure.
+    # Catch PERL_CONFIG_SH=true and PERL_VERSION=n line from Configure.
     s/^(\w+)=(true|\d+)\s*$/$1='$2'\n/;
     my ($k,$v) = ($1,$2);
     # grandfather PATCHLEVEL and SUBVERSION and CONFIG
@@ -71,7 +71,7 @@ while (<>) {
        elsif ($k eq 'PERL_SUBVERSION') {
            push @v_others, "SUBVERSION='$v'\n";
        }
-       elsif ($k eq 'CONFIGDOTSH') {
+       elsif ($k eq 'PERL_CONFIG_SH') {
            push @v_others, "CONFIG='$v'\n";
        }
     }
@@ -130,7 +130,10 @@ sub FETCH {
     my($value, $start, $marker, $quote_type);
 
     $quote_type = "'";
+    # Virtual entries.
     if ($_[1] eq 'byteorder') {
+       # byteorder does exist on its own but we overlay a virtual
+       # dynamically recomputed value. 
         my $t = $Config{ivtype};
         my $s = $Config{ivsize};
         my $f = $t eq 'long' ? 'L!' : $s == 8 ? 'Q': 'I';
@@ -142,6 +145,31 @@ sub FETCH {
         } else {
             $value = '?'x$s;
         }
+    } elsif ($_[1] =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) {
+       # These are purely virtual, they do not exist, but need to
+       # be computed on demand for largefile-incapable extensions.
+       my $key = "${1}_uselargefiles";
+       $value = $Config{$1};
+       my $withlargefiles = $Config{$key};
+       if ($key =~ /^(?:cc|ld)flags_/) {
+           $value =~ s/\Q$withlargefiles\E\b//;
+       } elsif ($key =~ /^libs/) {
+           my @lflibswanted = split(' ', $Config{libswanted_uselargefiles});
+           if (@lflibswanted) {
+               my %lflibswanted;
+               @lflibswanted{@lflibswanted} = ();
+               if ($key =~ /^libs_/) {
+                   my @libs = grep { /^-l(.+)/ &&
+                                      not exists $lflibswanted{$1} }
+                                   split(' ', $Config{libs});
+                   $Config{libs} = join(' ', @libs);
+               } elsif ($key =~ /^libswanted_/) {
+                   my @libswanted = grep { not exists $lflibswanted{$_} }
+                                         split(' ', $Config{libswanted});
+                   $Config{libswanted} = join(' ', @libswanted);
+               }
+           }
+       }
     } else {
        $marker = "$_[1]=";
        # return undef unless (($value) = $config_sh =~ m/^$_[1]='(.*)'\s*$/m);
@@ -206,7 +234,8 @@ sub EXISTS {
     index($config_sh, "\n$_[1]='") != -1 or
     substr($config_sh, 0, length($_[1])+2) eq "$_[1]='" or
     index($config_sh, "\n$_[1]=\"") != -1 or
-    substr($config_sh, 0, length($_[1])+2) eq "$_[1]=\"";
+    substr($config_sh, 0, length($_[1])+2) eq "$_[1]=\"" or
+    $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/;
 }
 
 sub STORE  { die "\%Config::Config is read-only\n" }
@@ -245,6 +274,7 @@ if ($OS2::is_aout) {
         $preconfig{$_} = $v eq 'undef' ? undef : $v;
     }
 }
+$preconfig{d_fork} = undef unless $OS2::can_fork; # Some funny cases can't
 sub TIEHASH { bless {%preconfig} }
 ENDOFSET
 } else {
@@ -389,7 +419,7 @@ EOF
     print CONFIG <<EOF;
 =head2 $c
 
-=over
+=over 4
 
 EOF
     $text = 1;
@@ -445,11 +475,11 @@ require $config_pm;
 import Config;
 
 die "$0: $config_pm not valid"
-       unless $Config{'CONFIGDOTSH'} eq 'true';
+       unless $Config{'PERL_CONFIG_SH'} eq 'true';
 
 die "$0: error processing $config_pm"
        if defined($Config{'an impossible name'})
-       or $Config{'CONFIGDOTSH'} ne 'true' # test cache
+       or $Config{'PERL_CONFIG_SH'} ne 'true' # test cache
        ;
 
 die "$0: error processing $config_pm"