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

Diff of /code/trunk/README

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

revision 254 by ph10, Mon Sep 17 11:05:37 2007 UTC revision 654 by ph10, Tue Aug 2 11:00:40 2011 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  There is a mailing list for discussion about the development of PCRE at
12    
# Line 21  The contents of this README file are: Line 24  The contents of this README file are:
24    Shared libraries on Unix-like systems    Shared libraries on Unix-like systems
25    Cross-compiling on Unix-like systems    Cross-compiling on Unix-like systems
26    Using HP's ANSI C++ compiler (aCC)    Using HP's ANSI C++ compiler (aCC)
27      Using PCRE from MySQL
28    Making new tarballs    Making new tarballs
29    Testing PCRE    Testing PCRE
30    Character tables    Character tables
# Line 82  documentation is supplied in two other f Line 86  documentation is supplied in two other f
86       in various ways, and rooted in a file called index.html, is distributed in       in various ways, and rooted in a file called index.html, is distributed in
87       doc/html and installed in <prefix>/share/doc/pcre/html.       doc/html and installed in <prefix>/share/doc/pcre/html.
88    
89    Users of PCRE have contributed files containing the documentation for various
90    releases in CHM format. These can be found in the Contrib directory of the FTP
91    site (see next section).
92    
93    
94  Contributions by users of PCRE  Contributions by users of PCRE
95  ------------------------------  ------------------------------
# Line 103  Building PCRE on non-Unix systems Line 111  Building PCRE on non-Unix systems
111    
112  For a non-Unix system, please read the comments in the file NON-UNIX-USE,  For a non-Unix system, please read the comments in the file NON-UNIX-USE,
113  though if your system supports the use of "configure" and "make" you may be  though if your system supports the use of "configure" and "make" you may be
114  able to build PCRE in the same way as for Unix-like systems.  able to build PCRE in the same way as for Unix-like systems. PCRE can also be
115    configured in many platform environments using the GUI facility provided by
116    CMake's cmake-gui command. This creates Makefiles, solution files, etc.
117    
118  PCRE has been compiled on many different operating systems. It should be  PCRE has been compiled on many different operating systems. It should be
119  straightforward to build PCRE on any system that has a Standard C compiler and  straightforward to build PCRE on any system that has a Standard C compiler and
# Line 117  If you are using HP's ANSI C++ compiler Line 127  If you are using HP's ANSI C++ compiler
127  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
128    
129  The following instructions assume the use of the widely used "configure, make,  The following instructions assume the use of the widely used "configure, make,
130  make install" process. There is also some experimental support for "cmake" in  make install" process. There is also support for CMake in the PCRE
131  the PCRE distribution, but it is incomplete and not documented. However, if you  distribution; there are some comments about using CMake in the NON-UNIX-USE
132  are a "cmake" user, you might want to try it.  file, though it can also be used in Unix-like systems.
133    
134  To build PCRE on a Unix-like system, first run the "configure" command from the  To build PCRE on a Unix-like system, first run the "configure" command from the
135  PCRE distribution directory, with your current directory set to the directory  PCRE distribution directory, with your current directory set to the directory
# Line 149  possible to build it as a C++ library, t Line 159  possible to build it as a C++ library, t
159  does not have any features to support this.  does not have any features to support this.
160    
161  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
162  library. You can read more about them in the pcrebuild man page.  library. They are also documented in the pcrebuild man page.
163    
164    . By default, both shared and static libraries are built. You can change this
165      by adding one of these options to the "configure" command:
166    
167      --disable-shared
168      --disable-static
169    
170      (See also "Shared libraries on Unix-like systems" below.)
171    
172  . If you want to suppress the building of the C++ wrapper library, you can add  . If you want to suppress the building of the C++ wrapper library, you can add
173    --disable-cpp to the "configure" command. Otherwise, when "configure" is run,    --disable-cpp to the "configure" command. Otherwise, when "configure" is run,
174    it will try to find a C++ compiler and C++ header files, and if it succeeds,    it will try to find a C++ compiler and C++ header files, and if it succeeds,
175    it will try to build the C++ wrapper.    it will try to build the C++ wrapper.
176    
177  . If you want to make use of the support for UTF-8 character strings in PCRE,  . If you want to make use of the support for UTF-8 Unicode character strings in
178    you must add --enable-utf8 to the "configure" command. Without it, the code    PCRE, you must add --enable-utf8 to the "configure" command. Without it, the
179    for handling UTF-8 is not included in the library. (Even when included, it    code for handling UTF-8 is not included in the library. Even when included,
180    still has to be enabled by an option at run time.)    it still has to be enabled by an option at run time. When PCRE is compiled
181      with this option, its input can only either be ASCII or UTF-8, even when
182      running on EBCDIC platforms. It is not possible to use both --enable-utf8 and
183      --enable-ebcdic at the same time.
184    
185  . If, in addition to support for UTF-8 character strings, you want to include  . If, in addition to support for UTF-8 character strings, you want to include
186    support for the \P, \p, and \X sequences that recognize Unicode character    support for the \P, \p, and \X sequences that recognize Unicode character
# Line 250  library. You can read more about them in Line 271  library. You can read more about them in
271    pcre_chartables.c.dist. See "Character tables" below for further information.    pcre_chartables.c.dist. See "Character tables" below for further information.
272    
273  . It is possible to compile PCRE for use on systems that use EBCDIC as their  . It is possible to compile PCRE for use on systems that use EBCDIC as their
274    default character code (as opposed to ASCII) by specifying    character code (as opposed to ASCII) by specifying
275    
276    --enable-ebcdic    --enable-ebcdic
277    
278    This automatically implies --enable-rebuild-chartables (see above).    This automatically implies --enable-rebuild-chartables (see above). However,
279      when PCRE is built this way, it always operates in EBCDIC. It cannot support
280      both EBCDIC and UTF-8.
281    
282    . It is possible to compile pcregrep to use libz and/or libbz2, in order to
283      read .gz and .bz2 files (respectively), by specifying one or both of
284    
285      --enable-pcregrep-libz
286      --enable-pcregrep-libbz2
287    
288      Of course, the relevant libraries must be installed on your system.
289    
290    . The default size of internal buffer used by pcregrep can be set by, for
291      example:
292    
293      --with-pcregrep-bufsize=50K
294    
295      The default value is 20K.
296    
297    . It is possible to compile pcretest so that it links with the libreadline
298      library, by specifying
299    
300      --enable-pcretest-libreadline
301    
302      If this is done, when pcretest's input is from a terminal, it reads it using
303      the readline() function. This provides line-editing and history facilities.
304      Note that libreadline is GPL-licenced, so if you distribute a binary of
305      pcretest linked in this way, there may be licensing issues.
306    
307      Setting this option causes the -lreadline option to be added to the pcretest
308      build. In many operating environments with a sytem-installed readline
309      library this is sufficient. However, in some environments (e.g. if an
310      unmodified distribution version of readline is in use), it may be necessary
311      to specify something like LIBS="-lncurses" as well. This is because, to quote
312      the readline INSTALL, "Readline uses the termcap functions, but does not link
313      with the termcap or curses library itself, allowing applications which link
314      with readline the to choose an appropriate library." If you get error
315      messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto,
316      this is the problem, and linking with the ncurses library should fix it.
317    
318  The "configure" script builds the following files for the basic C library:  The "configure" script builds the following files for the basic C library:
319    
# Line 267  The "configure" script builds the follow Line 326  The "configure" script builds the follow
326  . RunTest is a script for running tests on the basic C library  . RunTest is a script for running tests on the basic C library
327  . RunGrepTest is a script for running tests on the pcregrep command  . RunGrepTest is a script for running tests on the pcregrep command
328    
329  Versions of config.h and pcre.h are distributed in the PCRE tarballs under  Versions of config.h and pcre.h are distributed in the PCRE tarballs under the
330  the names config.h.generic and pcre.h.generic. These are provided for the  names config.h.generic and pcre.h.generic. These are provided for those who
331  benefit of those who have to built PCRE without the benefit of "configure". If  have to built PCRE without using "configure" or CMake. If you use "configure"
332  you use "configure", the .generic versions are not used.  or CMake, the .generic versions are not used.
333    
334  If a C++ compiler is found, the following files are also built:  If a C++ compiler is found, the following files are also built:
335    
# Line 283  script that can be run to recreate the c Line 342  script that can be run to recreate the c
342  contains compiler output from tests that "configure" runs.  contains compiler output from tests that "configure" runs.
343    
344  Once "configure" has run, you can run "make". It builds two libraries, called  Once "configure" has run, you can run "make". It builds two libraries, called
345  libpcre and libpcreposix, a test program called pcretest, a demonstration  libpcre and libpcreposix, a test program called pcretest, and the pcregrep
346  program called pcredemo, and the pcregrep command. If a C++ compiler was found  command. If a C++ compiler was found on your system, "make" also builds the C++
347  on your system, "make" also builds the C++ wrapper library, which is called  wrapper library, which is called libpcrecpp, and some test programs called
348  libpcrecpp, and some test programs called pcrecpp_unittest,  pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest.
349  pcre_scanner_unittest, and pcre_stringpiece_unittest. Building the C++ wrapper  Building the C++ wrapper can be disabled by adding --disable-cpp to the
350  can be disabled by adding --disable-cpp to the "configure" command.  "configure" command.
351    
352  The command "make check" runs all the appropriate tests. Details of the PCRE  The command "make check" runs all the appropriate tests. Details of the PCRE
353  tests are given below in a separate section of this document.  tests are given below in a separate section of this document.
# Line 340  system. The following are installed (fil Line 399  system. The following are installed (fil
399      pcretest.txt   the pcretest man page      pcretest.txt   the pcretest man page
400      pcregrep.txt   the pcregrep man page      pcregrep.txt   the pcregrep man page
401    
 Note that the pcredemo program that is built by "configure" is *not* installed  
 anywhere. It is a demonstration for programmers wanting to use PCRE.  
   
