#!./perl -w
BEGIN { @INC = qw(lib) }
use strict;
+
+BEGIN {
+ use Config;
+ if ($Config{userelocatableinc}) {
+ # This might be a considered a hack. Need to get information about the
+ # configuration from Config.pm *before* Config.pm expands any .../
+ # prefixes.
+ #
+ # So we set $^X to pretend that we're the already installed perl, so
+ # Config.pm doesits ... expansion off that location.
+
+ my $location = $Config{initialinstalllocation};
+ die <<'OS' unless defined $location;
+$Config{initialinstalllocation} is not defined - can't install a relocatable
+perl without this.
+OS
+ $^X = "$location/perl";
+ # And then remove all trace of ever having loaded Config.pm, so that
+ # it will reload with the revised $^X
+ undef %Config::;
+ delete $INC{"Config.pm"};
+ delete $INC{"Config_heavy.pl"};
+ # You never saw us. We weren't here.
+ }
+}
+
use Config;
use Getopt::Long;
use File::Find;
destdir:s notify n help silent S verbose V))
|| die $usage;
die $usage if $opts{help};
+$opts{destdir} //= '';
$opts{man1dir} = "$opts{destdir}$Config{'installman1dir'}"
unless defined($opts{man1dir});
-x "t/perl$Config{exe_ext}" || warn "WARNING: You've never run 'make test'!!!",
" (Installing anyway.)\n";
-$packlist = ExtUtils::Packlist->new("$opts{destdir}/$Config{installarchlib}/.packlist");
+$packlist = ExtUtils::Packlist->new("$opts{destdir}$Config{installarchlib}/.packlist");
# Install the main pod pages.
my $new = "$opts{man1dir}/$what2.$opts{man1ext}";
unlink($new);
link($old, $new);
+ my $xold = $old;
+ $xold =~ s/^\Q$opts{'destdir'}\E// if $opts{'destdir'};
+ my $xnew = $new;
+ $xnew =~ s/^\Q$opts{'destdir'}\E// if $opts{'destdir'};
+ $packlist->{$xnew} = { from => $xold, type => 'link' };
}
}
}
next if $mod =~ m:/t/:; # no pods from test directories
next if ($manpage eq 'Pod/Functions.pm'); #### Used only by pod itself
+ # Skip files without pod docs
+ my $has_pod;
+ if (open T, $mod)
+ {
+ local $_;
+ while (<T>)
+ {
+ ++$has_pod and last if /^=(?:head\d+|item|pod)\b/;
+ }
+
+ close T;
+ }
+
+ unless ($has_pod)
+ {
+ warn "no documentation in $mod\n";
+ next;
+ }
+
# Convert name from File/Basename.pm to File::Basename.3 format,
# if necessary.
$manpage =~ s#\.p(m|od)$##;
push @to_process, [$mod, $tmp, $manpage];
}
- my $parser = Pod::Man->new( section => $manext,
- official=> 1,
- center => 'Perl Programmers Reference Guide'
- );
foreach my $page (@to_process) {
my($pod, $tmp, $manpage) = @$page;
+ my $parser = Pod::Man->new( section => $manext,
+ official=> 1,
+ center => 'Perl Programmers Reference Guide'
+ );
my $xmanpage = $manpage;
$xmanpage =~ s/^\Q$opts{'destdir'}\E// if $opts{'destdir'};
print " $xmanpage\n";
print " Installation complete\n" if $opts{verbose};
exit 0;
-
###############################################################################
# Utility subroutines from installperl