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". It makes use of the
10 # 132html A Perl script that converts a .1 or .3 man page into HTML. It
11 # is called from MakeRelease. It "knows" the relevant troff
12 # constructs that are used in the PCRE man pages.
14 # CleanTxt A Perl script that cleans up the output of "nroff -man" by
15 # removing backspaces and other redundant text so as to produce
16 # a readable .txt file.
18 # Detrail A Perl script that removes trailing spaces from files.
21 # A file that is copied as index.html into the doc/html directory
22 # when the HTML documentation is built. It works like this so that
23 # doc/html can be deleted and re-created from scratch.
26 # First, sort out the documentation
29 echo Processing documentation
31 # Make Text form of the documentation. It needs some mangling to make it
32 # tidy for online reading. Concatenate all the .3 stuff, but omit the
33 # individual function pages.
36 -----------------------------------------------------------------------------
37 This file contains a concatenation of the PCRE man pages, converted to plain
38 text format for ease of searching with a text editor, or for use on systems
39 that do not have a man page processor. The small individual files that give
40 synopses of each function in the library have not been included. There are
41 separate text files for the pcregrep and pcretest commands.
42 -----------------------------------------------------------------------------
47 echo "Making pcre.txt"
48 for file in pcre pcrebuild pcrematching pcreapi pcrecallout pcrecompat \
49 pcrepattern pcresyntax pcrepartial pcreprecompile \
50 pcreperform pcreposix pcrecpp pcresample pcrestack ; do
51 echo " Processing $file.3"
52 nroff -c -man $file.3 >$file.rawtxt
53 ../CleanTxt <$file.rawtxt >>pcre.txt
55 echo "------------------------------------------------------------------------------" >>pcre.txt
56 if [ "$file" != "pcresample" ] ; then
63 for file in pcretest pcregrep pcre-config ; do
65 nroff -c -man $file.1 >$file.rawtxt
66 ../CleanTxt <$file.rawtxt >$file.txt
71 # Make HTML form of the documentation.
73 echo "Making HTML documentation"
75 cp index.html.src html/index.html
78 base=`basename $file .1`
79 echo " Making $base.html"
80 ../132html -toc $base <$file >html/$base.html
83 # Exclude table of contents for function summaries. It seems that expr
84 # forces an anchored regex. Also exclude them for small pages that have
87 base=`basename $file .3`
89 if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
90 if [ "$base" = "pcresample" ] || \
91 [ "$base" = "pcrestack" ] || \
92 [ "$base" = "pcrecompat" ] || \
93 [ "$base" = "pcreperform" ] ; then
96 echo " Making $base.html"
97 ../132html $toc $base <$file >html/$base.html
98 if [ $? != 0 ] ; then exit 1; fi
101 # End of documentation processing
104 echo Documentation done
106 # These files are detrailed; do not detrail the test data because there may be
107 # significant trailing spaces. The configure files are also omitted from the
134 pcre_chartables.c.dist \
158 pcre_ucp_searchfuncs.c \
164 pcre_scanner_unittest.cc \
168 pcrecpp_unittest.cc \
169 pcre_stringpiece.cc \
170 pcre_stringpiece.h.in \
171 pcre_stringpiece_unittest.cc \
182 ./Detrail $files doc/p* doc/html/*
184 echo Doing basic configure to get default pcre.h and config.h
185 # This is in case the caller has set aliases (as I do - PH)
187 ./configure >/dev/null
189 echo Converting pcre.h and config.h to generic forms
190 cp -f pcre.h pcre.h.generic
193 open(IN, "<config.h") || die "Can't open config.h: $!\n";
194 open(OUT, ">config.h.generic") || die "Can't open config.h.generic: $!\n";
197 if (/^#define\s(?!PACKAGE)(\w+)/)
199 print OUT "#ifndef $1\n";
201 print OUT "#endif\n";