402  If you want to remove PCRE from your system, you can run "make uninstall".  If you want to remove PCRE from your system, you can run "make uninstall".
403  This removes all the files that "make install" installed. However, it does not  This removes all the files that "make install" installed. However, it does not
404  remove any directories, because these are often shared with other programs.  remove any directories, because these are often shared with other programs.
# Line 438  running the "configure" script: Line 494  running the "configure" script:
494    CXXLDFLAGS="-lstd_v2 -lCsup_v2"    CXXLDFLAGS="-lstd_v2 -lCsup_v2"
495    
496    
497    Using Sun's compilers for Solaris
498    ---------------------------------
499    
500    A user reports that the following configurations work on Solaris 9 sparcv9 and
501    Solaris 9 x86 (32-bit):
502    
503      Solaris 9 sparcv9: ./configure --disable-cpp CC=/bin/cc CFLAGS="-m64 -g"
504      Solaris 9 x86:     ./configure --disable-cpp CC=/bin/cc CFLAGS="-g"
505    
506    
507    Using PCRE from MySQL
508    ---------------------
509    
510    On systems where both PCRE and MySQL are installed, it is possible to make use
511    of PCRE from within MySQL, as an alternative to the built-in pattern matching.
512    There is a web page that tells you how to do this:
513    
514      http://www.mysqludf.org/lib_mysqludf_preg/index.php
515    
516    
517  Making new tarballs  Making new tarballs
518  -------------------  -------------------
519    
# Line 506  in the comparison output, it means that Line 582  in the comparison output, it means that
582  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.
583    
584  [If you are trying to run this test on Windows, you may be able to get it to  [If you are trying to run this test on Windows, you may be able to get it to
585  work by changing "fr_FR" to "french" everywhere it occurs.]  work by changing "fr_FR" to "french" everywhere it occurs. Alternatively, use
586    RunTest.bat. The version of RunTest.bat included with PCRE 7.4 and above uses
587    Windows versions of test 2. More info on using RunTest.bat is included in the
588    document entitled NON-UNIX-USE.]
589    
590  The fourth test checks the UTF-8 support. It is not run automatically unless  The fourth test checks the UTF-8 support. It is not run automatically unless
591  PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when  PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when
592  running "configure". This file can be also fed directly to the perltest script,  running "configure". This file can be also fed directly to the perltest.pl
593  provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch,  script, provided you are running Perl 5.8 or higher.
 commented in the script, can be be used.)  
