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

Diff of /code/trunk/README

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

revision 63 by nigel, Sat Feb 24 21:40:03 2007 UTC revision 1342 by ph10, Mon Jul 1 12:28:12 2013 UTC
# Line 1  Line 1 
1  README file for PCRE (Perl-compatible regular expression library)  README file for PCRE (Perl-compatible regular expression library)
2  -----------------------------------------------------------------  -----------------------------------------------------------------
3    
4  The latest release of PCRE is always available from  The latest release of PCRE is always available in three alternative formats
5    from:
6    
7    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.gz    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.gz
8      ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.bz2
9      ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.zip
10    
11    There is a mailing list for discussion about the development of PCRE at
12    
13      pcre-dev@exim.org
14    
15  Please read the NEWS file if you are upgrading from a previous release.  Please read the NEWS file if you are upgrading from a previous release.
16    The contents of this README file are:
17    
18  PCRE has its own native API, but a set of "wrapper" functions that are based on    The PCRE APIs
19  the POSIX API are also supplied in the library libpcreposix. Note that this    Documentation for PCRE
20  just provides a POSIX calling interface to PCRE: the regular expressions    Contributions by users of PCRE
21  themselves still follow Perl syntax and semantics. The header file    Building PCRE on non-Unix-like systems
22  for the POSIX-style functions is called pcreposix.h. The official POSIX name is    Building PCRE without using autotools
23  regex.h, but I didn't want to risk possible problems with existing files of    Building PCRE using autotools
24  that name by distributing it that way. To use it with an existing program that    Retrieving configuration information
25  uses the POSIX API, it will have to be renamed or pointed at by a link.    Shared libraries
26      Cross-compiling using autotools
27      Using HP's ANSI C++ compiler (aCC)
28      Compiling in Tru64 using native compilers
29      Using Sun's compilers for Solaris
30      Using PCRE from MySQL
31      Making new tarballs
32      Testing PCRE
33      Character tables
34      File manifest
35    
36    
37    The PCRE APIs
38    -------------
39    
40    PCRE is written in C, and it has its own API. There are three sets of
41    functions, one for the 8-bit library, which processes strings of bytes, one for
42    the 16-bit library, which processes strings of 16-bit values, and one for the
43    32-bit library, which processes strings of 32-bit values. The distribution also
44    includes a set of C++ wrapper functions (see the pcrecpp man page for details),
45    courtesy of Google Inc., which can be used to call the 8-bit PCRE library from
46    C++.
47    
48    In addition, there is a set of C wrapper functions (again, just for the 8-bit
49    library) that are based on the POSIX regular expression API (see the pcreposix
50    man page). These end up in the library called libpcreposix. Note that this just
51    provides a POSIX calling interface to PCRE; the regular expressions themselves
52    still follow Perl syntax and semantics. The POSIX API is restricted, and does
53    not give full access to all of PCRE's facilities.
54    
55    The header file for the POSIX-style functions is called pcreposix.h. The
56    official POSIX name is regex.h, but I did not want to risk possible problems
57    with existing files of that name by distributing it that way. To use PCRE with
58    an existing program that uses the POSIX API, pcreposix.h will have to be
59    renamed or pointed at by a link.
60    
61    If you are using the POSIX interface to PCRE and there is already a POSIX regex
62    library installed on your system, as well as worrying about the regex.h header
63    file (as mentioned above), you must also take care when linking programs to
64    ensure that they link with PCRE's libpcreposix library. Otherwise they may pick
65    up the POSIX functions of the same name from the other library.
66    
67    One way of avoiding this confusion is to compile PCRE with the addition of
68    -Dregcomp=PCREregcomp (and similarly for the other POSIX functions) to the
69    compiler flags (CFLAGS if you are using "configure" -- see below). This has the
70    effect of renaming the functions so that the names no longer clash. Of course,
71    you have to do the same thing for your applications, or write them using the
72    new names.
73    
74    
75    Documentation for PCRE
76    ----------------------
77    
78    If you install PCRE in the normal way on a Unix-like system, you will end up
79    with a set of man pages whose names all start with "pcre". The one that is just
80    called "pcre" lists all the others. In addition to these man pages, the PCRE
81    documentation is supplied in two other forms:
82    
83      1. There are files called doc/pcre.txt, doc/pcregrep.txt, and
84         doc/pcretest.txt in the source distribution. The first of these is a
85         concatenation of the text forms of all the section 3 man pages except
86         those that summarize individual functions. The other two are the text
87         forms of the section 1 man pages for the pcregrep and pcretest commands.
88         These text forms are provided for ease of scanning with text editors or
89         similar tools. They are installed in <prefix>/share/doc/pcre, where
90         <prefix> is the installation prefix (defaulting to /usr/local).
91    
92      2. A set of files containing all the documentation in HTML form, hyperlinked
93         in various ways, and rooted in a file called index.html, is distributed in
94         doc/html and installed in <prefix>/share/doc/pcre/html.
95    
96    Users of PCRE have contributed files containing the documentation for various
97    releases in CHM format. These can be found in the Contrib directory of the FTP
98    site (see next section).
99    
100    
101  Contributions by users of PCRE  Contributions by users of PCRE
# Line 24  You can find contributions from PCRE use Line 105  You can find contributions from PCRE use
105    
106    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib
107    
108  where there is also a README file giving brief descriptions of what they are.  There is a README file giving brief descriptions of what they are. Some are
109  Several of them provide support for compiling PCRE on various flavours of  complete in themselves; others are pointers to URLs containing relevant files.
110  Windows systems (I myself do not use Windows). Some are complete in themselves;  Some of this material is likely to be well out-of-date. Several of the earlier
111  others are pointers to URLs containing relevant files.  contributions provided support for compiling PCRE on various flavours of
112    Windows (I myself do not use Windows). Nowadays there is more Windows support
113    in the standard distribution, so these contibutions have been archived.
114    
115    
116    Building PCRE on non-Unix-like systems
117    --------------------------------------
118    
119    For a non-Unix-like system, please read the comments in the file
120    NON-AUTOTOOLS-BUILD, though if your system supports the use of "configure" and
121    "make" you may be able to build PCRE using autotools in the same way as for
122    many Unix-like systems.
123    
124  Building PCRE on a Unix-like system  PCRE can also be configured using the GUI facility provided by CMake's
125  -----------------------------------  cmake-gui command. This creates Makefiles, solution files, etc. The file
126    NON-AUTOTOOLS-BUILD has information about CMake.
127  To build PCRE on a Unix-like system, first run the "configure" command from the  
128  PCRE distribution directory, with your current directory set to the directory  PCRE has been compiled on many different operating systems. It should be
129  where you want the files to be created. This command is a standard GNU  straightforward to build PCRE on any system that has a Standard C compiler and
130  "autoconf" configuration script, for which generic instructions are supplied in  library, because it uses only Standard C functions.
131  INSTALL.  
132    
133    Building PCRE without using autotools
134    -------------------------------------
135    
136    The use of autotools (in particular, libtool) is problematic in some
137    environments, even some that are Unix or Unix-like. See the NON-AUTOTOOLS-BUILD
138    file for ways of building PCRE without using autotools.
139    
140    
141    Building PCRE using autotools
142    -----------------------------
143    
144    If you are using HP's ANSI C++ compiler (aCC), please see the special note
145    in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
146    
147    The following instructions assume the use of the widely used "configure; make;
148    make install" (autotools) process.
149    
150    To build PCRE on system that supports autotools, first run the "configure"
151    command from the PCRE distribution directory, with your current directory set
152    to the directory where you want the files to be created. This command is a
153    standard GNU "autoconf" configuration script, for which generic instructions
154    are supplied in the file INSTALL.
155    
156  Most commonly, people build PCRE within its own distribution directory, and in  Most commonly, people build PCRE within its own distribution directory, and in
157  this case, on many systems, just running "./configure" is sufficient, but the  this case, on many systems, just running "./configure" is sufficient. However,
158  usual methods of changing standard defaults are available. For example,  the usual methods of changing standard defaults are available. For example:
159    
160  CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local  CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local
161    
162  specifies that the C compiler should be run with the flags '-O2 -Wall' instead  This command specifies that the C compiler should be run with the flags '-O2
163  of the default, and that "make install" should install PCRE under /opt/local  -Wall' instead of the default, and that "make install" should install PCRE
164  instead of the default /usr/local.  under /opt/local instead of the default /usr/local.
165    
166  If you want to build in a different directory, just run "configure" with that  If you want to build in a different directory, just run "configure" with that
167  directory as current. For example, suppose you have unpacked the PCRE source  directory as current. For example, suppose you have unpacked the PCRE source
# Line 56  into /source/pcre/pcre-xxx, but you want Line 170  into /source/pcre/pcre-xxx, but you want
170  cd /build/pcre/pcre-xxx  cd /build/pcre/pcre-xxx
171  /source/pcre/pcre-xxx/configure  /source/pcre/pcre-xxx/configure
172    
173    PCRE is written in C and is normally compiled as a C library. However, it is
174    possible to build it as a C++ library, though the provided building apparatus
175    does not have any features to support this.
176    
177  There are some optional features that can be included or omitted from the PCRE  There are some optional features that can be included or omitted from the PCRE
178  library. You can read more about them in the pcrebuild man page.  library. They are also documented in the pcrebuild man page.
179    
180  . If you want to make use of the support for UTF-8 character strings in PCRE,  . By default, both shared and static libraries are built. You can change this
181    you must add --enable-utf8 to the "configure" command. Without it, the code    by adding one of these options to the "configure" command:
182    for handling UTF-8 is not included in the library. (Even when included, it  
183    still has to be enabled by an option at run time.)    --disable-shared
184      --disable-static
185  . You can build PCRE to recognized CR or NL as the newline character, instead  
186    of whatever your compiler uses for "\n", by adding --newline-is-cr or    (See also "Shared libraries on Unix-like systems" below.)
187    --newline-is-nl to the "configure" command, respectively. Only do this if you  
188    really understand what you are doing. On traditional Unix-like systems, the  . By default, only the 8-bit library is built. If you add --enable-pcre16 to
189    newline character is NL.    the "configure" command, the 16-bit library is also built. If you add
190      --enable-pcre32 to the "configure" command, the 32-bit library is also built.
191      If you want only the 16-bit or 32-bit library, use --disable-pcre8 to disable
192      building the 8-bit library.
193    
194    . If you are building the 8-bit library and want to suppress the building of
195      the C++ wrapper library, you can add --disable-cpp to the "configure"
196      command. Otherwise, when "configure" is run without --disable-pcre8, it will
197      try to find a C++ compiler and C++ header files, and if it succeeds, it will
198      try to build the C++ wrapper.
199    
200    . If you want to include support for just-in-time compiling, which can give
201      large performance improvements on certain platforms, add --enable-jit to the
202      "configure" command. This support is available only for certain hardware
203      architectures. If you try to enable it on an unsupported architecture, there
204      will be a compile time error.
205    
206    . When JIT support is enabled, pcregrep automatically makes use of it, unless
207      you add --disable-pcregrep-jit to the "configure" command.
208    
209    . If you want to make use of the support for UTF-8 Unicode character strings in
210      the 8-bit library, or UTF-16 Unicode character strings in the 16-bit library,
211      or UTF-32 Unicode character strings in the 32-bit library, you must add
212      --enable-utf to the "configure" command. Without it, the code for handling
213      UTF-8, UTF-16 and UTF-8 is not included in the relevant library. Even
214      when --enable-utf is included, the use of a UTF encoding still has to be
215      enabled by an option at run time. When PCRE is compiled with this option, its
216      input can only either be ASCII or UTF-8/16/32, even when running on EBCDIC
217      platforms. It is not possible to use both --enable-utf and --enable-ebcdic at
218      the same time.
219    
220    . There are no separate options for enabling UTF-8, UTF-16 and UTF-32
221      independently because that would allow ridiculous settings such as requesting
222      UTF-16 support while building only the 8-bit library. However, the option
223      --enable-utf8 is retained for backwards compatibility with earlier releases
224      that did not support 16-bit or 32-bit character strings. It is synonymous with
225      --enable-utf. It is not possible to configure one library with UTF support
226      and the other without in the same configuration.
227    
228    . If, in addition to support for UTF-8/16/32 character strings, you want to
229      include support for the \P, \p, and \X sequences that recognize Unicode
230      character properties, you must add --enable-unicode-properties to the
231      "configure" command. This adds about 30K to the size of the library (in the
232      form of a property table); only the basic two-letter properties such as Lu
233      are supported.
234    
235    . You can build PCRE to recognize either CR or LF or the sequence CRLF or any
236      of the preceding, or any of the Unicode newline sequences as indicating the
237      end of a line. Whatever you specify at build time is the default; the caller
238      of PCRE can change the selection at run time. The default newline indicator
239      is a single LF character (the Unix standard). You can specify the default
240      newline indicator by adding --enable-newline-is-cr or --enable-newline-is-lf
241      or --enable-newline-is-crlf or --enable-newline-is-anycrlf or
242      --enable-newline-is-any to the "configure" command, respectively.
243    
244      If you specify --enable-newline-is-cr or --enable-newline-is-crlf, some of
245      the standard tests will fail, because the lines in the test files end with
246      LF. Even if the files are edited to change the line endings, there are likely
247      to be some failures. With --enable-newline-is-anycrlf or
248      --enable-newline-is-any, many tests should succeed, but there may be some
249      failures.
250    
251    . By default, the sequence \R in a pattern matches any Unicode line ending
252      sequence. This is independent of the option specifying what PCRE considers to
253      be the end of a line (see above). However, the caller of PCRE can restrict \R
254      to match only CR, LF, or CRLF. You can make this the default by adding
255      --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
256    
257  . When called via the POSIX interface, PCRE uses malloc() to get additional  . When called via the POSIX interface, PCRE uses malloc() to get additional
258    storage for processing capturing parentheses if there are more than 10 of    storage for processing capturing parentheses if there are more than 10 of
259    them. You can increase this threshold by setting, for example,    them in a pattern. You can increase this threshold by setting, for example,
260    
261    --with-posix-malloc-threshold=20    --with-posix-malloc-threshold=20
262    
263    on the "configure" command.    on the "configure" command.
264    
265  . PCRE has a counter which can be set to limit the amount of resources it uses.  . PCRE has a counter that can be set to limit the amount of resources it uses.
266    If the limit is exceeded during a match, the match fails. The default is ten    If the limit is exceeded during a match, the match fails. The default is ten
267    million. You can change the default by setting, for example,    million. You can change the default by setting, for example,
268    
269    --with-match-limit=500000    --with-match-limit=500000
270    
271    on the "configure" command. This is just the default; individual calls to    on the "configure" command. This is just the default; individual calls to
272    pcre_exec() can supply their own value. There is discussion on the pcreapi    pcre_exec() can supply their own value. There is more discussion on the
273    man page.    pcreapi man page.
274    
275    . There is a separate counter that limits the depth of recursive function calls
276      during a matching process. This also has a default of ten million, which is
277      essentially "unlimited". You can change the default by setting, for example,
278    
279      --with-match-limit-recursion=500000
280    
281      Recursive function calls use up the runtime stack; running out of stack can
282      cause programs to crash in strange ways. There is a discussion about stack
283      sizes in the pcrestack man page.
284    
285  . The default maximum compiled pattern size is around 64K. You can increase  . The default maximum compiled pattern size is around 64K. You can increase
286    this by adding --with-link-size=3 to the "configure" command. You can    this by adding --with-link-size=3 to the "configure" command. In the 8-bit
287    increase it even more by setting --with-link-size=4, but this is unlikely    library, PCRE then uses three bytes instead of two for offsets to different
288    ever to be necessary. If you build PCRE with an increased link size, test 2    parts of the compiled pattern. In the 16-bit library, --with-link-size=3 is
289    (and 5 if you are using UTF-8) will fail. Part of the output of these tests    the same as --with-link-size=4, which (in both libraries) uses four-byte
290    is a representation of the compiled pattern, and this changes with the link    offsets. Increasing the internal link size reduces performance. In the 32-bit
291    size.    library, the only supported link size is 4.
292    
293  The "configure" script builds five files:  . You can build PCRE so that its internal match() function that is called from
294      pcre_exec() does not call itself recursively. Instead, it uses memory blocks
295  . libtool is a script that builds shared and/or static libraries    obtained from the heap via the special functions pcre_stack_malloc() and
296  . Makefile is built by copying Makefile.in and making substitutions.    pcre_stack_free() to save data that would otherwise be saved on the stack. To
297  . config.h is built by copying config.in and making substitutions.    build PCRE like this, use
298  . pcre-config is built by copying pcre-config.in and making substitutions.  
299  . RunTest is a script for running tests    --disable-stack-for-recursion
300    
301  Once "configure" has run, you can run "make". It builds two libraries called    on the "configure" command. PCRE runs more slowly in this mode, but it may be
302  libpcre and libpcreposix, a test program called pcretest, and the pcregrep    necessary in environments with limited stack sizes. This applies only to the
303  command. You can use "make install" to copy these, the public header files    normal execution of the pcre_exec() function; if JIT support is being
304  pcre.h and pcreposix.h, and the man pages to appropriate live directories on    successfully used, it is not relevant. Equally, it does not apply to
305  your system, in the normal way.    pcre_dfa_exec(), which does not use deeply nested recursion. There is a
306      discussion about stack sizes in the pcrestack man page.
307  Running "make install" also installs the command pcre-config, which can be used  
308  to recall information about the PCRE configuration and installation. For  . For speed, PCRE uses four tables for manipulating and identifying characters
309  example,    whose code point values are less than 256. By default, it uses a set of
310      tables for ASCII encoding that is part of the distribution. If you specify
311    
312      --enable-rebuild-chartables
313    
314      a program called dftables is compiled and run in the default C locale when
315      you obey "make". It builds a source file called pcre_chartables.c. If you do
316      not specify this option, pcre_chartables.c is created as a copy of
317      pcre_chartables.c.dist. See "Character tables" below for further information.
318    
319    . It is possible to compile PCRE for use on systems that use EBCDIC as their
320      character code (as opposed to ASCII/Unicode) by specifying
321    
322      --enable-ebcdic
323    
324      This automatically implies --enable-rebuild-chartables (see above). However,
325      when PCRE is built this way, it always operates in EBCDIC. It cannot support
326      both EBCDIC and UTF-8/16/32. There is a second option, --enable-ebcdic-nl25,
327      which specifies that the code value for the EBCDIC NL character is 0x25
328      instead of the default 0x15.
329    
330    . In environments where valgrind is installed, if you specify
331    
332      --enable-valgrind
333    
334      PCRE will use valgrind annotations to mark certain memory regions as
335      unaddressable. This allows it to detect invalid memory accesses, and is
336      mostly useful for debugging PCRE itself.
337    
338    . In environments where the gcc compiler is used and lcov version 1.6 or above
339      is installed, if you specify
340    
341      --enable-coverage
342    
343      the build process implements a code coverage report for the test suite. The
344      report is generated by running "make coverage". If ccache is installed on
345      your system, it must be disabled when building PCRE for coverage reporting.
346      You can do this by setting the environment variable CCACHE_DISABLE=1 before
347      running "make" to build PCRE. There is more information about coverage
348      reporting in the "pcrebuild" documentation.
349    
350    . The pcregrep program currently supports only 8-bit data files, and so
351      requires the 8-bit PCRE library. It is possible to compile pcregrep to use
352      libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by
353      specifying one or both of
354    
355      --enable-pcregrep-libz
356      --enable-pcregrep-libbz2
357    
358      Of course, the relevant libraries must be installed on your system.
359    
360    . The default size of internal buffer used by pcregrep can be set by, for
361      example:
362    
363      --with-pcregrep-bufsize=50K
364    
365      The default value is 20K.
366    
367    . It is possible to compile pcretest so that it links with the libreadline
368      or libedit libraries, by specifying, respectively,
369    
370      --enable-pcretest-libreadline or --enable-pcretest-libedit
371    
372      If this is done, when pcretest's input is from a terminal, it reads it using
373      the readline() function. This provides line-editing and history facilities.
374      Note that libreadline is GPL-licenced, so if you distribute a binary of
375      pcretest linked in this way, there may be licensing issues. These can be
376      avoided by linking with libedit (which has a BSD licence) instead.
377    
378      Enabling libreadline causes the -lreadline option to be added to the pcretest
379      build. In many operating environments with a sytem-installed readline
380      library this is sufficient. However, in some environments (e.g. if an
381      unmodified distribution version of readline is in use), it may be necessary
382      to specify something like LIBS="-lncurses" as well. This is because, to quote
383      the readline INSTALL, "Readline uses the termcap functions, but does not link
384      with the termcap or curses library itself, allowing applications which link
385      with readline the to choose an appropriate library." If you get error
386      messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto,
387      this is the problem, and linking with the ncurses library should fix it.
388    
389    The "configure" script builds the following files for the basic C library:
390    
391    . Makefile             the makefile that builds the library
392    . config.h             build-time configuration options for the library
393    . pcre.h               the public PCRE header file
394    . pcre-config          script that shows the building settings such as CFLAGS
395                             that were set for "configure"
396    . libpcre.pc         ) data for the pkg-config command
397    . libpcre16.pc       )
398    . libpcre32.pc       )
399    . libpcreposix.pc    )
400    . libtool              script that builds shared and/or static libraries
401    
402    Versions of config.h and pcre.h are distributed in the PCRE tarballs under the
403    names config.h.generic and pcre.h.generic. These are provided for those who
404    have to built PCRE without using "configure" or CMake. If you use "configure"
405    or CMake, the .generic versions are not used.
406    
407    When building the 8-bit library, if a C++ compiler is found, the following
408    files are also built:
409    
410    . libpcrecpp.pc        data for the pkg-config command
411    . pcrecpparg.h         header file for calling PCRE via the C++ wrapper
412    . pcre_stringpiece.h   header for the C++ "stringpiece" functions
413    
414    The "configure" script also creates config.status, which is an executable
415    script that can be run to recreate the configuration, and config.log, which
416    contains compiler output from tests that "configure" runs.
417    
418    Once "configure" has run, you can run "make". This builds the the libraries
419    libpcre, libpcre16 and/or libpcre32, and a test program called pcretest. If you
420    enabled JIT support with --enable-jit, a test program called pcre_jit_test is
421    built as well.
422    
423    If the 8-bit library is built, libpcreposix and the pcregrep command are also
424    built, and if a C++ compiler was found on your system, and you did not disable
425    it with --disable-cpp, "make" builds the C++ wrapper library, which is called
426    libpcrecpp, as well as some test programs called pcrecpp_unittest,
427    pcre_scanner_unittest, and pcre_stringpiece_unittest.
428    
429    The command "make check" runs all the appropriate tests. Details of the PCRE
430    tests are given below in a separate section of this document.
431    
432    You can use "make install" to install PCRE into live directories on your
433    system. The following are installed (file names are all relative to the
434    <prefix> that is set when "configure" is run):
435    
436      Commands (bin):
437        pcretest
438        pcregrep (if 8-bit support is enabled)
439        pcre-config
440    
441      Libraries (lib):
442        libpcre16     (if 16-bit support is enabled)
443        libpcre32     (if 32-bit support is enabled)
444        libpcre       (if 8-bit support is enabled)
445        libpcreposix  (if 8-bit support is enabled)
446        libpcrecpp    (if 8-bit and C++ support is enabled)
447    
448      Configuration information (lib/pkgconfig):
449        libpcre16.pc
450        libpcre32.pc
451        libpcre.pc
452        libpcreposix.pc
453        libpcrecpp.pc (if C++ support is enabled)
454    
455      Header files (include):
456        pcre.h
457        pcreposix.h
458        pcre_scanner.h      )
459        pcre_stringpiece.h  ) if C++ support is enabled
460        pcrecpp.h           )
461        pcrecpparg.h        )
462    
463      Man pages (share/man/man{1,3}):
464        pcregrep.1
465        pcretest.1
466        pcre-config.1
467        pcre.3
468        pcre*.3 (lots more pages, all starting "pcre")
469    
470      HTML documentation (share/doc/pcre/html):
471        index.html
472        *.html (lots more pages, hyperlinked from index.html)
473    
474      Text file documentation (share/doc/pcre):
475        AUTHORS
476        COPYING
477        ChangeLog
478        LICENCE
479        NEWS
480        README
481        pcre.txt         (a concatenation of the man(3) pages)
482        pcretest.txt     the pcretest man page
483        pcregrep.txt     the pcregrep man page
484        pcre-config.txt  the pcre-config man page
485    
486    If you want to remove PCRE from your system, you can run "make uninstall".
487    This removes all the files that "make install" installed. However, it does not
488    remove any directories, because these are often shared with other programs.
489    
490    
491    Retrieving configuration information
492    ------------------------------------
493    
494    Running "make install" installs the command pcre-config, which can be used to
495    recall information about the PCRE configuration and installation. For example:
496    
497    pcre-config --version    pcre-config --version
498    
499  prints the version number, and  prints the version number, and
500    
501   pcre-config --libs    pcre-config --libs
502    
503  outputs information about where the library is installed. This command can be  outputs information about where the library is installed. This command can be
504  included in makefiles for programs that use PCRE, saving the programmer from  included in makefiles for programs that use PCRE, saving the programmer from
505  having to remember too many details.  having to remember too many details.
506    
507    The pkg-config command is another system for saving and retrieving information
508    about installed libraries. Instead of separate commands for each library, a
509    single command is used. For example:
510    
511  Shared libraries on Unix-like systems    pkg-config --cflags pcre
 -------------------------------------  
