This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pod/buildtoc now generates pod/roffitall
authorNicholas Clark <nick@ccl4.org>
Sun, 27 Nov 2011 22:02:54 +0000 (23:02 +0100)
committerNicholas Clark <nick@ccl4.org>
Mon, 28 Nov 2011 11:44:04 +0000 (12:44 +0100)
roffitall remains a shell script, identical apart from a dynamically
generated list of man pages (and removal of the comment from 2000 that
this should be done).

MANIFEST
Makefile.SH
pod/.gitignore
pod/buildtoc
pod/perldelta.pod
pod/perltodo.pod
pod/roffitall [deleted file]
vms/descrip_mms.template
win32/Makefile
win32/makefile.mk

index 95ab0cf..bda0e07 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4673,7 +4673,6 @@ pod/perlunitut.pod                Perl Unicode tutorial
 pod/perlutil.pod               utilities packaged with the Perl distribution
 pod/perlvar.pod                        Perl predefined variables
 pod/perlvms.pod                        Perl notes for VMS
-pod/roffitall                  troff the whole man page set
 pod/rofftoc                    Generate a table of contents in troff format
 pod/splitman                   Splits perlfunc into multiple man pages
 pod/splitpod                   Splits perlfunc into multiple pod pages
index 63d6f26..37acd12 100755 (executable)
@@ -1251,7 +1251,7 @@ _mopup:
        -rmdir .depending
        -@test -f extra.pods && rm -f `cat extra.pods`
        -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
-       -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o
+       -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o pod/roffitall
        -rm -f perl.export perl.dll perl.libexp perl.map perl.def
        -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
        -rm -f perl.third lib*.so.perl.third perl.3log t/perl.third t/perl.3log
index 83ea9a0..d7e4cc5 100644 (file)
@@ -56,6 +56,7 @@
 /podchecker.bat
 /podselect
 /podselect.bat
+/roffitall
 
 # generated
 /perl5156delta.pod
index b3a13c4..4024d07 100644 (file)
@@ -77,6 +77,7 @@ for (@modpods) {
 # further still, and used *only* to create pod/perltoc.pod by printing direct
 
 my $OUT;
+my $roffitall;
 
 ($_= <<"EOPOD2B") =~ s/^\t//gm and $OUT .= $_;
 
@@ -100,6 +101,7 @@ EOPOD2B
 
 # All the things in the master list that happen to be pod filenames
 foreach (grep {defined $_ && @$_ == 5 && !$_->[0]{toc_omit}} @{$state->{master}}) {
+    $roffitall .= "    \$mandir/$_->[4].1 \\\n";
     podset($_->[4], $_->[2], $_->[1] ne $_->[4]);
 }
 
@@ -113,7 +115,8 @@ foreach my $type (qw(PRAGMA MODULE)) {
 EOPOD2B
 
     foreach my $name (sort keys %{$Found{$type}}) {
-       podset($name, $Found{$type}{$name});
+       $roffitall .= "    \$libdir/$name.3 \\\n"
+           if podset($name, $Found{$type}{$name});
     }
 }
 
@@ -152,6 +155,70 @@ $OUT =~ s/([^\n]+)/wrap('', '', $1)/ge;
 
 write_or_die('pod/perltoc.pod', $OUT);
 
+write_or_die('pod/roffitall', <<'EOH' . $roffitall . <<'EOT');
+#!/bin/sh
+#
+# Usage: roffitall [-nroff|-psroff|-groff]
+#
+# Authors: Tom Christiansen, Raphael Manfredi
+
+me=roffitall
+tmp=.
+
+if test -f ../config.sh; then
+       . ../config.sh
+fi
+
+mandir=$installman1dir
+libdir=$installman3dir
+
+test -d $mandir || mandir=/usr/new/man/man1
+test -d $libdir || libdir=/usr/new/man/man3
+
+case "$1" in
+-nroff) cmd="nroff -man"; ext='txt';;
+-psroff) cmd="psroff -t"; ext='ps';;
+-groff) cmd="groff -man"; ext='ps';;
+*)
+       echo "Usage: roffitall [-nroff|-psroff|-groff]" >&2
+       exit 1
+       ;;
+esac
+
+toroff=`
+       echo            \
+EOH
+    | perl -ne 'map { -r && print "$_ " } split'`
+
+    # Bypass internal shell buffer limit -- can't use case
+    if perl -e '$a = shift; exit($a =~ m|/|)' $toroff; then
+       echo "$me: empty file list -- did you run install?" >&2
+       exit 1
+    fi
+
+    #psroff -t -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.ps 2>$tmp/PerlTOC.raw
+    #nroff -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.txt 2>$tmp/PerlTOC.nr.raw
+
+    # First, create the raw data
+    run="$cmd -rC1 -rD1 -rF1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
+    echo "$me: running $run"
+    eval $run $toroff
+
+    #Now create the TOC
+    echo "$me: parsing TOC"
+    perl rofftoc $tmp/PerlTOC.$ext.raw > $tmp/PerlTOC.tmp.man
+    run="$cmd $tmp/PerlTOC.tmp.man >$tmp/PerlTOC.$ext"
+    echo "$me: running $run"
+    eval $run
+
+    # Finally, recreate the Doc, without the blank page 0
+    run="$cmd -rC1 -rD1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
+    echo "$me: running $run"
+    eval $run $toroff
+    rm -f $tmp/PerlTOC.tmp.man $tmp/PerlTOC.$ext.raw
+    echo "$me: leaving you with $tmp/PerlDoc.$ext and $tmp/PerlTOC.$ext"
+EOT
+
 exit(0);
 
 # Below are all the auxiliary routines for generating perltoc.pod
