File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / PrepareRelease
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 08:25:56 2013 UTC (10 years, 10 months ago) by misho
Branches: pcre, MAIN
CVS tags: v8_34, v8_33, HEAD
8.33

    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: # README & NON-AUTOTOOLS-BUILD
   29: #             These files are copied into the doc/html directory, with .txt
   30: #             extensions so that they can by hyperlinked from the HTML 
   31: #             documentation, because some people just go to the HTML without
   32: #             looking for text files.
   33: 
   34: 
   35: # First, sort out the documentation. Remove pcredemo.3 first because it won't
   36: # pass the markup check (it is created below, using markup that none of the
   37: # other pages use).
   38: 
   39: cd doc
   40: echo Processing documentation
   41: 
   42: /bin/rm -f pcredemo.3
   43: 
   44: # Check the remaining man pages
   45: 
   46: perl ../CheckMan *.1 *.3
   47: if [ $? != 0 ] ; then exit 1; fi
   48: 
   49: # Make Text form of the documentation. It needs some mangling to make it
   50: # tidy for online reading. Concatenate all the .3 stuff, but omit the
   51: # individual function pages.
   52: 
   53: cat <<End >pcre.txt
   54: -----------------------------------------------------------------------------
   55: This file contains a concatenation of the PCRE man pages, converted to plain
   56: text format for ease of searching with a text editor, or for use on systems
   57: that do not have a man page processor. The small individual files that give
   58: synopses of each function in the library have not been included. Neither has
   59: the pcredemo program. There are separate text files for the pcregrep and
   60: pcretest commands.
   61: -----------------------------------------------------------------------------
   62: 
   63: 
   64: End
   65: 
   66: echo "Making pcre.txt"
   67: for file in pcre pcre16 pcre32 pcrebuild pcrematching pcreapi pcrecallout \
   68:             pcrecompat pcrepattern pcresyntax pcreunicode pcrejit pcrepartial \
   69:             pcreprecompile pcreperform pcreposix pcrecpp pcresample \
   70:             pcrelimits pcrestack ; do
   71:   echo "  Processing $file.3"
   72:   nroff -c -man $file.3 >$file.rawtxt
   73:   perl ../CleanTxt <$file.rawtxt >>pcre.txt
   74:   /bin/rm $file.rawtxt
   75:   echo "------------------------------------------------------------------------------" >>pcre.txt
   76:   if [ "$file" != "pcresample" ] ; then
   77:     echo " " >>pcre.txt
   78:     echo " " >>pcre.txt
   79:   fi
   80: done
   81: 
   82: # The three commands
   83: for file in pcretest pcregrep pcre-config ; do
   84:   echo Making $file.txt
   85:   nroff -c -man $file.1 >$file.rawtxt
   86:   perl ../CleanTxt <$file.rawtxt >$file.txt
   87:   /bin/rm $file.rawtxt
   88: done
   89: 
   90: 
   91: # Make pcredemo.3 from the pcredemo.c source file
   92: 
   93: echo "Making pcredemo.3"
   94: perl <<"END" >pcredemo.3
   95:   open(IN, "../pcredemo.c") || die "Failed to open pcredemo.c\n";
   96:   open(OUT, ">pcredemo.3") || die "Failed to open pcredemo.3\n";
   97:   print OUT ".\\\" Start example.\n" .
   98:             ".de EX\n" .
   99:             ".  nr mE \\\\n(.f\n" .
  100:             ".  nf\n" .
  101:             ".  nh\n" .
  102:             ".  ft CW\n" .
  103:             "..\n" .
  104:             ".\n" .
  105:             ".\n" .
  106:             ".\\\" End example.\n" .
  107:             ".de EE\n" .
  108:             ".  ft \\\\n(mE\n" .
  109:             ".  fi\n" .
  110:             ".  hy \\\\n(HY\n" .
  111:             "..\n" .
  112:             ".\n" .
  113:             ".EX\n" ;
  114:   while (<IN>)
  115:     {
  116:     s/\\/\\e/g;
  117:     print OUT;
  118:     }
  119:   print OUT ".EE\n";
  120:   close(IN);
  121:   close(OUT);
  122: END
  123: if [ $? != 0 ] ; then exit 1; fi
  124: 
  125: 
  126: # Make HTML form of the documentation.
  127: 
  128: echo "Making HTML documentation"
  129: /bin/rm html/*
  130: cp index.html.src html/index.html
  131: cp ../README html/README.txt
  132: cp ../NON-AUTOTOOLS-BUILD html/NON-AUTOTOOLS-BUILD.txt
  133: 
  134: for file in *.1 ; do
  135:   base=`basename $file .1`
  136:   echo "  Making $base.html"
  137:   perl ../132html -toc $base <$file >html/$base.html
  138: done
  139: 
  140: # Exclude table of contents for function summaries. It seems that expr
  141: # forces an anchored regex. Also exclude them for small pages that have
  142: # only one section.
  143: 
  144: for file in *.3 ; do
  145:   base=`basename $file .3`
  146:   toc=-toc
  147:   if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
  148:   if [ "$base" = "pcresample" ]  || \
  149:      [ "$base" = "pcrestack" ]   || \
  150:      [ "$base" = "pcrecompat" ]  || \
  151:      [ "$base" = "pcrelimits" ]  || \
  152:      [ "$base" = "pcreperform" ] || \
  153:      [ "$base" = "pcreunicode" ] ; then
  154:     toc=""
  155:   fi
  156:   echo "  Making $base.html"
  157:   perl ../132html $toc $base <$file >html/$base.html
  158:   if [ $? != 0 ] ; then exit 1; fi
  159: done
  160: 
  161: # End of documentation processing; stop if only documentation required.
  162: 
  163: cd ..
  164: echo Documentation done
  165: if [ "$1" = "doc" ] ; then exit; fi
  166: 
  167: # These files are detrailed; do not detrail the test data because there may be
  168: # significant trailing spaces. Do not detrail RunTest.bat, because it has CRLF
  169: # line endings and the detrail script removes all trailing white space. The
  170: # configure files are also omitted from the detrailing. We don't bother with
  171: # those pcre[16|32]_xx files that just define COMPILE_PCRE16 and then #include the
  172: # common file, because they aren't going to change.
  173: 
  174: files="\
  175:   Makefile.am \
  176:   Makefile.in \
  177:   configure.ac \
  178:   README \
  179:   LICENCE \
  180:   COPYING \
  181:   AUTHORS \
  182:   NEWS \
  183:   NON-UNIX-USE \
  184:   NON-AUTOTOOLS-BUILD \
  185:   INSTALL \
  186:   132html \
  187:   CleanTxt \
  188:   Detrail \
  189:   ChangeLog \
  190:   CMakeLists.txt \
  191:   RunGrepTest \
  192:   RunTest \
  193:   pcre-config.in \
  194:   libpcre.pc.in \
  195:   libpcre16.pc.in \
  196:   libpcre32.pc.in \
  197:   libpcreposix.pc.in \
  198:   libpcrecpp.pc.in \
  199:   config.h.in \
  200:   pcre_chartables.c.dist \
  201:   pcredemo.c \
  202:   pcregrep.c \
  203:   pcretest.c \
  204:   dftables.c \
  205:   pcreposix.c \
  206:   pcreposix.h \
  207:   pcre.h.in \
  208:   pcre_internal.h \
  209:   pcre_byte_order.c \
  210:   pcre_compile.c \
  211:   pcre_config.c \
  212:   pcre_dfa_exec.c \
  213:   pcre_exec.c \
  214:   pcre_fullinfo.c \
  215:   pcre_get.c \
  216:   pcre_globals.c \
  217:   pcre_jit_compile.c \
  218:   pcre_jit_test.c \
  219:   pcre_maketables.c \
  220:   pcre_newline.c \
  221:   pcre_ord2utf8.c \
  222:   pcre16_ord2utf16.c \
  223:   pcre32_ord2utf32.c \
  224:   pcre_printint.c \
  225:   pcre_refcount.c \
  226:   pcre_string_utils.c \
  227:   pcre_study.c \
  228:   pcre_tables.c \
  229:   pcre_valid_utf8.c \
  230:   pcre_version.c \
  231:   pcre_xclass.c \
  232:   pcre16_utf16_utils.c \
  233:   pcre32_utf32_utils.c \
  234:   pcre16_valid_utf16.c \
  235:   pcre32_valid_utf32.c \
  236:   pcre_scanner.cc \
  237:   pcre_scanner.h \
  238:   pcre_scanner_unittest.cc \
  239:   pcrecpp.cc \
  240:   pcrecpp.h \
  241:   pcrecpparg.h.in \
  242:   pcrecpp_unittest.cc \
  243:   pcre_stringpiece.cc \
  244:   pcre_stringpiece.h.in \
  245:   pcre_stringpiece_unittest.cc \
  246:   perltest.pl \
  247:   ucp.h \
  248:   makevp.bat \
  249:   pcre.def \
  250:   libpcre.def \
  251:   libpcreposix.def"
  252: 
  253: echo Detrailing
  254: perl ./Detrail $files doc/p* doc/html/*
  255: 
  256: echo Done
  257: 
  258: #End

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>