extra code in pp_concat, Take 2
[p5sagit/p5-mst-13.2.git] / pod / roffitall
1 #!/bin/sh
2 #
3 # Usage: roffitall [-nroff|-psroff|-groff]
4 #
5 # Authors: Tom Christiansen, Raphael Manfredi
6
7 me=roffitall
8 tmp=.
9
10 if test -f ../config.sh; then
11         . ../config.sh
12 fi
13
14 mandir=$installman1dir
15 libdir=$installman3dir
16
17 test -d $mandir || mandir=/usr/new/man/man1
18 test -d $libdir || libdir=/usr/new/man/man3
19
20 case "$1" in
21 -nroff) cmd="nroff -man"; ext='txt';;
22 -psroff) cmd="psroff -t"; ext='ps';;
23 -groff) cmd="groff -man"; ext='ps';;
24 *)
25         echo "Usage: roffitall [-nroff|-psroff|-groff]" >&2
26         exit 1
27         ;;
28 esac
29
30 # NEEDS TO BE BUILT BASED ON Makefile (or Makefile.SH, should such happen)
31 toroff=`
32         echo            \
33         $mandir/perl.1  \
34         $mandir/perl5004delta.1 \
35         $mandir/perl5005delta.1 \
36         $mandir/perl56delta.1   \
37         $mandir/perlapi.1       \
38         $mandir/perlapio.1      \
39         $mandir/perlbook.1      \
40         $mandir/perlboot.1      \
41         $mandir/perlbot.1       \
42         $mandir/perlcall.1      \
43         $mandir/perlcompile.1   \
44         $mandir/perldata.1      \
45         $mandir/perldbmfilter.1 \
46         $mandir/perldebguts.1   \
47         $mandir/perldebug.1     \
48         $mandir/perldelta.1     \
49         $mandir/perldiag.1      \
50         $mandir/perldsc.1       \
51         $mandir/perlembed.1     \
52         $mandir/perlfaq.1       \
53         $mandir/perlfaq1.1      \
54         $mandir/perlfaq2.1      \
55         $mandir/perlfaq3.1      \
56         $mandir/perlfaq4.1      \
57         $mandir/perlfaq5.1      \
58         $mandir/perlfaq6.1      \
59         $mandir/perlfaq7.1      \
60         $mandir/perlfaq8.1      \
61         $mandir/perlfaq9.1      \
62         $mandir/perlfilter.1    \
63         $mandir/perlfork.1      \
64         $mandir/perlform.1      \
65         $mandir/perlfunc.1      \
66         $mandir/perlguts.1      \
67         $mandir/perlhack.1      \
68         $mandir/perlhist.1      \
69         $mandir/perlintern.1    \
70         $mandir/perlipc.1       \
71         $mandir/perllexwarn.1   \
72         $mandir/perllocale.1    \
73         $mandir/perllol.1       \
74         $mandir/perlmod.1       \
75         $mandir/perlmodinstall.1        \
76         $mandir/perlmodlib.1    \
77         $mandir/perlnewmod.1    \
78         $mandir/perlnumber.1    \
79         $mandir/perlobj.1       \
80         $mandir/perlop.1        \
81         $mandir/perlopentut.1   \
82         $mandir/perlpod.1       \
83         $mandir/perlport.1      \
84         $mandir/perlre.1        \
85         $mandir/perlref.1       \
86         $mandir/perlreftut.1    \
87         $mandir/perlrequick.1   \
88         $mandir/perlretut.1     \
89         $mandir/perlrun.1       \
90         $mandir/perlsec.1       \
91         $mandir/perlstyle.1     \
92         $mandir/perlsub.1       \
93         $mandir/perlsyn.1       \
94         $mandir/perlthrtut.1    \
95         $mandir/perltie.1       \
96         $mandir/perltoc.1       \
97         $mandir/perltodo.1      \
98         $mandir/perltooc.1      \
99         $mandir/perltoot.1      \
100         $mandir/perltrap.1      \
101         $mandir/perlunicode.1   \
102         $mandir/perlutil.1      \
103         $mandir/perlvar.1       \
104         $mandir/perlxs.1        \
105         $mandir/perlxstut.1     \
106         \
107     $mandir/a2p.1       \
108     $mandir/c2ph.1      \
109     $mandir/dprofpp.1   \
110     $mandir/h2ph.1      \
111     $mandir/h2xs.1      \
112     $mandir/perlbug.1   \
113     $mandir/perldoc.1   \
114     $mandir/pl2pm.1     \
115     $mandir/pod2html.1  \
116     $mandir/pod2man.1   \
117     $mandir/s2p.1       \
118     $mandir/splain.1    \
119     $mandir/xsubpp.1    \
120                         \
121     $libdir/attrs.3     \
122     $libdir/autouse.3   \
123     $libdir/base.3      \
124     $libdir/blib.3      \
125     $libdir/constant.3  \
126     $libdir/diagnostics.3       \
127     $libdir/fields.3    \
128     $libdir/filetest.3  \
129     $libdir/integer.3   \
130     $libdir/less.3      \
131     $libdir/lib.3       \
132     $libdir/locale.3    \
133     $libdir/ops.3       \
134     $libdir/overload.3  \
135     $libdir/re.3        \
136     $libdir/sigtrap.3   \
137     $libdir/strict.3    \
138     $libdir/subs.3      \
139     $libdir/vars.3      \
140         \
141     $libdir/AnyDBM_File.3       \
142     $libdir/AutoLoader.3        \
143     $libdir/AutoSplit.3 \
144     $libdir/B.3 \
145     $libdir/B::Asmdata.3        \
146     $libdir/B::Assembler.3      \
147     $libdir/B::Bblock.3 \
148     $libdir/B::Bytecode.3       \
149     $libdir/B::C.3      \
150     $libdir/B::CC.3     \
151     $libdir/B::Debug.3  \
152     $libdir/B::Deparse.3        \
153     $libdir/B::Disassembler.3   \
154     $libdir/B::Lint.3   \
155     $libdir/B::Showlex.3        \
156     $libdir/B::Stackobj.3       \
157     $libdir/B::Terse.3  \
158     $libdir/B::Xref.3   \
159     $libdir/Benchmark.3 \
160     $libdir/Carp.3      \
161     $libdir/CGI.3       \
162     $libdir/CGI::Apache.3       \
163     $libdir/CGI::Carp.3 \
164     $libdir/CGI::Cookie.3       \
165     $libdir/CGI::Fast.3 \
166     $libdir/CGI::Push.3 \
167     $libdir/CGI::Switch.3       \
168     $libdir/Class::Struct.3     \
169     $libdir/Config.3    \
170     $libdir/CPAN.3      \
171     $libdir/CPAN::FirstTime.3   \
172     $libdir/CPAN::Nox.3 \
173     $libdir/Cwd.3       \
174     $libdir/Data::Dumper.3      \
175     $libdir/DB_File.3   \
176     $libdir/Devel::SelfStubber.3        \
177     $libdir/DirHandle.3 \
178     $libdir/DynaLoader.3        \
179     $libdir/Dumpvalue.3 \
180     $libdir/English.3   \
181     $libdir/Env.3       \
182     $libdir/Errno.3     \
183     $libdir/Exporter.3  \
184     $libdir/ExtUtils::Command.3 \
185     $libdir/ExtUtils::Embed.3   \
186     $libdir/ExtUtils::Install.3 \
187     $libdir/ExtUtils::Installed.3       \
188     $libdir/ExtUtils::Liblist.3 \
189     $libdir/ExtUtils::MakeMaker.3       \
190     $libdir/ExtUtils::Manifest.3        \
191     $libdir/ExtUtils::Miniperl.3        \
192     $libdir/ExtUtils::Mkbootstrap.3     \
193     $libdir/ExtUtils::Mksymlists.3      \
194     $libdir/ExtUtils::MM_OS2.3  \
195     $libdir/ExtUtils::MM_Unix.3 \
196     $libdir/ExtUtils::MM_VMS.3  \
197     $libdir/ExtUtils::MM_Win32.3        \
198     $libdir/ExtUtils::Packlist.3        \
199     $libdir/ExtUtils::testlib.3 \
200     $libdir/Fatal.3     \
201     $libdir/Fcntl.3     \
202     $libdir/File::Basename.3    \
203     $libdir/File::CheckTree.3   \
204     $libdir/File::Compare.3     \
205     $libdir/File::Copy.3        \
206     $libdir/File::DosGlob.3     \
207     $libdir/File::Find.3        \
208     $libdir/File::Path.3        \
209     $libdir/File::Spec.3        \
210     $libdir/File::Spec::Mac.3   \
211     $libdir/File::Spec::OS2.3   \
212     $libdir/File::Spec::Unix.3  \
213     $libdir/File::Spec::VMS.3   \
214     $libdir/File::Spec::Win32.3 \
215     $libdir/File::stat.3        \
216     $libdir/FileCache.3 \
217     $libdir/FileHandle.3        \
218     $libdir/FindBin.3   \
219     $libdir/GDBM_File.3 \
220     $libdir/Getopt::Long.3      \
221     $libdir/Getopt::Std.3       \
222     $libdir/I18N::Collate.3     \
223     $libdir/IO.3 \
224     $libdir/IO::File.3 \
225     $libdir/IO::Handle.3 \
226     $libdir/IO::Pipe.3 \
227     $libdir/IO::Seekable.3 \
228     $libdir/IO::Select.3 \
229     $libdir/IO::Socket.3 \
230     $libdir/IPC::Msg.3  \
231     $libdir/IPC::Open2.3        \
232     $libdir/IPC::Open3.3        \
233     $libdir/IPC::Semaphore.3    \
234     $libdir/IPC::SysV.3 \
235     $libdir/Math::BigFloat.3    \
236     $libdir/Math::BigInt.3      \
237     $libdir/Math::Complex.3     \
238     $libdir/Math::Trig.3        \
239     $libdir/NDBM_File.3 \
240     $libdir/Net::hostent.3      \
241     $libdir/Net::netent.3       \
242     $libdir/Net::Ping.3 \
243     $libdir/Net::protoent.3     \
244     $libdir/Net::servent.3      \
245     $libdir/O.3 \
246     $libdir/Opcode.3    \
247     $libdir/Pod::Html.3 \
248     $libdir/Pod::Text.3 \
249     $libdir/POSIX.3     \
250     $libdir/Safe.3      \
251     $libdir/SDBM_File.3 \
252     $libdir/Search::Dict.3      \
253     $libdir/SelectSaver.3       \
254     $libdir/SelfLoader.3        \
255     $libdir/Shell.3     \
256     $libdir/Socket.3    \
257     $libdir/Symbol.3    \
258     $libdir/Sys::Hostname.3     \
259     $libdir/Sys::Syslog.3       \
260     $libdir/Term::Cap.3 \
261     $libdir/Term::Complete.3    \
262     $libdir/Term::ReadLine.3    \
263     $libdir/Test.3      \
264     $libdir/Test::Harness.3     \
265     $libdir/Text::Abbrev.3      \
266     $libdir/Text::ParseWords.3  \
267     $libdir/Text::Soundex.3     \
268     $libdir/Text::Tabs.3        \
269     $libdir/Text::Wrap.3        \
270     $libdir/Tie::Array.3        \
271     $libdir/Tie::Handle.3       \
272     $libdir/Tie::Hash.3 \
273     $libdir/Tie::RefHash.3      \
274     $libdir/Tie::Scalar.3       \
275     $libdir/Tie::SubstrHash.3   \
276     $libdir/Time::gmtime.3      \
277     $libdir/Time::Local.3       \
278     $libdir/Time::localtime.3   \
279     $libdir/Time::tm.3          \
280     $libdir/UNIVERSAL.3         \
281     $libdir/User::grent.3               \
282     $libdir/User::pwent.3 | \
283     perl -ne 'map { -r && print "$_ " } split'`
284
285     # Bypass internal shell buffer limit -- can't use case
286     if perl -e '$a = shift; exit($a =~ m|/|)' $toroff; then
287         echo "$me: empty file list -- did you run install?" >&2
288         exit 1
289     fi
290
291     #psroff -t -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.ps 2>$tmp/PerlTOC.raw
292     #nroff -man -rC1 -rD1 -rF1 > $tmp/PerlDoc.txt 2>$tmp/PerlTOC.nr.raw
293
294     # First, create the raw data
295     run="$cmd -rC1 -rD1 -rF1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
296     echo "$me: running $run"
297     eval $run $toroff
298
299     #Now create the TOC
300     echo "$me: parsing TOC"
301     ./rofftoc $tmp/PerlTOC.$ext.raw > $tmp/PerlTOC.tmp.man
302     run="$cmd $tmp/PerlTOC.tmp.man >$tmp/PerlTOC.$ext"
303     echo "$me: running $run"
304     eval $run
305
306     # Finally, recreate the Doc, without the blank page 0
307     run="$cmd -rC1 -rD1 >$tmp/PerlDoc.$ext 2>$tmp/PerlTOC.$ext.raw"
308     echo "$me: running $run"
309     eval $run $toroff
310     rm -f $tmp/PerlTOC.tmp.man $tmp/PerlTOC.$ext.raw
311     echo "$me: leaving you with $tmp/PerlDoc.$ext and $tmp/PerlTOC.$ext"
312