@@ -221,6 +288,7 @@ sub podset {
        }
        $OUT .= $_;
     }
+    return 1;
 }
 
 sub unhead1 {
@@ -245,18 +313,3 @@ sub unitem {
     }
     $initem = 0;
 }
-
-# Code added in commit 416302502f485afa, but never used.
-# Probably roffitall should become something that buildtoc generates, instead
-# of something that we ship in the distribution.
-
-sub generate_roffitall {
-  (map ({"\t\$maindir/$_.1\t\\"}sort keys %{$state->{pods}}),
-   "\t\t\\",
-   map ({"\t\$maindir/$_.1\t\\"}sort keys %{$state->{aux}}),
-   "\t\t\\",
-   map ({"\t\$libdir/$_.3\t\\"}sort keys %{$Found{PRAGMA}}),
-   "\t\t\\",
-   map ({"\t\$libdir/$_.3\t\\"}sort keys %{$Found{MODULE}}),
-  )
-}
index 0095b90..8f69765 100644 (file)
@@ -270,7 +270,9 @@ L</Platform Support> section, instead.
 
 =item *
 
-XXX
+F<pod/roffitall> is now build by F<pod/buildtoc>, instead of being shipped
+with the distribution. Its list of manpages is now generated (and therefore
+current). See also RT #103202 for an unresolved related issue.
 
 =back
 
index e54a565..bd1e971 100644 (file)
@@ -322,10 +322,6 @@ cross-compilation/execution environments the HOST and the TARGET do
 not see the same filesystem(s), the $Config{run} may need to do some
 file/directory copying back and forth.
 
-=head2 roffitall
-
-Make F<pod/roffitall> be updated by F<pod/buildtoc>.
-
 =head2 Split "linker" from "compiler"
 
 Right now, Configure probes for two commands, and sets two variables:
