/[pcre]/code/trunk/PrepareRelease
ViewVC logotype

Contents of /code/trunk/PrepareRelease

Parent Directory Parent Directory | Revision Log Revision Log


Revision 583 - (show annotations)
Tue Jan 11 16:49:55 2011 UTC (4 years, 7 months ago) by ph10
File size: 6936 byte(s)
Error occurred while calculating annotation data.
Add script to check for man page markup typos. Fix some typos.
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
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).
32
33 cd doc
34 echo Processing documentation
35
36 /bin/rm -f pcredemo.3
37
38 # Check the remaining man pages
39
40 ../CheckMan *.1 *.3
41 if [ $? != 0 ] ; then exit 1; fi
42
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.
46
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 -----------------------------------------------------------------------------
56
57
58 End
59
60 echo "Making pcre.txt"
61 for file in pcre pcrebuild pcrematching pcreapi pcrecallout pcrecompat \
62 pcrepattern pcresyntax pcrepartial pcreprecompile \
63 pcreperform pcreposix pcrecpp pcresample pcrestack ; do
64 echo " Processing $file.3"
65 nroff -c -man $file.3 >$file.rawtxt
66 ../CleanTxt <$file.rawtxt >>pcre.txt
67 /bin/rm $file.rawtxt
68 echo "------------------------------------------------------------------------------" >>pcre.txt
69 if [ "$file" != "pcresample" ] ; then
70 echo " " >>pcre.txt
71 echo " " >>pcre.txt
72 fi
73 done
74
75 # The three commands
76 for file in pcretest pcregrep pcre-config ; do
77 echo Making $file.txt
78 nroff -c -man $file.1 >$file.rawtxt
79 ../CleanTxt <$file.rawtxt >$file.txt
80 /bin/rm $file.rawtxt
81 done
82
83
84 # Make pcredemo.3 from the pcredemo.c source file
85
86 echo "Making pcredemo.3"
87 perl <<"END" >pcredemo.3
88 open(IN, "../pcredemo.c") || die "Failed to open pcredemo.c\n";
89 open(OUT, ">pcredemo.3") || die "Failed to open pcredemo.3\n";
90 print OUT ".\\\" Start example.\n" .
91 ".de EX\n" .
92 ". nr mE \\\\n(.f\n" .
93 ". nf\n" .
94 ". nh\n" .
95 ". ft CW\n" .
96 "..\n" .
97 ".\n" .
98 ".\n" .
99 ".\\\" End example.\n" .
100 ".de EE\n" .
101 ". ft \\\\n(mE\n" .
102 ". fi\n" .
103 ". hy \\\\n(HY\n" .
104 "..\n" .
105 ".\n" .
106 ".EX\n" ;
107 while (<IN>)
108 {
109 s/\\/\\e/g;
110 print OUT;
111 }
112 print OUT ".EE\n";
113 close(IN);
114 close(OUT);
115 END
116 if [ $? != 0 ] ; then exit 1; fi
117
118
119 # Make HTML form of the documentation.
120
121 echo "Making HTML documentation"
122 /bin/rm html/*
123 cp index.html.src html/index.html
124
125 for file in *.1 ; do
126 base=`basename $file .1`
127 echo " Making $base.html"
128 ../132html -toc $base <$file >html/$base.html
129 done
130
131 # Exclude table of contents for function summaries. It seems that expr
132 # forces an anchored regex. Also exclude them for small pages that have
133 # only one section.
134
135 for file in *.3 ; do
136 base=`basename $file .3`
137 toc=-toc
138 if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
139 if [ "$base" = "pcresample" ] || \
140 [ "$base" = "pcrestack" ] || \
141 [ "$base" = "pcrecompat" ] || \
142 [ "$base" = "pcreperform" ] ; then
143 toc=""
144 fi
145 echo " Making $base.html"
146 ../132html $toc $base <$file >html/$base.html
147 if [ $? != 0 ] ; then exit 1; fi
148 done
149
150 # End of documentation processing; stop if only documentation required.
151
152 cd ..
153 echo Documentation done
154 if [ "$1" = "doc" ] ; then exit; fi
155
156 # These files are detrailed; do not detrail the test data because there may be
157 # significant trailing spaces. The configure files are also omitted from the
158 # detrailing.
159
160 files="\
161 Makefile.am \
162 Makefile.in \
163 configure.ac \
164 README \
165 LICENCE \
166 COPYING \
167 AUTHORS \
168 NEWS \
169 NON-UNIX-USE \
170 INSTALL \
171 132html \
172 CleanTxt \
173 Detrail \
174 ChangeLog \
175 CMakeLists.txt \
176 RunGrepTest \
177 RunTest \
178 RunTest.bat \
179 pcre-config.in \
180 libpcre.pc.in \
181 libpcreposix.pc.in \
182 libpcrecpp.pc.in \
183 config.h.in \
184 pcre_printint.src \
185 pcre_chartables.c.dist \
186 pcredemo.c \
187 pcregrep.c \
188 pcretest.c \
189 dftables.c \
190 pcreposix.c \
191 pcreposix.h \
192 pcre.h.in \
193 pcre_internal.h
194 pcre_compile.c \
195 pcre_config.c \
196 pcre_dfa_exec.c \
197 pcre_exec.c \
198 pcre_fullinfo.c \
199 pcre_get.c \
200 pcre_globals.c \
201 pcre_info.c \
202 pcre_maketables.c \
203 pcre_newline.c \
204 pcre_ord2utf8.c \
205 pcre_refcount.c \
206 pcre_study.c \
207 pcre_tables.c \
208 pcre_try_flipped.c \
209 pcre_ucp_searchfuncs.c \
210 pcre_valid_utf8.c \
211 pcre_version.c \
212 pcre_xclass.c \
213 pcre_scanner.cc \
214 pcre_scanner.h \
215 pcre_scanner_unittest.cc \
216 pcrecpp.cc \
217 pcrecpp.h \
218 pcrecpparg.h.in \
219 pcrecpp_unittest.cc \
220 pcre_stringpiece.cc \
221 pcre_stringpiece.h.in \
222 pcre_stringpiece_unittest.cc \
223 perltest.pl \
224 ucp.h \
225 ucpinternal.h \
226 ucptable.h \
227 makevp.bat \
228 pcre.def \
229 libpcre.def \
230 libpcreposix.def"
231
232 echo Detrailing
233 ./Detrail $files doc/p* doc/html/*
234
235 echo Doing basic configure to get default pcre.h and config.h
236 # This is in case the caller has set aliases (as I do - PH)
237 unset cp ls mv rm
238 ./configure >/dev/null
239
240 echo Converting pcre.h and config.h to generic forms
241 cp -f pcre.h pcre.h.generic
242
243 perl <<'END'
244 open(IN, "<config.h") || die "Can't open config.h: $!\n";
245 open(OUT, ">config.h.generic") || die "Can't open config.h.generic: $!\n";
246 while (<IN>)
247 {
248 if (/^#define\s(?!PACKAGE)(\w+)/)
249 {
250 print OUT "#ifndef $1\n";
251 print OUT;
252 print OUT "#endif\n";
253 }
254 else
255 {
256 print OUT;
257 }
258 }
259 close IN;
260 close OUT;
261 END
262
263 echo Done
264
265 #End

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5