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