libraries/spcre/libpcre/pcre/PrepareRelease
changeset 0 7f656887cf89
equal deleted inserted replaced
-1:000000000000 0:7f656887cf89
       
     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