-runpod2man('utils', $opts{man1dir}, $opts{man1ext}, 'c2ph', 'h2ph', 'h2xs',
- 'perlcc', 'perldoc', 'perlbug', 'pl2pm', 'splain', 'dprofpp');
-runpod2man('x2p', $opts{man1dir}, $opts{man1ext}, 's2p', 'a2p.pod',
- 'find2perl');
-runpod2man('pod', $opts{man1dir}, $opts{man1ext}, 'pod2man', 'pod2html',
- 'pod2text', 'pod2usage', 'podchecker', 'podselect');
-
-# It would probably be better to have this page linked
-# to the c2ph man page. Or, this one could say ".so man1/c2ph.1",
-# but then it would have to pay attention to $opts{man1dir} and $opts{man1ext}.
-runpod2man('utils', $opts{man1dir}, $opts{man1ext}, 'pstruct');
-
-# Similar concern as with pstruct/c2ph above: psed is s2p by other name.
-runpod2man('x2p', $opts{man1dir}, $opts{man1ext}, 'psed');
-
-runpod2man('lib/ExtUtils', $opts{man1dir}, $opts{man1ext}, 'xsubpp');
-
-sub runpod2man {
- # @script is scripts names if we are installing manpages embedded
- # in scripts, () otherwise
- my($poddir, $mandir, $manext, @script) = @_;
-
- my($downdir); # can't just use .. when installing xsubpp manpage
-
- $downdir = $poddir;
- $downdir =~ s:[^/]+:..:g;
- my($builddir) = Cwd::getcwd();
-
- if ($mandir eq ' ' or $mandir eq '') {
- if (@script) {
- warn "Skipping installation of $poddir/$_ man page.\n"
- foreach @script;
- } else {
- warn "Skipping installation of $poddir man pages.\n";
+my $has_man1dir = $opts{man1dir} ne '' && -d $opts{man1dir};
+my $fh = open_or_die('utils.lst');
+while (<$fh>) {
+ next if /^#/;
+ chomp;
+ my ($path, $leaf) = m|^(\S*/(\S+))|;
+ # Have we already installed the manpage for this? (eg perldoc, a2p)
+ next if $man1{$leaf};
+ pod2man({$leaf, $path}, $opts{man1dir}, $opts{man1ext});
+ if ($has_man1dir) {
+ if (my ($link) = m|#.*link\s*=\s*\S+/(\S+)|) {
+ my $old = "$opts{man1dir}/$leaf.$opts{man1ext}";
+ my $new = "$opts{man1dir}/$link.$opts{man1ext}";
+ unlink($new);
+ link($old, $new);
+ $old =~ s/^\Q$opts{destdir}\E// if $opts{destdir};
+ $new =~ s/^\Q$opts{destdir}\E// if $opts{destdir};
+ $packlist->{$new} = { from => $old, type => 'link' };