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