Clean and tiddy-up files.
[tomato.git] / release / src / router / pcre / PrepareRelease
blob4ec803e5b177a98f8e11b2b7d5595424868ef29b
1 #/bin/sh
3 # Script to prepare the files for building a PCRE release. It does some
4 # processing of the documentation, detrails files, and creates pcre.h.generic
5 # and config.h.generic (for use by builders who can't run ./configure).
7 # You must run this script before runnning "make dist". If its first argument
8 # is "doc", it stops after preparing the documentation. There are no other
9 # arguments. The script makes use of the following files:
11 # 132html     A Perl script that converts a .1 or .3 man page into HTML. It
12 #             "knows" the relevant troff constructs that are used in the PCRE
13 #             man pages.
15 # CheckMan    A Perl script that checks man pages for typos in the mark up.
17 # CleanTxt    A Perl script that cleans up the output of "nroff -man" by
18 #             removing backspaces and other redundant text so as to produce
19 #             a readable .txt file.
21 # Detrail     A Perl script that removes trailing spaces from files.
23 # doc/index.html.src
24 #             A file that is copied as index.html into the doc/html directory
25 #             when the HTML documentation is built. It works like this so that
26 #             doc/html can be deleted and re-created from scratch.
29 # First, sort out the documentation. Remove pcredemo.3 first because it won't
30 # pass the markup check (it is created below, using markup that none of the
31 # other pages use).
33 cd doc
34 echo Processing documentation
36 /bin/rm -f pcredemo.3
38 # Check the remaining man pages
40 perl ../CheckMan *.1 *.3
41 if [ $? != 0 ] ; then exit 1; fi
43 # Make Text form of the documentation. It needs some mangling to make it
44 # tidy for online reading. Concatenate all the .3 stuff, but omit the
45 # individual function pages.
47 cat <<End >pcre.txt
48 -----------------------------------------------------------------------------
49 This file contains a concatenation of the PCRE man pages, converted to plain
50 text format for ease of searching with a text editor, or for use on systems
51 that do not have a man page processor. The small individual files that give
52 synopses of each function in the library have not been included. Neither has
53 the pcredemo program. There are separate text files for the pcregrep and
54 pcretest commands.
55 -----------------------------------------------------------------------------
58 End
60 echo "Making pcre.txt"
61 for file in pcre pcre16 pcre32 pcrebuild pcrematching pcreapi pcrecallout \
62             pcrecompat pcrepattern pcresyntax pcreunicode pcrejit pcrepartial \
63             pcreprecompile pcreperform pcreposix pcrecpp pcresample \
64             pcrelimits pcrestack ; do
65   echo "  Processing $file.3"
66   nroff -c -man $file.3 >$file.rawtxt
67   perl ../CleanTxt <$file.rawtxt >>pcre.txt
68   /bin/rm $file.rawtxt
69   echo "------------------------------------------------------------------------------" >>pcre.txt
70   if [ "$file" != "pcresample" ] ; then
71     echo " " >>pcre.txt
72     echo " " >>pcre.txt
73   fi
74 done
76 # The three commands
77 for file in pcretest pcregrep pcre-config ; do
78   echo Making $file.txt
79   nroff -c -man $file.1 >$file.rawtxt
80   perl ../CleanTxt <$file.rawtxt >$file.txt
81   /bin/rm $file.rawtxt
82 done
85 # Make pcredemo.3 from the pcredemo.c source file
87 echo "Making pcredemo.3"
88 perl <<"END" >pcredemo.3
89   open(IN, "../pcredemo.c") || die "Failed to open pcredemo.c\n";
90   open(OUT, ">pcredemo.3") || die "Failed to open pcredemo.3\n";
91   print OUT ".\\\" Start example.\n" .
92             ".de EX\n" .
93             ".  nr mE \\\\n(.f\n" .
94             ".  nf\n" .
95             ".  nh\n" .
96             ".  ft CW\n" .
97             "..\n" .
98             ".\n" .
99             ".\n" .
100             ".\\\" End example.\n" .
101             ".de EE\n" .
102             ".  ft \\\\n(mE\n" .
103             ".  fi\n" .
104             ".  hy \\\\n(HY\n" .
105             "..\n" .
106             ".\n" .
107             ".EX\n" ;
108   while (<IN>)
109     {
110     s/\\/\\e/g;
111     print OUT;
112     }
113   print OUT ".EE\n";
114   close(IN);
115   close(OUT);
117 if [ $? != 0 ] ; then exit 1; fi
120 # Make HTML form of the documentation.
122 echo "Making HTML documentation"
123 /bin/rm html/*
124 cp index.html.src html/index.html
126 for file in *.1 ; do
127   base=`basename $file .1`
128   echo "  Making $base.html"
129   perl ../132html -toc $base <$file >html/$base.html
130 done
132 # Exclude table of contents for function summaries. It seems that expr
133 # forces an anchored regex. Also exclude them for small pages that have
134 # only one section.
136 for file in *.3 ; do
137   base=`basename $file .3`
138   toc=-toc
139   if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
140   if [ "$base" = "pcresample" ]  || \
141      [ "$base" = "pcrestack" ]   || \
142      [ "$base" = "pcrecompat" ]  || \
143      [ "$base" = "pcrelimits" ]  || \
144      [ "$base" = "pcreperform" ] || \
145      [ "$base" = "pcreunicode" ] ; then
146     toc=""
147   fi
148   echo "  Making $base.html"
149   perl ../132html $toc $base <$file >html/$base.html
150   if [ $? != 0 ] ; then exit 1; fi
151 done
153 # End of documentation processing; stop if only documentation required.
155 cd ..
156 echo Documentation done
157 if [ "$1" = "doc" ] ; then exit; fi
159 # These files are detrailed; do not detrail the test data because there may be
160 # significant trailing spaces. Do not detrail RunTest.bat, because it has CRLF
161 # line endings and the detrail script removes all trailing white space. The
162 # configure files are also omitted from the detrailing. We don't bother with
163 # those pcre[16|32]_xx files that just define COMPILE_PCRE16 and then #include the
164 # common file, because they aren't going to change.
166 files="\
167   Makefile.am \
168   Makefile.in \
169   configure.ac \
170   README \
171   LICENCE \
172   COPYING \
173   AUTHORS \
174   NEWS \
175   NON-UNIX-USE \
176   NON-AUTOTOOLS-BUILD \
177   INSTALL \
178   132html \
179   CleanTxt \
180   Detrail \
181   ChangeLog \
182   CMakeLists.txt \
183   RunGrepTest \
184   RunTest \
185   pcre-config.in \
186   libpcre.pc.in \
187   libpcre16.pc.in \
188   libpcre32.pc.in \
189   libpcreposix.pc.in \
190   libpcrecpp.pc.in \
191   config.h.in \
192   pcre_chartables.c.dist \
193   pcredemo.c \
194   pcregrep.c \
195   pcretest.c \
196   dftables.c \
197   pcreposix.c \
198   pcreposix.h \
199   pcre.h.in \
200   pcre_internal.h \
201   pcre_byte_order.c \
202   pcre_compile.c \
203   pcre_config.c \
204   pcre_dfa_exec.c \
205   pcre_exec.c \
206   pcre_fullinfo.c \
207   pcre_get.c \
208   pcre_globals.c \
209   pcre_jit_compile.c \
210   pcre_jit_test.c \
211   pcre_maketables.c \
212   pcre_newline.c \
213   pcre_ord2utf8.c \
214   pcre16_ord2utf16.c \
215   pcre32_ord2utf32.c \
216   pcre_printint.c \
217   pcre_refcount.c \
218   pcre_string_utils.c \
219   pcre_study.c \
220   pcre_tables.c \
221   pcre_ucp_searchfuncs.c \
222   pcre_valid_utf8.c \
223   pcre_version.c \
224   pcre_xclass.c \
225   pcre16_utf16_utils.c \
226   pcre32_utf32_utils.c \
227   pcre16_valid_utf16.c \
228   pcre32_valid_utf32.c \
229   pcre_scanner.cc \
230   pcre_scanner.h \
231   pcre_scanner_unittest.cc \
232   pcrecpp.cc \
233   pcrecpp.h \
234   pcrecpparg.h.in \
235   pcrecpp_unittest.cc \
236   pcre_stringpiece.cc \
237   pcre_stringpiece.h.in \
238   pcre_stringpiece_unittest.cc \
239   perltest.pl \
240   ucp.h \
241   ucpinternal.h \
242   ucptable.h \
243   makevp.bat \
244   pcre.def \
245   libpcre.def \
246   libpcreposix.def"
248 echo Detrailing
249 perl ./Detrail $files doc/p* doc/html/*
251 echo Done
253 #End