tools/pcre/PrepareRelease
author Nicholas Hastings <skamonkey@gmail.com>
Sun Jul 15 12:31:06 2012 -0400 (2012-07-15)
changeset 3579 6d730190a3e4
parent 2762 d2d467bf1b5a
child 3831 babd0eee3c5e
permissions -rwxr-xr-x
Added missing files to each core and logic makefiles (NPOTB).
dvander@2762
     1
#/bin/sh
dvander@2762
     2
dvander@2762
     3
# Script to prepare the files for building a PCRE release. It does some
dvander@2762
     4
# processing of the documentation, detrails files, and creates pcre.h.generic
dvander@2762
     5
# and config.h.generic (for use by builders who can't run ./configure).
dvander@2762
     6
dvander@2762
     7
# You must run this script before runnning "make dist". It makes use of the
dvander@2762
     8
# following files:
dvander@2762
     9
dvander@2762
    10
# 132html     A Perl script that converts a .1 or .3 man page into HTML. It
dvander@2762
    11
#             is called from MakeRelease. It "knows" the relevant troff
dvander@2762
    12
#             constructs that are used in the PCRE man pages.
dvander@2762
    13
dvander@2762
    14
# CleanTxt    A Perl script that cleans up the output of "nroff -man" by
dvander@2762
    15
#             removing backspaces and other redundant text so as to produce
dvander@2762
    16
#             a readable .txt file.
dvander@2762
    17
dvander@2762
    18
# Detrail     A Perl script that removes trailing spaces from files.
dvander@2762
    19
dvander@2762
    20
# doc/index.html.src
dvander@2762
    21
#             A file that is copied as index.html into the doc/html directory
dvander@2762
    22
#             when the HTML documentation is built. It works like this so that
dvander@2762
    23
#             doc/html can be deleted and re-created from scratch.
dvander@2762
    24
dvander@2762
    25
dvander@2762
    26
# First, sort out the documentation
dvander@2762
    27
dvander@2762
    28
cd doc
dvander@2762
    29
echo Processing documentation
dvander@2762
    30
dvander@2762
    31
# Make Text form of the documentation. It needs some mangling to make it
dvander@2762
    32
# tidy for online reading. Concatenate all the .3 stuff, but omit the
dvander@2762
    33
# individual function pages.
dvander@2762
    34
dvander@2762
    35
cat <<End >pcre.txt
dvander@2762
    36
-----------------------------------------------------------------------------
dvander@2762
    37
This file contains a concatenation of the PCRE man pages, converted to plain
dvander@2762
    38
text format for ease of searching with a text editor, or for use on systems
dvander@2762
    39
that do not have a man page processor. The small individual files that give
dvander@2762
    40
synopses of each function in the library have not been included. There are
dvander@2762
    41
separate text files for the pcregrep and pcretest commands.
dvander@2762
    42
-----------------------------------------------------------------------------
dvander@2762
    43
dvander@2762
    44
dvander@2762
    45
End
dvander@2762
    46
dvander@2762
    47
echo "Making pcre.txt"
dvander@2762
    48
for file in pcre pcrebuild pcrematching pcreapi pcrecallout pcrecompat \
dvander@2762
    49
            pcrepattern pcresyntax pcrepartial pcreprecompile \
dvander@2762
    50
            pcreperform pcreposix pcrecpp pcresample pcrestack ; do
dvander@2762
    51
  echo "  Processing $file.3"
dvander@2762
    52
  nroff -c -man $file.3 >$file.rawtxt
dvander@2762
    53
  ../CleanTxt <$file.rawtxt >>pcre.txt
dvander@2762
    54
  /bin/rm $file.rawtxt
dvander@2762
    55
  echo "------------------------------------------------------------------------------" >>pcre.txt
dvander@2762
    56
  if [ "$file" != "pcresample" ] ; then
dvander@2762
    57
    echo " " >>pcre.txt
dvander@2762
    58
    echo " " >>pcre.txt
dvander@2762
    59
  fi