diff --git a/pod/roffitall b/pod/roffitall
deleted file mode 100644 (file)
index 22eae28..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-#!/bin/sh
-#
-# Usage: roffitall [-nroff|-psroff|-groff]
-#
-# Authors: Tom Christiansen, Raphael Manfredi
-
-me=roffitall
-tmp=.
-
-if test -f ../config.sh; then
-       . ../config.sh
-fi
-
-mandir=$installman1dir
-libdir=$installman3dir
-
-test -d $mandir || mandir=/usr/new/man/man1
-test -d $libdir || libdir=/usr/new/man/man3
-
-case "$1" in
--nroff) cmd="nroff -man"; ext='txt';;
--psroff) cmd="psroff -t"; ext='ps';;
--groff) cmd="groff -man"; ext='ps';;
-*)
-       echo "Usage: roffitall [-nroff|-psroff|-groff]" >&2
-       exit 1
-       ;;
-esac
-
-# NEEDS TO BE BUILT BASED ON Makefile (or Makefile.SH, should such happen)
-toroff=`
-       echo            \
-       $mandir/perl.1  \
-       $mandir/perl5004delta.1 \
-       $mandir/perl5005delta.1 \
-       $mandir/perl56delta.1   \
-       $mandir/perlapi.1       \
-       $mandir/perlapio.1      \
-       $mandir/perlbook.1      \
-       $mandir/perlcall.1      \
-       $mandir/perlcompile.1   \
-       $mandir/perldata.1      \
-       $mandir/perldbmfilter.1 \
-       $mandir/perldebguts.1   \
-       $mandir/perldebug.1     \
-       $mandir/perldelta.1     \
-       $mandir/perldiag.1      \
-       $mandir/perldsc.1       \
-       $mandir/perlembed.1     \
-       $mandir/perlfaq.1       \
-       $mandir/perlfaq1.1      \
-       $mandir/perlfaq2.1      \
-       $mandir/perlfaq3.1      \
-       $mandir/perlfaq4.1      \
-       $mandir/perlfaq5.1      \
-       $mandir/perlfaq6.1      \
-       $mandir/perlfaq7.1      \
-       $mandir/perlfaq8.1      \
-       $mandir/perlfaq9.1      \
-       $mandir/perlfilter.1    \
-       $mandir/perlfork.1      \
-       $mandir/perlform.1      \
-       $mandir/perlfunc.1      \
-       $mandir/perlguts.1      \
-       $mandir/perlhack.1      \
-       $mandir/perlhist.1      \
-       $mandir/perlintern.1    \
-       $mandir/perlipc.1       \
-       $mandir/perllexwarn.1   \
-       $mandir/perllocale.1    \
-       $mandir/perllol.1       \
-       $mandir/perlmod.1       \
-       $mandir/perlmodinstall.1        \
-       $mandir/perlmodlib.1    \
-       $mandir/perlnewmod.1    \
-       $mandir/perlnumber.1    \
-       $mandir/perlobj.1       \
-       $mandir/perlop.1        \
-       $mandir/perlopentut.1   \
-       $mandir/perlpod.1       \
-       $mandir/perlport.1      \
-       $mandir/perlre.1        \
-       $mandir/perlref.1       \
-       $mandir/perlreftut.1    \
-       $mandir/perlrequick.1   \
-       $mandir/perlretut.1     \
-       $mandir/perlrun.1       \
-       $mandir/perlsec.1       \
-       $mandir/perlstyle.1     \
-       $mandir/perlsub.1       \
-       $mandir/perlsyn.1       \
-       $mandir/perlthrtut.1    \
-       $mandir/perltie.1       \
-       $mandir/perltoc.1       \
-       $mandir/perltodo.1      \
-       $mandir/perltrap.1      \
-       $mandir/perlunicode.1   \
-       $mandir/perlutil.1      \
-       $mandir/perlvar.1       \
-       $mandir/perlxs.1        \
-       $mandir/perlxstut.1     \
-       \
-    $mandir/a2p.1      \
-    $mandir/c2ph.1     \
-    $mandir/h2ph.1     \
-    $mandir/h2xs.1     \
-    $mandir/perlbug.1  \
-    $mandir/perldoc.1  \
-    $mandir/pl2pm.1    \
-    $mandir/pod2html.1 \
-    $mandir/pod2man.1  \
-    $mandir/s2p.1      \
-    $mandir/splain.1   \
-    $mandir/xsubpp.1   \
-                       \
-    $libdir/autouse.3  \
-    $libdir/base.3     \
-    $libdir/blib.3     \
-    $libdir/constant.3 \
-    $libdir/diagnostics.3      \
-    $libdir/fields.3   \
-    $libdir/filetest.3 \
-    $libdir/integer.3  \
-    $libdir/less.3     \
-    $libdir/lib.3      \
-    $libdir/locale.3   \
-    $libdir/ops.3      \
-    $libdir/overload.3 \
-    $libdir/re.3       \
-    $libdir/sigtrap.3  \
-    $libdir/strict.3   \
-    $libdir/subs.3     \
-    $libdir/vars.3     \
-       \
-    $libdir/AnyDBM_File.3      \
-    $libdir/AutoLoader.3       \
-    $libdir/AutoSplit.3        \
-    $libdir/B.3        \
-    $libdir/B::Asmdata.3       \
-    $libdir/B::Assembler.3     \
-    $libdir/B::Bblock.3        \
-    $libdir/B::Bytecode.3      \
-    $libdir/B::C.3     \
-    $libdir/B::CC.3    \
-    $libdir/B::Debug.3 \
-    $libdir/B::Deparse.3       \
-    $libdir/B::Disassembler.3  \
-    $libdir/B::Lint.3  \
-    $libdir/B::Showlex.3       \
-    $libdir/B::Stackobj.3      \
-    $libdir/B::Terse.3 \
-    $libdir/B::Xref.3  \
-    $libdir/Benchmark.3        \
-    $libdir/Carp.3     \
-    $libdir/CGI.3      \
-    $libdir/CGI::Apache.3      \
-    $libdir/CGI::Carp.3        \
-    $libdir/CGI::Cookie.3      \
-    $libdir/CGI::Fast.3        \
-    $libdir/CGI::Push.3        \
-    $libdir/CGI::Switch.3      \
-    $libdir/Class::Struct.3    \
-    $libdir/Config.3   \
-    $libdir/CPAN.3     \
-    $libdir/CPAN::FirstTime.3  \
-    $libdir/CPAN::Nox.3        \
-    $libdir/Cwd.3      \
-    $libdir/Data::Dumper.3     \
-    $libdir/DB_File.3  \
-    $libdir/Devel::SelfStubber.3       \
-    $libdir/DirHandle.3        \
-    $libdir/DynaLoader.3       \
-    $libdir/Dumpvalue.3        \
-    $libdir/English.3  \
-    $libdir/Env.3      \
-    $libdir/Errno.3    \
-    $libdir/Exporter.3 \
-    $libdir/ExtUtils::Command.3        \
-    $libdir/ExtUtils::Embed.3  \
-    $libdir/ExtUtils::Install.3        \
-    $libdir/ExtUtils::Installed.3      \
-    $libdir/ExtUtils::Liblist.3        \
-    $libdir/ExtUtils::MakeMaker.3      \
-    $libdir/ExtUtils::Manifest.3       \
-    $libdir/ExtUtils::Miniperl.3       \
-    $libdir/ExtUtils::Mkbootstrap.3    \
-    $libdir/ExtUtils::Mksymlists.3     \
-    $libdir/ExtUtils::MM_OS2.3 \
-    $libdir/ExtUtils::MM_Unix.3        \
-    $libdir/ExtUtils::MM_VMS.3 \
-    $libdir/ExtUtils::MM_Win32.3       \
-    $libdir/ExtUtils::Packlist.3       \
-    $libdir/ExtUtils::testlib.3        \
-    $libdir/Fatal.3    \
-    $libdir/Fcntl.3    \
-    $libdir/File::Basename.3   \
-    $libdir/File::CheckTree.3  \
-    $libdir/File::Compare.3    \
-    $libdir/File::Copy.3       \
-    $libdir/File::DosGlob.3    \
-    $libdir/File::Find.3       \
-    $libdir/File::Path.3       \
-    $libdir/File::Spec.3       \
-    $libdir/File::Spec::Mac.3  \
-    $libdir/File::Spec::OS2.3  \
-    $libdir/File::Spec::Unix.3 \
-    $libdir/File::Spec::VMS.3  \
-    $libdir/File::Spec::Win32.3        \
-    $libdir/File::stat.3       \
-    $libdir/FileCache.3        \
-    $libdir/FileHandle.3       \
-    $libdir/FindBin.3  \
-    $libdir/GDBM_File.3        \
-    $libdir/Getopt::Long.3     \
-    $libdir/Getopt::Std.3      \
-    $libdir/I18N::Collate.3    \
-    $libdir/IO.3 \
-    $libdir/IO::File.3 \
-    $libdir/IO::Handle.3 \
-    $libdir/IO::Pipe.3 \
-    $libdir/IO::Seekable.3 \
-    $libdir/IO::Select.3 \
-    $libdir/IO::Socket.3 \
-    $libdir/IPC::Msg.3 \
-    $libdir/IPC::Open2.3       \
-    $libdir/IPC::Open3.3       \
-    $libdir/IPC::Semaphore.3   \
-    $libdir/IPC::SysV.3        \
-    $libdir/Math::BigFloat.3   \
-    $libdir/Math::BigInt.3     \
-    $libdir/Math::Complex.3    \
-    $libdir/Math::Trig.3       \
-    $libdir/NDBM_File.3        \
-    $libdir/Net::hostent.3     \
-    $libdir/Net::netent.3      \
-    $libdir/Net::Ping.3        \
-    $libdir/Net::protoent.3    \
-    $libdir/Net::servent.3     \
-    $libdir/O.3        \
-    $libdir/Opcode.3   \
-    $libdir/Pod::Html.3        \
-    $libdir/Pod::Text.3        \
-    $libdir/POSIX.3    \
-    $libdir/Safe.3     \
-    $libdir/SDBM_File.3        \
-    $libdir/Search::Dict.3     \
-    $libdir/SelectSaver.3      \
-    $libdir/SelfLoader.3       \
-    $libdir/Shell.3    \
-    $libdir/Socket.3   \
-    $libdir/Symbol.3   \
-    $libdir/Sys::Hostname.3    \
-    $libdir/Sys::Syslog.3      \
-    $libdir/Term::Cap.3        \
-    $libdir/Term::Complete.3   \
-    $libdir/Term::ReadLine.3   \
-    $libdir/Test.3     \
-    $libdir/Test::Harness.3    \
-    $libdir/Text::Abbrev.3     \
-    $libdir/Text::ParseWords.3 \
-    $libdir/Text::Soundex.3    \
-    $libdir/Text::Tabs.3       \
-    $libdir/Text::Wrap.3       \
-    $libdir/Tie::Array.3       \
-    $libdir/Tie::Handle.3      \
-    $libdir/Tie::Hash.3        \
-    $libdir/Tie::RefHash.3     \
-    $libdir/Tie::Scalar.3      \
-    $libdir/Tie::SubstrHash.3  \
-    $libdir/Time::gmtime.3     \
-    $libdir/Time::Local.3      \
-    $libdir/Time::localtime.3  \
-    $libdir/Time::tm.3         \
-    $libdir/UNIVERSAL.3                \
-    $libdir/User::grent.3              \
-    $libdir/User::pwent.3 | \
-    perl -ne 'map { -r && print "$_ " } split'`
-
-    # Bypass internal shell buffer limit -- can't use case
-    if perl -e '$a = shift; exit($a =~ m|/|)' $toroff; then
-       echo "$me: empty file list -- did you run install?" >&2
-       exit 1
-    fi
-
-    #psroff -t -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.ps 2>$tmp/PerlTOC.raw
-    #nroff -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.txt 2>$tmp/PerlTOC.nr.raw
-
-    # First, create the raw data
-    run="$cmd -rC1 -rD1 -rF1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
-    echo "$me: running $run"
-    eval $run $toroff
-
-    #Now create the TOC
-    echo "$me: parsing TOC"
-    perl rofftoc $tmp/PerlTOC.$ext.raw > $tmp/PerlTOC.tmp.man
-    run="$cmd $tmp/PerlTOC.tmp.man >$tmp/PerlTOC.$ext"
-    echo "$me: running $run"
-    eval $run
-
-    # Finally, recreate the Doc, without the blank page 0
-    run="$cmd -rC1 -rD1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
-    echo "$me: running $run"
-    eval $run $toroff
-    rm -f $tmp/PerlTOC.tmp.man $tmp/PerlTOC.$ext.raw
-    echo "$me: leaving you with $tmp/PerlDoc.$ext and $tmp/PerlTOC.$ext"
-
index 1d81503..59521fb 100644 (file)
@@ -1034,6 +1034,7 @@ clean : tidy cleantest
        - If F$Search("[.vms.ext...]*.C").nes."" Then Delete/NoConfirm/Log [.vms.ext...]*.C;*
        - If F$Search("[.vms.ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.vms.ext...]*$(O);*
        - If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;*
+       - If F$Search("[.pod]roffitall").nes."" Then Delete/NoConfirm/Log [.pod]roffitall;*
        - If F$Search("$(PERLDELTA_CURRENT)").nes."" Then Delete/NoConfirm/Log $(PERLDELTA_CURRENT);*
        - If F$Search("[.pod]perlapi.pod").nes."" Then Delete/NoConfirm/Log [.pod]perlapi.pod;*
        - If F$Search("[.pod]perlintern.pod").nes."" Then Delete/NoConfirm/Log [.pod]perlintern.pod;*
index 0fdbdd3..9063c25 100644 (file)
@@ -1166,7 +1166,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Unicode\Collate rmdir /s /q $(LIBDIR)\Unicode\Collate
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-       -cd $(PODDIR) && del /f *.html *.bat \
+       -cd $(PODDIR) && del /f *.html *.bat roffitall \
            perl5156delta.pod perlaix.pod perlamiga.pod perlapi.pod \
            perlbeos.pod perlbs2000.pod perlce.pod perlcn.pod \
            perlcygwin.pod perldgux.pod perldos.pod perlepoc.pod \
index 2f65509..fc89ad2 100644 (file)
@@ -1351,7 +1351,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Unicode\Collate rmdir /s /q $(LIBDIR)\Unicode\Collate
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-       -cd $(PODDIR) && del /f *.html *.bat \
+       -cd $(PODDIR) && del /f *.html *.bat roffitall \
            perl5156delta.pod perlaix.pod perlamiga.pod perlapi.pod \
            perlbeos.pod perlbs2000.pod perlce.pod perlcn.pod \
            perlcygwin.pod perldgux.pod perldos.pod perlepoc.pod \