lib

 view release on metacpan or  search on metacpan

lib_pm.PL  view on Meta::CPAN

use Config;
use File::Basename qw(&basename &dirname);
use File::Spec;
use Cwd;

my $origdir = cwd;
chdir dirname($0);
my $file = basename($0, '.PL');
$file =~ s/_(pm)$/.$1/i;

my $useConfig;
my $Config_archname;
my $Config_version;
my $Config_inc_version_list;

# Expand the variables only if explicitly requested
# or if a previously installed lib.pm does this, too
# because otherwise relocating Perl becomes much harder.

my $expand_config_vars = 0;
if ($ENV{PERL_BUILD_EXPAND_CONFIG_VARS}) {
  $expand_config_vars = 1;
}
elsif (exists $ENV{PERL_BUILD_EXPAND_CONFIG_VARS}) {
  $expand_config_vars = 0;
}
else {
  eval <<'HERE';
  require lib;
  my $lib_file = $INC{"lib.pm"};
  open my $fh, '<', $lib_file
    or die "Could not open file '$lib_file' for reading: $!";
  my $ConfigRegex = qr/(?:use|require)\s+Config(?:\s+|;)/;
  my $found_config = 0;
  while (defined($_ = <$fh>)) {
    # crude heuristics to check that we were using Config
    if (/^\s*$ConfigRegex/ || /^\s*eval.*$ConfigRegex/) {
      $found_config = 1;
      last;
    }
  }
  $expand_config_vars = $found_config ? 0 : 1;
HERE
  $expand_config_vars = 0 if $@;
}

if ($expand_config_vars) {
    $useConfig = '';
    $Config_archname = qq('$Config{archname}');
    $Config_version  = qq('$Config{version}');
    my @Config_inc_version_list =
	reverse split / /, $Config{inc_version_list};
    $Config_inc_version_list =
	@Config_inc_version_list ?
	    qq(qw(@Config_inc_version_list)) : q(());
} else {
    $useConfig = 'use Config;';
    $Config_archname = q($Config{archname});
    $Config_version  = q($Config{version});
    $Config_inc_version_list =
	      q(reverse split / /, $Config{inc_version_list});
}
 
open OUT,">$file" or die "Can't create $file: $!";
 
print "Extracting $file (with variable substitutions)\n";
 
# In this section, perl variables will be expanded during extraction.
# You can use $Config{...} to use Configure variables.
 
print OUT <<"!GROK!THIS!";
package lib;

# THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL.
# ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD.

$useConfig



( run in 0.495 second using v1.01-cache-2.11-cpan-5511b514fd6 )