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

Diff of /code/trunk/README

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

revision 131 by ph10, Mon Mar 26 15:10:12 2007 UTC revision 436 by ph10, Sun Sep 6 16:23:55 2009 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 82  documentation is supplied in two other f Line 85  documentation is supplied in two other f
85       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
86       doc/html and installed in <prefix>/share/doc/pcre/html.       doc/html and installed in <prefix>/share/doc/pcre/html.
87    
88    Users of PCRE have contributed files containing the documentation for various
89    releases in CHM format. These can be found in the Contrib directory of the FTP
90    site (see next section).
91    
92    
93  Contributions by users of PCRE  Contributions by users of PCRE
94  ------------------------------  ------------------------------
# Line 103  Building PCRE on non-Unix systems Line 110  Building PCRE on non-Unix systems
110    
111  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,
112  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
113  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
114    configured in many platform environments using the GUI facility provided by
115    CMake's cmake-gui command. This creates Makefiles, solution files, etc.
116    
117  PCRE has been compiled on many different operating systems. It should be  PCRE has been compiled on many different operating systems. It should be
118  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 116  Building PCRE on Unix-like systems Line 125  Building PCRE on Unix-like systems
125  If you are using HP's ANSI C++ compiler (aCC), please see the special note  If you are using HP's ANSI C++ compiler (aCC), please see the special note
126  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.  in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
127    
128    The following instructions assume the use of the widely used "configure, make,
129    make install" process. There is also support for CMake in the PCRE
130    distribution; there are some comments about using CMake in the NON-UNIX-USE
131    file, though it can also be used in Unix-like systems.
132    
133  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
134  PCRE distribution directory, with your current directory set to the directory  PCRE distribution directory, with your current directory set to the directory
135  where you want the files to be created. This command is a standard GNU  where you want the files to be created. This command is a standard GNU
# Line 151  library. You can read more about them in Line 165  library. You can read more about them in
165    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,
166    it will try to build the C++ wrapper.    it will try to build the C++ wrapper.
167    
168  . 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
169    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
170    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,
171    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
172      with this option, its input can only either be ASCII or UTF-8, even when
173      running on EBCDIC platforms. It is not possible to use both --enable-utf8 and
174      --enable-ebcdic at the same time.
175    
176  . 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
177    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 164  library. You can read more about them in Line 181  library. You can read more about them in
181    supported.    supported.
182    
183  . You can build PCRE to recognize either CR or LF or the sequence CRLF or any  . You can build PCRE to recognize either CR or LF or the sequence CRLF or any
184    of the Unicode newline sequences as indicating the end of a line. Whatever    of the preceding, or any of the Unicode newline sequences as indicating the
185    you specify at build time is the default; the caller of PCRE can change the    end of a line. Whatever you specify at build time is the default; the caller
186    selection at run time. The default newline indicator is a single LF character    of PCRE can change the selection at run time. The default newline indicator
187    (the Unix standard). You can specify the default newline indicator by adding    is a single LF character (the Unix standard). You can specify the default
188    --newline-is-cr or --newline-is-lf or --newline-is-crlf or --newline-is-any    newline indicator by adding --enable-newline-is-cr or --enable-newline-is-lf
189    to the "configure" command, respectively.    or --enable-newline-is-crlf or --enable-newline-is-anycrlf or
190      --enable-newline-is-any to the "configure" command, respectively.
191    If you specify --newline-is-cr or --newline-is-crlf, some of the standard  
192    tests will fail, because the lines in the test files end with LF. Even if    If you specify --enable-newline-is-cr or --enable-newline-is-crlf, some of
193    the files are edited to change the line endings, there are likely to be some    the standard tests will fail, because the lines in the test files end with
194    failures. With --newline-is-any, many tests should succeed, but there may be    LF. Even if the files are edited to change the line endings, there are likely
195    some failures.    to be some failures. With --enable-newline-is-anycrlf or
196      --enable-newline-is-any, many tests should succeed, but there may be some
197      failures.
198    
199    . By default, the sequence \R in a pattern matches any Unicode line ending
200      sequence. This is independent of the option specifying what PCRE considers to
201      be the end of a line (see above). However, the caller of PCRE can restrict \R
202      to match only CR, LF, or CRLF. You can make this the default by adding
203      --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
204    
205  . When called via the POSIX interface, PCRE uses malloc() to get additional  . When called via the POSIX interface, PCRE uses malloc() to get additional
206    storage for processing capturing parentheses if there are more than 10 of    storage for processing capturing parentheses if there are more than 10 of
# Line 237  library. You can read more about them in Line 262  library. You can read more about them in
262    pcre_chartables.c.dist. See "Character tables" below for further information.    pcre_chartables.c.dist. See "Character tables" below for further information.
263    
264  . 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
265    default character code (as opposed to ASCII) by specifying    character code (as opposed to ASCII) by specifying
266    
267    --enable-ebcdic    --enable-ebcdic
268    
269    This automatically implies --enable-rebuild-chartables (see above).    This automatically implies --enable-rebuild-chartables (see above). However,
270      when PCRE is built this way, it always operates in EBCDIC. It cannot support
271      both EBCDIC and UTF-8.
272    
273    . It is possible to compile pcregrep to use libz and/or libbz2, in order to
274      read .gz and .bz2 files (respectively), by specifying one or both of
275    
276      --enable-pcregrep-libz
277      --enable-pcregrep-libbz2
278    
279      Of course, the relevant libraries must be installed on your system.
280    
281    . It is possible to compile pcretest so that it links with the libreadline
282      library, by specifying
283    
284      --enable-pcretest-libreadline
285    
286      If this is done, when pcretest's input is from a terminal, it reads it using
287      the readline() function. This provides line-editing and history facilities.
288      Note that libreadline is GPL-licenced, so if you distribute a binary of
289      pcretest linked in this way, there may be licensing issues.
290    
291      Setting this option causes the -lreadline option to be added to the pcretest
292      build. In many operating environments with a sytem-installed readline
293      library this is sufficient. However, in some environments (e.g. if an
294      unmodified distribution version of readline is in use), it may be necessary
295      to specify something like LIBS="-lncurses" as well. This is because, to quote
296      the readline INSTALL, "Readline uses the termcap functions, but does not link
297      with the termcap or curses library itself, allowing applications which link
298      with readline the to choose an appropriate library." If you get error
299      messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto,
300      this is the problem, and linking with the ncurses library should fix it.
301    
302  The "configure" script builds the following files for the basic C library:  The "configure" script builds the following files for the basic C library:
303    
# Line 270  script that can be run to recreate the c Line 326  script that can be run to recreate the c
326  contains compiler output from tests that "configure" runs.  contains compiler output from tests that "configure" runs.
327    
328  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
329  libpcre and libpcreposix, a test program called pcretest, a demonstration  libpcre and libpcreposix, a test program called pcretest, and the pcregrep
330  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++
331  on your system, "make" also builds the C++ wrapper library, which is called  wrapper library, which is called libpcrecpp, and some test programs called
332  libpcrecpp, and some test programs called pcrecpp_unittest,  pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest.
333  pcre_scanner_unittest, and pcre_stringpiece_unittest. Building the C++ wrapper  Building the C++ wrapper can be disabled by adding --disable-cpp to the
334  can be disabled by adding --disable-cpp to the "configure" command.  "configure" command.
335    
336  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
337  tests are given below in a separate section of this document.  tests are given below in a separate section of this document.
# Line 327  system. The following are installed (fil Line 383  system. The following are installed (fil
383      pcretest.txt   the pcretest man page      pcretest.txt   the pcretest man page
384      pcregrep.txt   the pcregrep man page      pcregrep.txt   the pcregrep man page
385    
 Note that the pcredemo program that is built by "configure" is *not* installed  
 anywhere. It is a demonstration for programmers wanting to use PCRE.  
   
