1b8851fccSafresh1#!/usr/local/bin/perl 2b8851fccSafresh1 3b8851fccSafresh1use Config; 4b8851fccSafresh1use File::Basename qw(&basename &dirname); 5b8851fccSafresh1use Cwd; 6b8851fccSafresh1 7b8851fccSafresh1# List explicitly here the variables you want Configure to 8b8851fccSafresh1# generate. Metaconfig only looks for shell variables, so you 9b8851fccSafresh1# have to mention them as if they were shell variables, not 10b8851fccSafresh1# %Config entries. Thus you write 11b8851fccSafresh1# $startperl 12b8851fccSafresh1# to ensure Configure will look for $Config{startperl}. 13b8851fccSafresh1 14b8851fccSafresh1# This forces PL files to create target in same directory as PL file. 15b8851fccSafresh1# This is so that make depend always knows where to find PL derivatives. 16b8851fccSafresh1my $origdir = cwd; 17b8851fccSafresh1chdir dirname($0); 18b8851fccSafresh1my $file = basename($0, '.PL'); 19b8851fccSafresh1$file .= '.com' if $^O eq 'VMS'; 20b8851fccSafresh1 215759b3d2Safresh1open OUT, '>', $file or die "Can't create $file: $!"; 22b8851fccSafresh1 23b8851fccSafresh1print "Extracting $file (with variable substitutions)\n"; 24b8851fccSafresh1 25b8851fccSafresh1# In this section, perl variables will be expanded during extraction. 26b8851fccSafresh1# You can use $Config{...} to use Configure variables. 27b8851fccSafresh1 28b8851fccSafresh1print OUT <<"!GROK!THIS!"; 29b8851fccSafresh1$Config{startperl} 30b8851fccSafresh1 eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}' 31*eac174f2Safresh1 if 0; # ^ Run only under a shell 32b8851fccSafresh1!GROK!THIS! 33b8851fccSafresh1 34b8851fccSafresh1use File::Spec; 35b8851fccSafresh1 36b8851fccSafresh1my $enc2xs = File::Spec->catfile(File::Spec->catdir(File::Spec->updir, "cpan", "Encode", "bin"), "encguess"); 37b8851fccSafresh1 385759b3d2Safresh1if (open(ENC2XS, '<', $enc2xs)) { 39b8851fccSafresh1 print OUT <ENC2XS>; 40b8851fccSafresh1 close ENC2XS; 41b8851fccSafresh1} else { 42b8851fccSafresh1 die "$0: cannot find '$enc2xs'\n"; 43b8851fccSafresh1} 44b8851fccSafresh1 45b8851fccSafresh1close OUT or die "Can't close $file: $!"; 46b8851fccSafresh1chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; 47b8851fccSafresh1exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; 48b8851fccSafresh1chdir $origdir; 49