594    
595  The fifth test checks error handling with UTF-8 encoding, and internal UTF-8  The fifth test checks error handling with UTF-8 encoding, and internal UTF-8
596  features of PCRE that are not relevant to Perl.  features of PCRE that are not relevant to Perl.
597    
598  The sixth test checks the support for Unicode character properties. It it not  The sixth test (which is Perl-5.10 compatible) checks the support for Unicode
599  run automatically unless PCRE is built with Unicode property support. To to  character properties. It it not run automatically unless PCRE is built with
600  this you must set --enable-unicode-properties when running "configure".  Unicode property support. To to this you must set --enable-unicode-properties
601    when running "configure".
602    
603  The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative  The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative
604  matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode  matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode
605  property support, respectively. The eighth and ninth tests are not run  property support, respectively. The eighth and ninth tests are not run
606  automatically unless PCRE is build with the relevant support.  automatically unless PCRE is build with the relevant support.
607    
608    The tenth test checks some internal offsets and code size features; it is run
609    only when the default "link size" of 2 is set (in other cases the sizes
610    change).
611    
612    The eleventh test checks out features that are new in Perl 5.10, and the
613    twelfth test checks a number internals and non-Perl features concerned with
614    Unicode property support. It it not run automatically unless PCRE is built with
615    Unicode property support. To to this you must set --enable-unicode-properties
616    when running "configure".
617    
618    
619  Character tables  Character tables
620  ----------------  ----------------
# Line 611  The distribution should contain the foll Line 700  The distribution should contain the foll
700    pcre_study.c            )    pcre_study.c            )
701    pcre_tables.c           )    pcre_tables.c           )
702    pcre_try_flipped.c      )    pcre_try_flipped.c      )
703    pcre_ucp_searchfuncs.c  )    pcre_ucd.c              )
704    pcre_valid_utf8.c       )    pcre_valid_utf8.c       )
705    pcre_version.c          )    pcre_version.c          )
706    pcre_xclass.c           )    pcre_xclass.c           )
# Line 620  The distribution should contain the foll Line 709  The distribution should contain the foll
709    pcre.h.in               template for pcre.h when built by "configure"    pcre.h.in               template for pcre.h when built by "configure"
710    pcreposix.h             header for the external POSIX wrapper API    pcreposix.h             header for the external POSIX wrapper API
711    pcre_internal.h         header for internal use    pcre_internal.h         header for internal use
712    ucp.h                   ) headers concerned with    ucp.h                   header for Unicode property handling
   ucpinternal.h           )   Unicode property handling  
   ucptable.h              ) (this one is the data table)  