386  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".
387  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
388  remove any directories, because these are often shared with other programs.  remove any directories, because these are often shared with other programs.
# Line 429  Making new tarballs Line 482  Making new tarballs
482  -------------------  -------------------
483    
484  The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and  The command "make dist" creates three PCRE tarballs, in tar.gz, tar.bz2, and
485  zip formats. However, if you have modified any of the man page sources in the  zip formats. The command "make distcheck" does the same, but then does a trial
486  doc directory, you should first run the PrepareRelease script. This re-creates  build of the new distribution to ensure that it works.
487  the .txt and HTML forms of the documentation from the man pages.  
488    If you have modified any of the man page sources in the doc directory, you
489    should first run the PrepareRelease script before making a distribution. This
490    script creates the .txt and HTML forms of the documentation from the man pages.
491    
492    
493  Testing PCRE  Testing PCRE
# Line 489  is output to say why. If running this te Line 545  is output to say why. If running this te
545  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,
546  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.
547    
548    [If you are trying to run this test on Windows, you may be able to get it to
549    work by changing "fr_FR" to "french" everywhere it occurs. Alternatively, use
550    RunTest.bat. The version of RunTest.bat included with PCRE 7.4 and above uses
551    Windows versions of test 2. More info on using RunTest.bat is included in the
552    document entitled NON-UNIX-USE.]
553    
554  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
555  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
556  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 script,
# Line 592  The distribution should contain the foll Line 654  The distribution should contain the foll
654    pcre_study.c            )    pcre_study.c            )
655    pcre_tables.c           )    pcre_tables.c           )
656    pcre_try_flipped.c      )    pcre_try_flipped.c      )
657    pcre_ucp_searchfuncs.c  )    pcre_ucd.c              )
658    pcre_valid_utf8.c       )    pcre_valid_utf8.c       )
659    pcre_version.c          )    pcre_version.c          )
660    pcre_xclass.c           )    pcre_xclass.c           )
# Line 601  The distribution should contain the foll Line 663  The distribution should contain the foll
663    pcre.h.in               template for pcre.h when built by "configure"    pcre.h.in               template for pcre.h when built by "configure"
664    pcreposix.h             header for the external POSIX wrapper API    pcreposix.h             header for the external POSIX wrapper API
665    pcre_internal.h         header for internal use    pcre_internal.h         header for internal use
666    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)  
667    
668    config.h.in             template for config.h, which is built by "configure"    config.h.in             template for config.h, which is built by "configure"
669    
# Line 642  The distribution should contain the foll Line 702  The distribution should contain the foll
702    NON-UNIX-USE            notes on building PCRE on non-Unix systems    NON-UNIX-USE            notes on building PCRE on non-Unix systems
703    PrepareRelease          script to make preparations for "make dist"    PrepareRelease          script to make preparations for "make dist"
704    README                  this file    README                  this file
705    RunTest.in              template for a Unix shell script for running tests    RunTest                 a Unix shell script for running tests
706    RunGrepTest.in          template for a Unix shell script for pcregrep tests    RunGrepTest             a Unix shell script for pcregrep tests
707    aclocal.m4              m4 macros (generated by "aclocal")    aclocal.m4              m4 macros (generated by "aclocal")
708    config.guess            ) files used by libtool,    config.guess            ) files used by libtool,
709    config.sub              )   used only when building a shared library    config.sub              )   used only when building a shared library
# Line 652  The distribution should contain the foll Line 712  The distribution should contain the foll
712                            )   "configure" and config.h                            )   "configure" and config.h
713    depcomp                 ) script to find program dependencies, generated by    depcomp                 ) script to find program dependencies, generated by
714                            )   automake                            )   automake
715    doc/*.3                 man page sources for the PCRE functions    doc/*.3                 man page sources for PCRE
716    doc/*.1                 man page sources for pcregrep and pcretest    doc/*.1                 man page sources for pcregrep and pcretest
717    doc/index.html.src      the base HTML page    doc/index.html.src      the base HTML page
718    doc/html/*              HTML documentation    doc/html/*              HTML documentation
# Line 661  The distribution should contain the foll Line 721  The distribution should contain the foll
721    doc/perltest.txt        plain text documentation of Perl test program    doc/perltest.txt        plain text documentation of Perl test program
722    install-sh              a shell script for installing files    install-sh              a shell script for installing files
723    libpcre.pc.in           template for libpcre.pc for pkg-config    libpcre.pc.in           template for libpcre.pc for pkg-config
724      libpcreposix.pc.in      template for libpcreposix.pc for pkg-config
725    libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config    libpcrecpp.pc.in        template for libpcrecpp.pc for pkg-config
726    ltmain.sh               file used to build a libtool script    ltmain.sh               file used to build a libtool script
727    missing                 ) common stub for a few missing GNU programs while    missing                 ) common stub for a few missing GNU programs while
# Line 677  The distribution should contain the foll Line 738  The distribution should contain the foll
738    
739  (D) Auxiliary files for cmake support  (D) Auxiliary files for cmake support
740    
741      cmake/COPYING-CMAKE-SCRIPTS
742      cmake/FindPackageHandleStandardArgs.cmake
743      cmake/FindReadline.cmake
744    CMakeLists.txt    CMakeLists.txt
745    config-cmake.h.in    config-cmake.h.in
746    
747  (E) Auxiliary files for VPASCAL  (E) Auxiliary files for VPASCAL
748    
749    makevp.bat    makevp.bat
750    makevp-c.txt    makevp_c.txt
751    makevp-l.txt    makevp_l.txt
752    pcregexp.pas    pcregexp.pas
753    
754  (F) Auxiliary files for building PCRE "by hand"  (F) Auxiliary files for building PCRE "by hand"
# Line 701  The distribution should contain the foll Line 765  The distribution should contain the foll
765  Philip Hazel  Philip Hazel
766  Email local part: ph10  Email local part: ph10
767  Email domain: cam.ac.uk  Email domain: cam.ac.uk
768  Last updated: 26 March 2007  Last updated: 06 September 2009

Legend:
Removed from v.131  
changed lines
  Added in v.436

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12