512    
513  The default distribution builds PCRE as two shared libraries and two static  The data is held in *.pc files that are installed in a directory called
514  libraries, as long as the operating system supports shared libraries. Shared  <prefix>/lib/pkgconfig.
515  library support relies on the "libtool" script which is built as part of the  
516    
517    Shared libraries
518    ----------------
519    
520    The default distribution builds PCRE as shared libraries and static libraries,
521    as long as the operating system supports shared libraries. Shared library
522    support relies on the "libtool" script which is built as part of the
523  "configure" process.  "configure" process.
524    
525  The libtool script is used to compile and link both shared and static  The libtool script is used to compile and link both shared and static
# Line 139  built. The programs pcretest and pcregre Line 528  built. The programs pcretest and pcregre
528  libraries (by means of wrapper scripts in the case of shared libraries). When  libraries (by means of wrapper scripts in the case of shared libraries). When
529  you use "make install" to install shared libraries, pcregrep and pcretest are  you use "make install" to install shared libraries, pcregrep and pcretest are
530  automatically re-built to use the newly installed shared libraries before being  automatically re-built to use the newly installed shared libraries before being
531  installed themselves. However, the versions left in the source directory still  installed themselves. However, the versions left in the build directory still
532  use the uninstalled libraries.  use the uninstalled libraries.
533    
534  To build PCRE using static libraries only you must use --disable-shared when  To build PCRE using static libraries only you must use --disable-shared when
535  configuring it. For example  configuring it. For example:
536    
537  ./configure --prefix=/usr/gnu --disable-shared  ./configure --prefix=/usr/gnu --disable-shared
538    
# Line 151  Then run "make" in the usual way. Simila Line 540  Then run "make" in the usual way. Simila
540  build only shared libraries.  build only shared libraries.
541    
542    
543  Cross-compiling on a Unix-like system  Cross-compiling using autotools
544  -------------------------------------  -------------------------------
545    
546  You can specify CC and CFLAGS in the normal way to the "configure" command, in  You can specify CC and CFLAGS in the normal way to the "configure" command, in
547  order to cross-compile PCRE for some other host. However, during the building  order to cross-compile PCRE for some other host. However, you should NOT
548  process, the dftables.c source file is compiled *and run* on the local host, in  specify --enable-rebuild-chartables, because if you do, the dftables.c source
549  order to generate the default character tables (the chartables.c file). It  file is compiled and run on the local host, in order to generate the inbuilt
550  therefore needs to be compiled with the local compiler, not the cross compiler.  character tables (the pcre_chartables.c file). This will probably not work,
551  You can do this by specifying HOST_CC (and if necessary HOST_CFLAGS) when  because dftables.c needs to be compiled with the local compiler, not the cross
552  calling the "configure" command. If they are not specified, they default to the  compiler.
553  values of CC and CFLAGS.  
554    When --enable-rebuild-chartables is not specified, pcre_chartables.c is created
555    by making a copy of pcre_chartables.c.dist, which is a default set of tables
556  Building on non-Unix systems  that assumes ASCII code. Cross-compiling with the default tables should not be
557  ----------------------------  a problem.
558    
559  For a non-Unix system, read the comments in the file NON-UNIX-USE. PCRE has  If you need to modify the character tables when cross-compiling, you should
560  been compiled on Windows systems and on Macintoshes, but I don't know the  move pcre_chartables.c.dist out of the way, then compile dftables.c by hand and
561  details because I don't use those systems. It should be straightforward to  run it on the local host to make a new version of pcre_chartables.c.dist.
562  build PCRE on any system that has a Standard C compiler, because it uses only  Then when you cross-compile PCRE this new version of the tables will be used.
563  Standard C functions.  
564    
565    Using HP's ANSI C++ compiler (aCC)
566    ----------------------------------
567    
568    Unless C++ support is disabled by specifying the "--disable-cpp" option of the
569    "configure" script, you must include the "-AA" option in the CXXFLAGS
570    environment variable in order for the C++ components to compile correctly.
571    
572    Also, note that the aCC compiler on PA-RISC platforms may have a defect whereby
573    needed libraries fail to get included when specifying the "-AA" compiler
574    option. If you experience unresolved symbols when linking the C++ programs,
575    use the workaround of specifying the following environment variable prior to
576    running the "configure" script:
577    
578      CXXLDFLAGS="-lstd_v2 -lCsup_v2"
579    
580    
581    Compiling in Tru64 using native compilers
582    -----------------------------------------
583    
584    The following error may occur when compiling with native compilers in the Tru64
585    operating system:
586    
587      CXX    libpcrecpp_la-pcrecpp.lo
588    cxx: Error: /usr/lib/cmplrs/cxx/V7.1-006/include/cxx/iosfwd, line 58: #error
589              directive: "cannot include iosfwd -- define __USE_STD_IOSTREAM to
590              override default - see section 7.1.2 of the C++ Using Guide"
591    #error "cannot include iosfwd -- define __USE_STD_IOSTREAM to override default
592    - see section 7.1.2 of the C++ Using Guide"
593    
594    This may be followed by other errors, complaining that 'namespace "std" has no
595    member'. The solution to this is to add the line
596    
597    #define __USE_STD_IOSTREAM 1
598    
599    to the config.h file.
600    
601    
602    Using Sun's compilers for Solaris
603    ---------------------------------
604    
605    A user reports that the following configurations work on Solaris 9 sparcv9 and
606    Solaris 9 x86 (32-bit):
607    
608      Solaris 9 sparcv9: ./configure --disable-cpp CC=/bin/cc CFLAGS="-m64 -g"
609      Solaris 9 x86:     ./configure --disable-cpp CC=/bin/cc CFLAGS="-g"
610    
611    
612    Using PCRE from MySQL
613    ---------------------
614    
615    On systems where both PCRE and MySQL are installed, it is possible to make use
616    of PCRE from within MySQL, as an alternative to the built-in pattern matching.
617    There is a web page that tells you how to do this:
618    
619      http://www.mysqludf.org/lib_mysqludf_preg/index.php
620    
621    
622    Making new tarballs
623    -------------------
624    
625    The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and
626    zip formats. The command "make distcheck" does the same, but then does a trial
627    build of the new distribution to ensure that it works.
628    
629    If you have modified any of the man page sources in the doc directory, you
630    should first run the PrepareRelease script before making a distribution. This
631    script creates the .txt and HTML forms of the documentation from the man pages.
632    
633    
634  Testing PCRE  Testing PCRE
635  ------------  ------------
636    
637  To test PCRE on a Unix system, run the RunTest script that is created by the  To test the basic PCRE library on a Unix-like system, run the RunTest script.
638  configuring process. (This can also be run by "make runtest", "make check", or  There is another script called RunGrepTest that tests the options of the
639  "make test".) For other systems, see the instruction in NON-UNIX-USE.  pcregrep command. If the C++ wrapper library is built, three test programs
640    called pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest
641  The script runs the pcretest test program (which is documented in its own man  are also built. When JIT support is enabled, another test program called
642  page) on each of the testinput files (in the testdata directory) in turn,  pcre_jit_test is built.
643  and compares the output with the contents of the corresponding testoutput file.  
644  A file called testtry is used to hold the output from pcretest. To run pcretest  Both the scripts and all the program tests are run if you obey "make check" or
645  on just one of the test files, give its number as an argument to RunTest, for  "make test". For other environments, see the instructions in
646  example:  NON-AUTOTOOLS-BUILD.
647    
648    RunTest 2  The RunTest script runs the pcretest test program (which is documented in its
649    own man page) on each of the relevant testinput files in the testdata
650  The first file can also be fed directly into the perltest script to check that  directory, and compares the output with the contents of the corresponding
651  Perl gives the same results. The only difference you should see is in the first  testoutput files. RunTest uses a file called testtry to hold the main output
652  few lines, where the Perl version is given instead of the PCRE version.  from pcretest. Other files whose names begin with "test" are used as working
653    files in some tests.
654    
655    Some tests are relevant only when certain build-time options were selected. For
656    example, the tests for UTF-8/16/32 support are run only if --enable-utf was
657    used. RunTest outputs a comment when it skips a test.
658    
659    Many of the tests that are not skipped are run up to three times. The second
660    run forces pcre_study() to be called for all patterns except for a few in some
661    tests that are marked "never study" (see the pcretest program for how this is
662    done). If JIT support is available, the non-DFA tests are run a third time,
663    this time with a forced pcre_study() with the PCRE_STUDY_JIT_COMPILE option.
664    This testing can be suppressed by putting "nojit" on the RunTest command line.
665    
666    The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit
667    libraries that are enabled. If you want to run just one set of tests, call
668    RunTest with either the -8, -16 or -32 option.
669    
670    If valgrind is installed, you can run the tests under it by putting "valgrind"
671    on the RunTest command line. To run pcretest on just one or more specific test
672    files, give their numbers as arguments to RunTest, for example:
673    
674      RunTest 2 7 11
675    
676    You can also specify ranges of tests such as 3-6 or 3- (meaning 3 to the
677    end), or a number preceded by ~ to exclude a test. For example:
678    
679      Runtest 3-15 ~10
680    
681    This runs tests 3 to 15, excluding test 10, and just ~13 runs all the tests
682    except test 13. Whatever order the arguments are in, the tests are always run
683    in numerical order.
684    
685    You can also call RunTest with the single argument "list" to cause it to output
686    a list of tests.
687    
688    The first test file can be fed directly into the perltest.pl script to check
689    that Perl gives the same results. The only difference you should see is in the
690    first few lines, where the Perl version is given instead of the PCRE version.
691    
692  The second set of tests check pcre_fullinfo(), pcre_info(), pcre_study(),  The second set of tests check pcre_fullinfo(), pcre_study(),
693  pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error  pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error
694  detection, and run-time flags that are specific to PCRE, as well as the POSIX  detection, and run-time flags that are specific to PCRE, as well as the POSIX
695  wrapper API. It also uses the debugging flag to check some of the internals of  wrapper API. It also uses the debugging flags to check some of the internals of
696  pcre_compile().  pcre_compile().
697    
698  If you build PCRE with a locale setting that is not the standard C locale, the  If you build PCRE with a locale setting that is not the standard C locale, the
# Line 212  bug in PCRE. Line 707  bug in PCRE.
707    
708  The third set of tests checks pcre_maketables(), the facility for building a  The third set of tests checks pcre_maketables(), the facility for building a
709  set of character tables for a specific locale and using them instead of the  set of character tables for a specific locale and using them instead of the
710  default tables. The tests make use of the "fr" (French) locale. Before running  default tables. The tests make use of the "fr_FR" (French) locale. Before
711  the test, the script checks for the presence of this locale by running the  running the test, the script checks for the presence of this locale by running
712  "locale" command. If that command fails, or if it doesn't include "fr" in the  the "locale" command. If that command fails, or if it doesn't include "fr_FR"
713  list of available locales, the third test cannot be run, and a comment is  in the list of available locales, the third test cannot be run, and a comment
714  output to say why. If running this test produces instances of the error  is output to say why. If running this test produces instances of the error
715    
716    ** Failed to set locale "fr"    ** Failed to set locale "fr_FR"
717    
718  in the comparison output, it means that locale is not available on your system,  in the comparison output, it means that locale is not available on your system,
719  despite being listed by "locale". This does not mean that PCRE is broken.  despite being listed by "locale". This does not mean that PCRE is broken.
720    
721  The fourth test checks the UTF-8 support. It is not run automatically unless  [If you are trying to run this test on Windows, you may be able to get it to
722  PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when  work by changing "fr_FR" to "french" everywhere it occurs. Alternatively, use
723  running "configure". This file can be also fed directly to the perltest script,  RunTest.bat. The version of RunTest.bat included with PCRE 7.4 and above uses
724  provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch,  Windows versions of test 2. More info on using RunTest.bat is included in the
725  commented in the script, can be be used.)  document entitled NON-UNIX-USE.]
726    
727    The fourth and fifth tests check the UTF-8/16/32 support and error handling and
728    internal UTF features of PCRE that are not relevant to Perl, respectively. The
729    sixth and seventh tests do the same for Unicode character properties support.
730    
731    The eighth, ninth, and tenth tests check the pcre_dfa_exec() alternative
732    matching function, in non-UTF-8/16/32 mode, UTF-8/16/32 mode, and UTF-8/16/32
733    mode with Unicode property support, respectively.
734    
735    The eleventh test checks some internal offsets and code size features; it is
736    run only when the default "link size" of 2 is set (in other cases the sizes
737    change) and when Unicode property support is enabled.
738    
739    The twelfth test is run only when JIT support is available, and the thirteenth
740    test is run only when JIT support is not available. They test some JIT-specific
741    features such as information output from pcretest about JIT compilation.
742    
743    The fourteenth, fifteenth, and sixteenth tests are run only in 8-bit mode, and
744    the seventeenth, eighteenth, and nineteenth tests are run only in 16/32-bit
745    mode. These are tests that generate different output in the two modes. They are
746    for general cases, UTF-8/16/32 support, and Unicode property support,
747    respectively.
748    
749    The twentieth test is run only in 16/32-bit mode. It tests some specific
750    16/32-bit features of the DFA matching engine.
751    
752    The twenty-first and twenty-second tests are run only in 16/32-bit mode, when
753    the link size is set to 2 for the 16-bit library. They test reloading
754    pre-compiled patterns.
755    
756    The twenty-third and twenty-fourth tests are run only in 16-bit mode. They are
757    for general cases, and UTF-16 support, respectively.
758    
759  The fifth and final file tests error handling with UTF-8 encoding, and internal  The twenty-fifth and twenty-sixth tests are run only in 32-bit mode. They are
760  UTF-8 features of PCRE that are not relevant to Perl.  for general cases, and UTF-32 support, respectively.
761    
762    
763  Character tables  Character tables
764  ----------------  ----------------
765    
766  PCRE uses four tables for manipulating and identifying characters. The final  For speed, PCRE uses four tables for manipulating and identifying characters
767  argument of the pcre_compile() function is a pointer to a block of memory  whose code point values are less than 256. The final argument of the
768  containing the concatenated tables. A call to pcre_maketables() can be used to  pcre_compile() function is a pointer to a block of memory containing the
769  generate a set of tables in the current locale. If the final argument for  concatenated tables. A call to pcre_maketables() can be used to generate a set
770  pcre_compile() is passed as NULL, a set of default tables that is built into  of tables in the current locale. If the final argument for pcre_compile() is
771  the binary is used.  passed as NULL, a set of default tables that is built into the binary is used.
772    
773  The source file called chartables.c contains the default set of tables. This is  The source file called pcre_chartables.c contains the default set of tables. By
774  not supplied in the distribution, but is built by the program dftables  default, this is created as a copy of pcre_chartables.c.dist, which contains
775  (compiled from dftables.c), which uses the ANSI C character handling functions  tables for ASCII coding. However, if --enable-rebuild-chartables is specified
776  such as isalnum(), isalpha(), isupper(), islower(), etc. to build the table  for ./configure, a different version of pcre_chartables.c is built by the
777  sources. This means that the default C locale which is set for your system will  program dftables (compiled from dftables.c), which uses the ANSI C character
778  control the contents of these default tables. You can change the default tables  handling functions such as isalnum(), isalpha(), isupper(), islower(), etc. to
779  by editing chartables.c and then re-building PCRE. If you do this, you should  build the table sources. This means that the default C locale which is set for
780  probably also edit Makefile to ensure that the file doesn't ever get  your system will control the contents of these default tables. You can change
781  re-generated.  the default tables by editing pcre_chartables.c and then re-building PCRE. If
782    you do this, you should take care to ensure that the file does not get
783    automatically re-generated. The best way to do this is to move
784    pcre_chartables.c.dist out of the way and replace it with your customized
785    tables.
786    
787    When the dftables program is run as a result of --enable-rebuild-chartables,
788    it uses the default C locale that is set on your system. It does not pay
789    attention to the LC_xxx environment variables. In other words, it uses the
790    system's default locale rather than whatever the compiling user happens to have
791    set. If you really do want to build a source set of character tables in a
792    locale that is specified by the LC_xxx variables, you can run the dftables
793    program by hand with the -L option. For example:
794    
795      ./dftables -L pcre_chartables.c.special
796    
797  The first two 256-byte tables provide lower casing and case flipping functions,  The first two 256-byte tables provide lower casing and case flipping functions,
798  respectively. The next table consists of three 32-byte bit maps which identify  respectively. The next table consists of three 32-byte bit maps which identify
799  digits, "word" characters, and white space, respectively. These are used when  digits, "word" characters, and white space, respectively. These are used when
800  building 32-byte bit maps that represent character classes.  building 32-byte bit maps that represent character classes for code points less
801    than 256.
802    
803  The final 256-byte table has bits indicating various character types, as  The final 256-byte table has bits indicating various character types, as
804  follows:  follows:
# Line 272  You should not alter the set of characte Line 814  You should not alter the set of characte
814  will cause PCRE to malfunction.  will cause PCRE to malfunction.
815    
816    
817  Manifest  File manifest
818  --------  -------------
819    
820  The distribution should contain the following files:  The distribution should contain the files listed below. Where a file name is
821    given as pcre[16|32]_xxx it means that there are three files, one with the name
822    pcre_xxx, one with the name pcre16_xx, and a third with the name pcre32_xxx.
823    
824    (A) Source files of the PCRE library functions and their headers:
825    
826      dftables.c              auxiliary program for building pcre_chartables.c
827                              when --enable-rebuild-chartables is specified
828    
829      pcre_chartables.c.dist  a default set of character tables that assume ASCII
830                              coding; used, unless --enable-rebuild-chartables is
831                              specified, by copying to pcre[16]_chartables.c
832    
833      pcreposix.c                )
834      pcre[16|32]_byte_order.c   )
835      pcre[16|32]_compile.c      )
836      pcre[16|32]_config.c       )
837      pcre[16|32]_dfa_exec.c     )
838      pcre[16|32]_exec.c         )
839      pcre[16|32]_fullinfo.c     )
840      pcre[16|32]_get.c          ) sources for the functions in the library,
841      pcre[16|32]_globals.c      )   and some internal functions that they use
842      pcre[16|32]_jit_compile.c  )
843      pcre[16|32]_maketables.c   )
844      pcre[16|32]_newline.c      )
845      pcre[16|32]_refcount.c     )
846      pcre[16|32]_string_utils.c )
847      pcre[16|32]_study.c        )
848      pcre[16|32]_tables.c       )
849      pcre[16|32]_ucd.c          )
850      pcre[16|32]_version.c      )
851      pcre[16|32]_xclass.c       )
852      pcre_ord2utf8.c            )
853      pcre_valid_utf8.c          )
854      pcre16_ord2utf16.c         )
855      pcre16_utf16_utils.c       )
856      pcre16_valid_utf16.c       )
857      pcre32_utf32_utils.c       )
858      pcre32_valid_utf32.c       )
859    
860      pcre[16|32]_printint.c     ) debugging function that is used by pcretest,
861                                 )   and can also be #included in pcre_compile()
862    
863      pcre.h.in               template for pcre.h when built by "configure"
864      pcreposix.h             header for the external POSIX wrapper API
865      pcre_internal.h         header for internal use
866      sljit/*                 16 files that make up the JIT compiler
867      ucp.h                   header for Unicode property handling
868    
869      config.h.in             template for config.h, which is built by "configure"
870    
871      pcrecpp.h               public header file for the C++ wrapper
872      pcrecpparg.h.in         template for another C++ header file
873      pcre_scanner.h          public header file for C++ scanner functions
874      pcrecpp.cc              )
875      pcre_scanner.cc         ) source for the C++ wrapper library
876    
877      pcre_stringpiece.h.in   template for pcre_stringpiece.h, the header for the
878                                C++ stringpiece functions
879      pcre_stringpiece.cc     source for the C++ stringpiece functions
880    
881    (B) Source files for programs that use PCRE:
882    
883      pcredemo.c              simple demonstration of coding calls to PCRE
884      pcregrep.c              source of a grep utility that uses PCRE
885      pcretest.c              comprehensive test program
886    
887    (C) Auxiliary files:
888    
889      132html                 script to turn "man" pages into HTML
890      AUTHORS                 information about the author of PCRE
891      ChangeLog               log of changes to the code
892      CleanTxt                script to clean nroff output for txt man pages
893      Detrail                 script to remove trailing spaces
894      HACKING                 some notes about the internals of PCRE
895      INSTALL                 generic installation instructions
896      LICENCE                 conditions for the use of PCRE
897      COPYING                 the same, using GNU's standard name
898      Makefile.in             ) template for Unix Makefile, which is built by
899                              )   "configure"
900      Makefile.am             ) the automake input that was used to create
901                              )   Makefile.in
902      NEWS                    important changes in this release
903      NON-UNIX-USE            the previous name for NON-AUTOTOOLS-BUILD
904      NON-AUTOTOOLS-BUILD     notes on building PCRE without using autotools
905      PrepareRelease          script to make preparations for "make dist"
906      README                  this file
907      RunTest                 a Unix shell script for running tests
908      RunGrepTest             a Unix shell script for pcregrep tests
909      aclocal.m4              m4 macros (generated by "aclocal")
910      config.guess            ) files used by libtool,
911      config.sub              )   used only when building a shared library
912      configure               a configuring shell script (built by autoconf)
913      configure.ac            ) the autoconf input that was used to build
914                              )   "configure" and config.h
915      depcomp                 ) script to find program dependencies, generated by
916                              )   automake
917      doc/*.3                 man page sources for PCRE
918      doc/*.1                 man page sources for pcregrep and pcretest
919      doc/index.html.src      the base HTML page
920      doc/html/*              HTML documentation
921      doc/pcre.txt            plain text version of the man pages
922      doc/pcretest.txt        plain text documentation of test program
923      doc/perltest.txt        plain text documentation of Perl test program
924      install-sh              a shell script for installing files
925      libpcre16.pc.in         template for libpcre16.pc for pkg-config
926      libpcre32.pc.in         template for libpcre32.pc for pkg-config
927      libpcre.pc.in           template for libpcre.pc for pkg-config
928      libpcreposix.pc.in      template for libpcreposix.pc for pkg-config
929      libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config
930      ltmain.sh               file used to build a libtool script
931      missing                 ) common stub for a few missing GNU programs while
932                              )   installing, generated by automake
933      mkinstalldirs           script for making install directories
934      perltest.pl             Perl test program
935      pcre-config.in          source of script which retains PCRE information
936      pcre_jit_test.c         test program for the JIT compiler
937      pcrecpp_unittest.cc          )
938      pcre_scanner_unittest.cc     ) test programs for the C++ wrapper
939      pcre_stringpiece_unittest.cc )
940      testdata/testinput*     test data for main library tests
941      testdata/testoutput*    expected test results
942      testdata/grep*          input and output for pcregrep tests
943      testdata/*              other supporting test files
944    
945    (D) Auxiliary files for cmake support
946    
947      cmake/COPYING-CMAKE-SCRIPTS
948      cmake/FindPackageHandleStandardArgs.cmake
949      cmake/FindEditline.cmake
950      cmake/FindReadline.cmake
951      CMakeLists.txt
952      config-cmake.h.in
953    
954  (A) The actual source files of the PCRE library functions and their  (E) Auxiliary files for VPASCAL
     headers:  
955    
956    dftables.c            auxiliary program for building chartables.c    makevp.bat
957    get.c                 )    makevp_c.txt
958    maketables.c          )    makevp_l.txt
959    study.c               ) source of    pcregexp.pas
   pcre.c                )   the functions  
   pcreposix.c           )  
   printint.c            )  
   pcre.in               "source" for the header for the external API; pcre.h  
                           is built from this by "configure"  
   pcreposix.h           header for the external POSIX wrapper API  
   internal.h            header for internal use  
   config.in             template for config.h, which is built by configure  
   
 (B) Auxiliary files:  
   
   AUTHORS               information about the author of PCRE  
   ChangeLog             log of changes to the code  
   INSTALL               generic installation instructions  
   LICENCE               conditions for the use of PCRE  
   COPYING               the same, using GNU's standard name  
   Makefile.in           template for Unix Makefile, which is built by configure  
   NEWS                  important changes in this release  
   NON-UNIX-USE          notes on building PCRE on non-Unix systems  
   README                this file  
   RunTest.in            template for a Unix shell script for running tests  
   config.guess          ) files used by libtool,  
   config.sub            )   used only when building a shared library  
   configure             a configuring shell script (built by autoconf)  
   configure.in          the autoconf input used to build configure  
   doc/Tech.Notes        notes on the encoding  
   doc/*.3               man page sources for the PCRE functions  
   doc/*.1               man page sources for pcregrep and pcretest  
   doc/html/*            HTML documentation  
   doc/pcre.txt          plain text version of the man pages  
   doc/pcretest.txt      plain text documentation of test program  
   doc/perltest.txt      plain text documentation of Perl test program  
   install-sh            a shell script for installing files  
   ltmain.sh             file used to build a libtool script  
   pcretest.c            comprehensive test program  
   pcredemo.c            simple demonstration of coding calls to PCRE  
   perltest              Perl test program  
   pcregrep.c            source of a grep utility that uses PCRE  
   pcre-config.in        source of script which retains PCRE information  
   testdata/testinput1   test data, compatible with Perl  
   testdata/testinput2   test data for error messages and non-Perl things  
   testdata/testinput3   test data for locale-specific tests  
   testdata/testinput4   test data for UTF-8 tests compatible with Perl  
   testdata/testinput5   test data for other UTF-8 tests  
   testdata/testoutput1  test results corresponding to testinput1  
   testdata/testoutput2  test results corresponding to testinput2  
   testdata/testoutput3  test results corresponding to testinput3  
   testdata/testoutput4  test results corresponding to testinput4  
   testdata/testoutput5  test results corresponding to testinput5  
960    
961  (C) Auxiliary files for Win32 DLL  (F) Auxiliary files for building PCRE "by hand"
962    
963    dll.mk    pcre.h.generic          ) a version of the public PCRE header file
964    pcre.def                            )   for use in non-"configure" environments
965      config.h.generic        ) a version of config.h for use in non-"configure"
966                              )   environments
967    
968  (D) Auxiliary file for VPASCAL  (F) Miscellaneous
969    
970    makevp.bat    RunTest.bat            a script for running tests under Windows
971    
972  Philip Hazel <ph10@cam.ac.uk>  Philip Hazel
973  February 2003  Email local part: ph10
974    Email domain: cam.ac.uk
975    Last updated: 01 July 2013

Legend:
Removed from v.63  
changed lines
  Added in v.1342

  ViewVC Help
Powered by ViewVC 1.1.5