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

Diff of /code/trunk/PrepareRelease

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

code/trunk/maintain/MakeRelease revision 97 by ph10, Mon Mar 5 12:36:47 2007 UTC code/trunk/PrepareRelease revision 583 by ph10, Tue Jan 11 16:49:55 2011 UTC
# Line 1  Line 1 
1  #/bin/sh  #/bin/sh
2    
3  # Script to make a PCRE release  # 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  if [ ! "$1" ]; then  # You must run this script before runnning "make dist". If its first argument
8    echo "*** Version number missing ***"  # is "doc", it stops after preparing the documentation. There are no other
9    exit 1  # arguments. The script makes use of the following files:
 fi  
10    
11  # The name of the release directory  # 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  dir=pcre-$1  # CheckMan    A Perl script that checks man pages for typos in the mark up.
16    
17  # But sometimes we just want to process the documentation  # 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  if [ "$1" = "doconly" ] ; then  # Detrail     A Perl script that removes trailing spaces from files.
   doconly=yes  
 fi  
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  # First, sort out the documentation  
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  cd doc
34  echo Processing documentation  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  # 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  # tidy for online reading. Concatenate all the .3 stuff, but omit the
45  # individual function pages.  # individual function pages.
# Line 32  cat <<End >pcre.txt Line 49  cat <<End >pcre.txt
49  This file contains a concatenation of the PCRE man pages, converted to plain  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  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  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. There are  synopses of each function in the library have not been included. Neither has
53  separate text files for the pcregrep and pcretest commands.  the pcredemo program. There are separate text files for the pcregrep and
54    pcretest commands.
55  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
56    
57    
# Line 41  End Line 59  End
59    
60  echo "Making pcre.txt"  echo "Making pcre.txt"
61  for file in pcre pcrebuild pcrematching pcreapi pcrecallout pcrecompat \  for file in pcre pcrebuild pcrematching pcreapi pcrecallout pcrecompat \
62              pcrepattern pcrepartial pcreprecompile \              pcrepattern pcresyntax pcrepartial pcreprecompile \
63              pcreperform pcreposix pcrecpp pcresample pcrestack ; do              pcreperform pcreposix pcrecpp pcresample pcrestack ; do
64    echo "  Processing $file.3"    echo "  Processing $file.3"
65    nroff -c -man $file.3 >$file.rawtxt    nroff -c -man $file.3 >$file.rawtxt
66    ../maintain/CleanTxt <$file.rawtxt >>pcre.txt    ../CleanTxt <$file.rawtxt >>pcre.txt
67    /bin/rm $file.rawtxt    /bin/rm $file.rawtxt
68    echo "------------------------------------------------------------------------------" >>pcre.txt    echo "------------------------------------------------------------------------------" >>pcre.txt
69    if [ "$file" != "pcresample" ] ; then    if [ "$file" != "pcresample" ] ; then
# Line 54  for file in pcre pcrebuild pcrematching Line 72  for file in pcre pcrebuild pcrematching
72    fi    fi
73  done  done
74    
75  # The two commands  # The three commands
76  for file in pcretest pcregrep ; do  for file in pcretest pcregrep pcre-config ; do
77    echo Making $file.txt    echo Making $file.txt
78    nroff -c -man $file.1 >$file.rawtxt    nroff -c -man $file.1 >$file.rawtxt
79    ../maintain/CleanTxt <$file.rawtxt >$file.txt    ../CleanTxt <$file.rawtxt >$file.txt
80    /bin/rm $file.rawtxt    /bin/rm $file.rawtxt
81  done  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.  # Make HTML form of the documentation.
120    
121    echo "Making HTML documentation"
122  /bin/rm html/*  /bin/rm html/*
123  cp ../maintain/Index.html html/index.html  cp index.html.src html/index.html
124    
125  for file in *.1 ; do  for file in *.1 ; do
126    base=`basename $file .1`    base=`basename $file .1`
127    echo Making $base.html    echo "  Making $base.html"
128    ../maintain/132html -toc $base <$file >html/$base.html    ../132html -toc $base <$file >html/$base.html
129  done  done
130    
131  # Exclude table of contents for function summaries. It seems that expr  # Exclude table of contents for function summaries. It seems that expr
132  # forces an anchored regex. Also exclude them for small pages that have  # forces an anchored regex. Also exclude them for small pages that have
133  # only one section.  # only one section.
134    
135  for file in *.3 ; do  for file in *.3 ; do
136    base=`basename $file .3`    base=`basename $file .3`
137    toc=-toc    toc=-toc
# Line 87  for file in *.3 ; do Line 142  for file in *.3 ; do
142       [ "$base" = "pcreperform" ] ; then       [ "$base" = "pcreperform" ] ; then
143      toc=""      toc=""
144    fi    fi
145    echo Making $base.html    echo "  Making $base.html"
146    ../maintain/132html $toc $base <$file >html/$base.html    ../132html $toc $base <$file >html/$base.html
147      if [ $? != 0 ] ; then exit 1; fi
148  done  done
149    
150  # End of documentation processing  # End of documentation processing; stop if only documentation required.
151    
152  cd ..  cd ..
153  echo Documentation done  echo Documentation done
154    if [ "$1" = "doc" ] ; then exit; fi
155    
156  if [ "$doconly" = "yes" ] ; then  # These files are detrailed; do not detrail the test data because there may be
157    exit 0  # significant trailing spaces. The configure files are also omitted from the
158  fi  # detrailing.
159    
160  # These files are detrailed and copied; do not detrail the test data  files="\
161  # because there may be significant trailing spaces. The configure files    Makefile.am \
162  # are also omitted from the detrailing.    Makefile.in \
163      configure.ac \
164  files="Makefile.in configure.ac config.h.in \    README \
165    README LICENCE COPYING AUTHORS NEWS NON-UNIX-USE INSTALL ChangeLog \    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 \    pcre-config.in \
180    libpcre.pc.in \    libpcre.pc.in \
181      libpcreposix.pc.in \
182    libpcrecpp.pc.in \    libpcrecpp.pc.in \
183      config.h.in \
184    pcre_printint.src \    pcre_printint.src \
185      pcre_chartables.c.dist \
186    pcredemo.c \    pcredemo.c \
187    pcregrep.c \    pcregrep.c \
188    pcretest.c \    pcretest.c \
189    dftables.c \    dftables.c \
190    pcreposix.c \    pcreposix.c \
191    pcreposix.h \    pcreposix.h \
192    pcre.h \    pcre.h.in \
193    pcre_internal.h    pcre_internal.h
194    pcre_compile.c \    pcre_compile.c \
195    pcre_config.c \    pcre_config.c \
# Line 152  files="Makefile.in configure.ac config.h Line 225  files="Makefile.in configure.ac config.h
225    ucpinternal.h \    ucpinternal.h \
226    ucptable.h \    ucptable.h \
227    makevp.bat \    makevp.bat \
   RunTest.bat \  
228    pcre.def \    pcre.def \
229    libpcre.def \    libpcre.def \
230    libpcreposix.def"    libpcreposix.def"
231    
 docfiles="doc/Tech.Notes doc/p*"  
   
232  echo Detrailing  echo Detrailing
233  ./maintain/Detrail $files doc/p* doc/html/*  ./Detrail $files doc/p* doc/html/*
234    
235  echo Building release  echo Doing basic configure to get default pcre.h and config.h
236  echo " "  # 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  mkdir Releases/$dir  echo Done
 mkdir Releases/$dir/doc  
 mkdir Releases/$dir/testdata  
   
 cp $files RunTest.in RunGrepTest.in configure install-sh mkinstalldirs \  
    config.guess config.sub libpcre.a.dev ltmain.sh Releases/$dir  
 cp -r doc/* Releases/$dir/doc  
   
 cp testdata/testinput1 testdata/testoutput1 \  
    testdata/testinput2 testdata/testoutput2 \  
    testdata/testinput3 testdata/testoutput3 \  
    testdata/testinput4 testdata/testoutput4 \  
    testdata/testinput5 testdata/testoutput5 \  
    testdata/testinput6 testdata/testoutput6 \  
    testdata/testinput7 testdata/testoutput7 \  
    testdata/testinput8 testdata/testoutput8 \  
    testdata/testinput9 testdata/testoutput9 \  
    testdata/grepinput  testdata/grepinputx  \  
    testdata/greplist   testdata/grepoutput \  
    testdata/grepinput8 testdata/grepoutput8 \  
    Releases/$dir/testdata  
   
 # Change the comparison command for testing to the standard one  
   
 ne Releases/$dir/RunTest.in -with /dev/null -opt "ge/cf=cf//cf=diff/"  
 ne Releases/$dir/RunGrepTest.in -with /dev/null -opt "ge/cf=cf//cf=diff/"  
   
 cd Releases  
   
 tar cf $dir.tar $dir  
 gzip -v --best $dir.tar  
 gpg -sb $dir.tar.gz  
   
 tar cf $dir.tar $dir  
 bzip2 -v -9 $dir.tar  
 gpg -sb $dir.tar.bz2  
264    
265  #End  #End

Legend:
Removed from v.97  
changed lines
  Added in v.583

  ViewVC Help
Powered by ViewVC 1.1.5