From: Simon Cozens Date: Wed, 16 May 2001 15:57:55 +0000 (+0100) Subject: Re: [PATCH] Abstract "utility" information from installman X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=21dae8a00fcb221ff7938f32cdc0ecd0190ae224;p=p5sagit%2Fp5-mst-13.2.git Re: [PATCH] Abstract "utility" information from installman Message-ID: <20010516155755.A4728@netthink.co.uk> p4raw-id: //depot/perl@10129 --- diff --git a/MANIFEST b/MANIFEST index ed59a6d..52e4367 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1858,6 +1858,7 @@ utf8.h Unicode header utfebcdic.h Unicode on EBCDIC (UTF-EBCDIC, tr16) header util.c Utility routines util.h Dummy header +utils.lst Lists utilities bundled with Perl utils/Makefile Extract the utility scripts utils/c2ph.PL program to translate dbx stabs to perl utils/dprofpp.PL Perl code profile post-processor diff --git a/installman b/installman index 2b6e627..b948c78 100755 --- a/installman +++ b/installman @@ -67,6 +67,7 @@ $opts{verbose} ||= $opts{V} || $opts{notify}; $packlist = ExtUtils::Packlist->new("$Config{installarchlib}/.packlist"); + # Install the main pod pages. runpod2man('pod', $opts{man1dir}, $opts{man1ext}); @@ -74,22 +75,17 @@ runpod2man('pod', $opts{man1dir}, $opts{man1ext}); runpod2man('lib', $opts{man3dir}, $opts{man3ext}); # Install the pods embedded in the installed scripts -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'); +open UTILS, "utils.lst" or die "Can't open 'utils.lst': $!"; +while () { + next if /^#/; + chomp; + $_ = $1 if /#.*pod\s*=\s*(\S+)/; + my ($where, $what) = m|^(.*)/(.*)|; + runpod2man($where, $opts{man1dir}, $opts{man1ext}, $what); + if (($where, $what) = /#.*link\s*=\s*(\S+)/) { + runpod2man($where, $opts{man1dir}, $opts{man1ext}, $what); + } +} sub runpod2man { # @script is scripts names if we are installing manpages embedded diff --git a/installperl b/installperl index 6adcdf2..6bfbdc9 100755 --- a/installperl +++ b/installperl @@ -63,12 +63,20 @@ while (@ARGV) { } $versiononly = 1 if $Config{versiononly} && !defined $versiononly; - -my @scripts = qw(utils/c2ph utils/h2ph utils/h2xs utils/perlbug utils/perldoc - utils/pl2pm utils/splain utils/perlcc utils/dprofpp - x2p/s2p x2p/find2perl - pod/pod2man pod/pod2html pod/pod2latex pod/pod2text - pod/pod2usage pod/podchecker pod/podselect); +my (@scripts, @tolink); +open SCRIPTS, "utils.lst" or die "Can't open utils.lst: $!"; +while () { + next if /^#/; + next if /#\s*pod\s*=/; # Binary programs need separate treatment + chomp; + if (/(\S*)\s*#\s*link\s*=\s*(\S*)/) { + push @scripts, $1; + push @tolink, [$1, $2]; + } else { + push @scripts, $_; + } +} +close SCRIPTS; if ($scr_ext) { @scripts = map { "$_$scr_ext" } @scripts; } @@ -417,11 +425,12 @@ if (! $versiononly) { chmod(0755, "$installscript/$base"); } - # pstruct should be a link to c2ph - script_alias($installscript, 'c2ph', 'pstruct', $scr_ext); - - # psed should be a link to s2p - script_alias($installscript, 's2p', 'psed', $scr_ext); + for (@tolink) { + my ($from, $to)= @$_; + (my $frbase = $from) =~ s#.*/##; + (my $tobase = $to) =~ s#.*/##; + script_alias($installscript, $frbase, $tobase, $scr_ext); + } } # Install pod pages. Where? I guess in $installprivlib/pod diff --git a/utils.lst b/utils.lst new file mode 100644 index 0000000..a3cd5a8 --- /dev/null +++ b/utils.lst @@ -0,0 +1,19 @@ +utils/c2ph # link = utils/pstruct +utils/h2ph +utils/h2xs +utils/perlcc +utils/perldoc +utils/perlbug +utils/pl2pm +utils/splain +utils/dproffpp +x2p/s2p # link = xsp/psed +x2p/findperl +x2p/a2p # pod = x2p/a2p.pod +pod/pod2man +pod/pod2html +pod/pod2text +pod/pod2usage +pod/podchecker +pod/podselect +lib/ExtUtils/xsubpp