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
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";
}
}
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';
} 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);
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" }
sub config_re {
my $re = shift;
- my @matches = ($config_sh =~ /^$re=.*\n/mg);
+ my @matches = grep /^$re=/, split /^/, $config_sh;
@matches ? (print @matches) : print "$re: not found\n";
}
$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 {
print CONFIG <<EOF;
=head2 $c
-=over
+=over 4
EOF
$text = 1;
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"