713    
714    config.h.in             template for config.h, which is built by "configure"    config.h.in             template for config.h, which is built by "configure"
715    
# Line 671  The distribution should contain the foll Line 758  The distribution should contain the foll
758                            )   "configure" and config.h                            )   "configure" and config.h
759    depcomp                 ) script to find program dependencies, generated by    depcomp                 ) script to find program dependencies, generated by
760                            )   automake                            )   automake
761    doc/*.3                 man page sources for the PCRE functions    doc/*.3                 man page sources for PCRE
762    doc/*.1                 man page sources for pcregrep and pcretest    doc/*.1                 man page sources for pcregrep and pcretest
763    doc/index.html.src      the base HTML page    doc/index.html.src      the base HTML page
764    doc/html/*              HTML documentation    doc/html/*              HTML documentation
# Line 680  The distribution should contain the foll Line 767  The distribution should contain the foll
767    doc/perltest.txt        plain text documentation of Perl test program    doc/perltest.txt        plain text documentation of Perl test program
768    install-sh              a shell script for installing files    install-sh              a shell script for installing files
769    libpcre.pc.in           template for libpcre.pc for pkg-config    libpcre.pc.in           template for libpcre.pc for pkg-config
770      libpcreposix.pc.in      template for libpcreposix.pc for pkg-config
771    libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config    libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config
772    ltmain.sh               file used to build a libtool script    ltmain.sh               file used to build a libtool script
773    missing                 ) common stub for a few missing GNU programs while    missing                 ) common stub for a few missing GNU programs while
# Line 696  The distribution should contain the foll Line 784  The distribution should contain the foll
784    
785  (D) Auxiliary files for cmake support  (D) Auxiliary files for cmake support
786    
787      cmake/COPYING-CMAKE-SCRIPTS
788      cmake/FindPackageHandleStandardArgs.cmake
789      cmake/FindReadline.cmake
790    CMakeLists.txt    CMakeLists.txt
791    config-cmake.h.in    config-cmake.h.in
792    
# Line 720  The distribution should contain the foll Line 811  The distribution should contain the foll
811  Philip Hazel  Philip Hazel
812  Email local part: ph10  Email local part: ph10
813  Email domain: cam.ac.uk  Email domain: cam.ac.uk
814  Last updated: 17 September 2007  Last updated: 02 August 2011

Legend:
Removed from v.254  
changed lines
  Added in v.654

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12