dvander@2762
    60
done
dvander@2762
    61
dvander@2762
    62
# The three commands
dvander@2762
    63
for file in pcretest pcregrep pcre-config ; do
dvander@2762
    64
  echo Making $file.txt
dvander@2762
    65
  nroff -c -man $file.1 >$file.rawtxt
dvander@2762
    66
  ../CleanTxt <$file.rawtxt >$file.txt
dvander@2762
    67
  /bin/rm $file.rawtxt
dvander@2762
    68
done
dvander@2762
    69
dvander@2762
    70
dvander@2762
    71
# Make HTML form of the documentation.
dvander@2762
    72
dvander@2762
    73
echo "Making HTML documentation"
dvander@2762
    74
/bin/rm html/*
dvander@2762
    75
cp index.html.src html/index.html
dvander@2762
    76
dvander@2762
    77
for file in *.1 ; do
dvander@2762
    78
  base=`basename $file .1`
dvander@2762
    79
  echo "  Making $base.html"
dvander@2762
    80
  ../132html -toc $base <$file >html/$base.html
dvander@2762
    81
done
dvander@2762
    82
dvander@2762
    83
# Exclude table of contents for function summaries. It seems that expr
dvander@2762
    84
# forces an anchored regex. Also exclude them for small pages that have
dvander@2762
    85
# only one section.
dvander@2762
    86
for file in *.3 ; do
dvander@2762
    87
  base=`basename $file .3`
dvander@2762
    88
  toc=-toc
dvander@2762
    89
  if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
dvander@2762
    90
  if [ "$base" = "pcresample" ] || \
dvander@2762
    91
     [ "$base" = "pcrestack" ]  || \
dvander@2762
    92
     [ "$base" = "pcrecompat" ] || \
dvander@2762
    93
     [ "$base" = "pcreperform" ] ; then
dvander@2762
    94
    toc=""
dvander@2762
    95
  fi
dvander@2762
    96
  echo "  Making $base.html"
dvander@2762
    97
  ../132html $toc $base <$file >html/$base.html
dvander@2762
    98
  if [ $? != 0 ] ; then exit 1; fi
dvander@2762
    99
done
dvander@2762
   100
dvander@2762
   101
# End of documentation processing
dvander@2762
   102
dvander@2762
   103
cd ..
dvander@2762
   104
echo Documentation done
dvander@2762
   105
dvander@2762
   106
# These files are detrailed; do not detrail the test data because there may be
dvander@2762
   107
# significant trailing spaces. The configure files are also omitted from the
dvander@2762
   108
# detrailing.
dvander@2762
   109
dvander@2762
   110
files="\
dvander@2762
   111
  Makefile.am \
dvander@2762
   112
  Makefile.in \
dvander@2762
   113
  configure.ac \
dvander@2762
   114
  README \
dvander@2762
   115
  LICENCE \
dvander@2762
   116
  COPYING \
dvander@2762
   117
  AUTHORS \
dvander@2762
   118
  NEWS \
dvander@2762
   119
  NON-UNIX-USE \
dvander@2762
   120
  INSTALL \
dvander@2762
   121
  132html \
dvander@2762
   122
  CleanTxt \
dvander@2762
   123
  Detrail \
dvander@2762
   124
  ChangeLog \
dvander@2762
   125
  CMakeLists.txt \
dvander@2762
   126
  RunGrepTest \
dvander@2762
   127
  RunTest \
dvander@2762
   128
  RunTest.bat \
dvander@2762
   129
  pcre-config.in \
dvander@2762
   130
  libpcre.pc.in \
dvander@2762
   131
  libpcrecpp.pc.in \
dvander@2762
   132
  config.h.in \
dvander@2762
   133
  pcre_printint.src \
dvander@2762
   134
  pcre_chartables.c.dist \
dvander@2762
   135
  pcredemo.c \
dvander@2762
   136
  pcregrep.c \
dvander@2762
   137
  pcretest.c \
dvander@2762
   138
  dftables.c \
dvander@2762
   139
  pcreposix.c \
dvander@2762
   140
  pcreposix.h \
dvander@2762
   141
  pcre.h.in \
dvander@2762
   142
  pcre_internal.h
dvander@2762
   143
  pcre_compile.c \
dvander@2762
   144
  pcre_config.c \
dvander@2762
   145
  pcre_dfa_exec.c \
dvander@2762
   146
  pcre_exec.c \
dvander@2762
   147
  pcre_fullinfo.c \
dvander@2762
   148
  pcre_get.c \
dvander@2762
   149
  pcre_globals.c \
dvander@2762
   150
  pcre_info.c \
dvander@2762
   151
  pcre_maketables.c \
dvander@2762
   152
  pcre_newline.c \
dvander@2762
   153
  pcre_ord2utf8.c \
dvander@2762
   154
  pcre_refcount.c \
dvander@2762
   155
  pcre_study.c \
dvander@2762
   156
  pcre_tables.c \
dvander@2762
   157
  pcre_try_flipped.c \
dvander@2762
   158
  pcre_ucp_searchfuncs.c \
dvander@2762
   159
  pcre_valid_utf8.c \
dvander@2762
   160
  pcre_version.c \
dvander@2762
   161
  pcre_xclass.c \
dvander@2762
   162
  pcre_scanner.cc \
dvander@2762
   163
  pcre_scanner.h \
dvander@2762
   164
  pcre_scanner_unittest.cc \
dvander@2762
   165
  pcrecpp.cc \
dvander@2762
   166
  pcrecpp.h \
dvander@2762
   167
  pcrecpparg.h.in \
dvander@2762
   168
  pcrecpp_unittest.cc \
dvander@2762
   169
  pcre_stringpiece.cc \
dvander@2762
   170
  pcre_stringpiece.h.in \
dvander@2762
   171
  pcre_stringpiece_unittest.cc \
dvander@2762
   172
  perltest.pl \
dvander@2762
   173
  ucp.h \
dvander@2762
   174
  ucpinternal.h \
dvander@2762
   175
  ucptable.h \
dvander@2762
   176
  makevp.bat \
dvander@2762
   177
  pcre.def \
dvander@2762
   178
  libpcre.def \
dvander@2762
   179
  libpcreposix.def"
dvander@2762
   180
dvander@2762
   181
echo Detrailing
dvander@2762
   182
./Detrail $files doc/p* doc/html/*
dvander@2762
   183
dvander@2762
   184
echo Doing basic configure to get default pcre.h and config.h
dvander@2762
   185
# This is in case the caller has set aliases (as I do - PH)
dvander@2762
   186
unset cp ls mv rm
dvander@2762
   187
./configure >/dev/null
dvander@2762
   188
dvander@2762
   189
echo Converting pcre.h and config.h to generic forms
dvander@2762
   190
cp -f pcre.h pcre.h.generic
dvander@2762
   191
dvander@2762
   192
perl <<'END'
dvander@2762
   193
  open(IN, "<config.h") || die "Can't open config.h: $!\n";
dvander@2762
   194
  open(OUT, ">config.h.generic") || die "Can't open config.h.generic: $!\n";
dvander@2762
   195
  while (<IN>)
dvander@2762
   196
    {
dvander@2762
   197
    if (/^#define\s(?!PACKAGE)(\w+)/)
dvander@2762
   198
      {
dvander@2762
   199
      print OUT "#ifndef $1\n";
dvander@2762
   200
      print OUT;
dvander@2762
   201
      print OUT "#endif\n";
dvander@2762
   202
      }
dvander@2762
   203
    else
dvander@2762
   204
      {
dvander@2762
   205
      print OUT;
dvander@2762
   206
      }
dvander@2762
   207
    }
dvander@2762
   208
  close IN;
dvander@2762
   209
  close OUT;
dvander@2762
   210
END
dvander@2762
   211
dvander@2762
   212
echo Done
dvander@2762
   213
dvander@2762
   214
#End