|
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". It makes use of the |
|
8 # following files: |
|
9 |
|
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. |
|
13 |
|
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. |
|
17 |
|
18 # Detrail A Perl script that removes trailing spaces from files. |
|
19 |
|
20 # doc/index.html.src |
|
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. |
|
24 |
|
25 |
|
26 # First, sort out the documentation |
|
27 |
|
28 cd doc |
|
29 echo Processing documentation |
|
30 |
|
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. |
|
34 |
|
35 cat <<End >pcre.txt |
|
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 ----------------------------------------------------------------------------- |
|
43 |
|
44 |
|
45 End |
|
46 |
|
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 |
|
54 /bin/rm $file.rawtxt |
|
55 echo "------------------------------------------------------------------------------" >>pcre.txt |
|
56 if [ "$file" != "pcresample" ] ; then |
|
57 echo " " >>pcre.txt |
|
58 echo " " >>pcre.txt |
|
59 fi |
|
60 done |
|
61 |
|
62 # The three commands |
|
63 for file in pcretest pcregrep pcre-config ; do |
|
64 echo Making $file.txt |
|
65 nroff -c -man $file.1 >$file.rawtxt |
|
66 ../CleanTxt <$file.rawtxt >$file.txt |
|
67 /bin/rm $file.rawtxt |
|
68 done |
|
69 |
|
70 |
|
71 # Make HTML form of the documentation. |
|
72 |
|
73 echo "Making HTML documentation" |
|
74 /bin/rm html/* |
|
75 cp index.html.src html/index.html |
|
76 |
|
77 for file in *.1 ; do |
|
78 base=`basename $file .1` |
|
79 echo " Making $base.html" |
|
80 ../132html -toc $base <$file >html/$base.html |
|
81 done |
|
82 |
|
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 |
|
85 # only one section. |
|
86 for file in *.3 ; do |
|
87 base=`basename $file .3` |
|
88 toc=-toc |
|
89 if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi |
|
90 if [ "$base" = "pcresample" ] || \ |
|
91 [ "$base" = "pcrestack" ] || \ |
|
92 [ "$base" = "pcrecompat" ] || \ |
|
93 [ "$base" = "pcreperform" ] ; then |
|
94 toc="" |
|
95 fi |
|
96 echo " Making $base.html" |
|
97 ../132html $toc $base <$file >html/$base.html |
|
98 if [ $? != 0 ] ; then exit 1; fi |
|
99 done |
|
100 |
|
101 # End of documentation processing |
|
102 |
|
103 cd .. |
|
104 echo Documentation done |
|
105 |
|
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 |
|
108 # detrailing. |
|
109 |
|
110 files="\ |
|
111 Makefile.am \ |
|
112 Makefile.in \ |
|
113 configure.ac \ |
|
114 README \ |
|
115 LICENCE \ |
|
116 COPYING \ |
|
117 AUTHORS \ |
|
118 NEWS \ |
|
119 NON-UNIX-USE \ |
|
120 INSTALL \ |
|
121 132html \ |
|
122 CleanTxt \ |
|
123 Detrail \ |
|
124 ChangeLog \ |
|
125 CMakeLists.txt \ |
|
126 RunGrepTest \ |
|
127 RunTest \ |
|
128 RunTest.bat \ |
|
129 pcre-config.in \ |
|
130 libpcre.pc.in \ |
|
131 libpcrecpp.pc.in \ |
|
132 config.h.in \ |
|
133 pcre_printint.src \ |
|
134 pcre_chartables.c.dist \ |
|
135 pcredemo.c \ |
|
136 pcregrep.c \ |
|
137 pcretest.c \ |
|
138 dftables.c \ |
|
139 pcreposix.c \ |
|
140 pcreposix.h \ |
|
141 pcre.h.in \ |
|
142 pcre_internal.h |
|
143 pcre_compile.c \ |
|
144 pcre_config.c \ |
|
145 pcre_dfa_exec.c \ |
|
146 pcre_exec.c \ |
|
147 pcre_fullinfo.c \ |
|
148 pcre_get.c \ |
|
149 pcre_globals.c \ |
|
150 pcre_info.c \ |
|
151 pcre_maketables.c \ |
|
152 pcre_newline.c \ |
|
153 pcre_ord2utf8.c \ |
|
154 pcre_refcount.c \ |
|
155 pcre_study.c \ |
|
156 pcre_tables.c \ |
|
157 pcre_try_flipped.c \ |
|
158 pcre_ucp_searchfuncs.c \ |
|
159 pcre_valid_utf8.c \ |
|
160 pcre_version.c \ |
|
161 pcre_xclass.c \ |
|
162 pcre_scanner.cc \ |
|
163 pcre_scanner.h \ |
|
164 pcre_scanner_unittest.cc \ |
|
165 pcrecpp.cc \ |
|
166 pcrecpp.h \ |
|
167 pcrecpparg.h.in \ |
|
168 pcrecpp_unittest.cc \ |
|
169 pcre_stringpiece.cc \ |
|
170 pcre_stringpiece.h.in \ |
|
171 pcre_stringpiece_unittest.cc \ |
|
172 perltest.pl \ |
|
173 ucp.h \ |
|
174 ucpinternal.h \ |
|
175 ucptable.h \ |
|
176 makevp.bat \ |
|
177 pcre.def \ |
|
178 libpcre.def \ |
|
179 libpcreposix.def" |
|
180 |
|
181 echo Detrailing |
|
182 ./Detrail $files doc/p* doc/html/* |
|
183 |
|
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) |
|
186 unset cp ls mv rm |
|
187 ./configure >/dev/null |
|
188 |
|
189 echo Converting pcre.h and config.h to generic forms |
|
190 cp -f pcre.h pcre.h.generic |
|
191 |
|
192 perl <<'END' |
|
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"; |
|
195 while (<IN>) |
|
196 { |
|
197 if (/^#define\s(?!PACKAGE)(\w+)/) |
|
198 { |
|
199 print OUT "#ifndef $1\n"; |
|
200 print OUT; |
|
201 print OUT "#endif\n"; |
|
202 } |
|
203 else |
|
204 { |
|
205 print OUT; |
|
206 } |
|
207 } |
|
208 close IN; |
|
209 close OUT; |
|
210 END |
|
211 |
|
212 echo Done |
|
213 |
|
214 #End |