/[pcre]/code/branches/pcre16/NON-UNIX-USE
ViewVC logotype

Diff of /code/branches/pcre16/NON-UNIX-USE

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

revision 145 by ph10, Wed Apr 4 14:06:52 2007 UTC revision 198 by ph10, Tue Jul 31 11:11:23 2007 UTC
# Line 7  This document contains the following sec Line 7  This document contains the following sec
7    Generic instructions for the PCRE C library    Generic instructions for the PCRE C library
8    The C++ wrapper functions    The C++ wrapper functions
9    Building for virtual Pascal    Building for virtual Pascal
10      Stack size in Windows environments
11    Comments about Win32 builds    Comments about Win32 builds
12    Building under Windows with BCC5.5    Building under Windows with BCC5.5
13    Building PCRE on OpenVMS    Building PCRE on OpenVMS
# Line 38  GENERIC INSTRUCTIONS FOR THE PCRE C LIBR Line 39  GENERIC INSTRUCTIONS FOR THE PCRE C LIBR
39    
40  The following are generic comments about building the PCRE C library "by hand".  The following are generic comments about building the PCRE C library "by hand".
41    
42  (1) Copy or rename the file config.h.generic as config.h, and edit the macro   (1) Copy or rename the file config.h.generic as config.h, and edit the macro
43      settings that it contains to whatever is appropriate for your environment.       settings that it contains to whatever is appropriate for your environment.
44      In particular, if you want to force a specific value for newline, you can       In particular, if you want to force a specific value for newline, you can
45      define the NEWLINE macro.       define the NEWLINE macro.
46    
47      An alternative approach is not to edit config.h, but to use -D on the       An alternative approach is not to edit config.h, but to use -D on the
48      compiler command line to make any changes that you need.       compiler command line to make any changes that you need.
49    
50  (2) Copy or rename the file pcre.h.generic as pcre.h.       NOTE: There have been occasions when the way in which certain parameters
51         in config.h are used has changed between releases. (In the configure/make
52  (3) EITHER:       world, this is handled automatically.) When upgrading to a new release,
53        Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.       you are strongly advised to review config.h.generic before re-using what
54         you had previously.
55      OR:  
56        Compile dftables.c as a stand-alone program, and then run it with the   (2) Copy or rename the file pcre.h.generic as pcre.h.
57        single argument "pcre_chartables.c". This generates a set of standard  
58        character tables and writes them to that file. The tables are generated   (3) EITHER:
59        using the default C locale for your system. If you want to use a locale         Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.
60        that is specified by LC_xxx environment variables, add the -L option to  
61        the dftables command. You must use this method if you are building on       OR:
62        a system that uses EBCDIC code.         Compile dftables.c as a stand-alone program, and then run it with the
63           single argument "pcre_chartables.c". This generates a set of standard
64      The tables in pcre_chartables.c are defaults. The caller of PCRE can         character tables and writes them to that file. The tables are generated
65      specify alternative tables at run time.         using the default C locale for your system. If you want to use a locale
66           that is specified by LC_xxx environment variables, add the -L option to
67  (4) Compile the following source files:         the dftables command. You must use this method if you are building on
68           a system that uses EBCDIC code.
69        pcre_chartables.c  
70        pcre_compile.c       The tables in pcre_chartables.c are defaults. The caller of PCRE can
71        pcre_config.c       specify alternative tables at run time.
72        pcre_dfa_exec.c  
73        pcre_exec.c   (4) Ensure that you have the following header files:
74        pcre_fullinfo.c  
75        pcre_get.c         pcre_internal.h
76        pcre_globals.c         ucp.h
77        pcre_info.c         ucpinternal.h
78        pcre_maketables.c         ucptable.h
79        pcre_newline.c  
80        pcre_ord2utf8.c   (5) Also ensure that you have the following file, which is #included as source
81        pcre_refcount.c       when building a debugging version of PCRE and is also used by pcretest.
82        pcre_study.c  
83        pcre_tables.c         pcre_printint.src
84        pcre_try_flipped.c  
85        pcre_ucp_searchfuncs.c   (6) Compile the following source files:
86        pcre_valid_utf8.c  
87        pcre_version.c         pcre_chartables.c
88        pcre_xclass.c         pcre_compile.c
89           pcre_config.c
90      Now link them all together into an object library in whichever form your         pcre_dfa_exec.c
91      system keeps such libraries. This is the basic PCRE C library. If your         pcre_exec.c
92      system has static and shared libraries, you may have to do this once for         pcre_fullinfo.c
93      each type.         pcre_get.c
94           pcre_globals.c
95  (5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix         pcre_info.c
96      library.         pcre_maketables.c
97           pcre_newline.c
98  (6) Compile the test program pcretest.c. This needs the functions in the         pcre_ord2utf8.c
99      pcre and pcreposix libraries when linking.         pcre_refcount.c
100           pcre_study.c
101  (7) Run pcretest on the testinput files in the testdata directory, and check         pcre_tables.c
102      that the output matches the corresponding testoutput files. Note that the         pcre_try_flipped.c
103      supplied files are in Unix format, with just LF characters as line         pcre_ucp_searchfuncs.c
104      terminators. You may need to edit them to change this if your system uses a         pcre_valid_utf8.c
105      different convention.         pcre_version.c
106           pcre_xclass.c
107    
108     (7) Now link all the compiled code into an object library in whichever form
109         your system keeps such libraries. This is the basic PCRE C library. If
110         your system has static and shared libraries, you may have to do this once
111         for each type.
112    
113     (8) Similarly, compile pcreposix.c and link the result (on its own) as the
114         pcreposix library.
115    
116     (9) Compile the test program pcretest.c. This needs the functions in the
117         pcre and pcreposix libraries when linking. It also needs the
118         pcre_printint.src source file, which it #includes.
119    
120    (10) Run pcretest on the testinput files in the testdata directory, and check
121         that the output matches the corresponding testoutput files. Note that the
122         supplied files are in Unix format, with just LF characters as line
123         terminators. You may need to edit them to change this if your system uses
124         a different convention.
125    
126  (8) If you want to use the pcregrep command, compile and link pcregrep.c; it  (11) If you want to use the pcregrep command, compile and link pcregrep.c; it
127      uses only the basic PCRE library (it does not need the pcreposix library).       uses only the basic PCRE library (it does not need the pcreposix library).
128    
129    
130  THE C++ WRAPPER FUNCTIONS  THE C++ WRAPPER FUNCTIONS
# Line 125  additional files. The following files in Line 145  additional files. The following files in
145  for use with VP/Borland: makevp_c.txt, makevp_l.txt, makevp.bat, pcregexp.pas.  for use with VP/Borland: makevp_c.txt, makevp_l.txt, makevp.bat, pcregexp.pas.
146    
147    
148    STACK SIZE IN WINDOWS ENVIRONMENTS
149    
150    The default processor stack size of 1Mb in some Windows environments is too
151    small for matching patterns that need much recursion. In particular, test 2 may
152    fail because of this. Normally, running out of stack causes a crash, but there
153    have been cases where the test program has just died silently. See your linker
154    documentation for how to increase stack size if you experience problems. The
155    Linux default of 8Mb is a reasonable choice for the stack, though even that can
156    be too small for some pattern/subject combinations. There is more about stack
157    usage in the "pcrestack" documentation.
158    
159    
160  COMMENTS ABOUT WIN32 BUILDS  COMMENTS ABOUT WIN32 BUILDS
161    
162  There are two ways of building PCRE using the "congifure, make, make install"  There are two ways of building PCRE using the "configure, make, make install"
163  paradigm on Windows systems: using MinGW or using Cygwin. These are not at all  paradigm on Windows systems: using MinGW or using Cygwin. These are not at all
164  the same thing; they are completely different from each other. There is also  the same thing; they are completely different from each other. There is also
165  some experimental, undocumented support for building using "cmake", which you  some experimental, undocumented support for building using "cmake", which you
# Line 158  On both MinGW and Cygwin, PCRE should bu Line 190  On both MinGW and Cygwin, PCRE should bu
190    
191    ./configure && make && make install    ./configure && make && make install
192    
193  However, if you want to statically link your program against the .a file, you  This should create two libraries called libpcre and libpcreposix, and, if you
194  must define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc()  have enabled building the C++ wrapper, a third one called libpcrecpp. These are
195  and pcre_free() exported functions will be declared __declspec(dllimport), with  independent libraries: when you like with libpcreposix or libpcrecpp you must
196    also link with libpcre, which contains the basic functions. (Some earlier
197    releases of PCRE included the basic libpcre functions in libpcreposix. This no
198    longer happens.)
199    
200    If you want to statically link your program against a non-dll .a file, you must
201    define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc() and
202    pcre_free() exported functions will be declared __declspec(dllimport), with
203  unwanted results.  unwanted results.
204    
205  Using Cygwin's compiler generates libraries and executables that depend on  Using Cygwin's compiler generates libraries and executables that depend on
# Line 189  gcc and MinGW's gcc). So, a user can: Line 228  gcc and MinGW's gcc). So, a user can:
228    
229  The test files that are supplied with PCRE are in Unix format, with LF  The test files that are supplied with PCRE are in Unix format, with LF
230  characters as line terminators. It may be necessary to change the line  characters as line terminators. It may be necessary to change the line
231  terminators in order to get some of the tests to work. We hope to improves  terminators in order to get some of the tests to work. We hope to improve
232  things in this area in future.  things in this area in future.
233    
234    
# Line 271  $! Locale could not be set to fr Line 310  $! Locale could not be set to fr
310  $!  $!
311  =========================  =========================
312    
313  Last Updated: 26 March 2007  Last Updated: 05 July 2007
314  ****  ****

Legend:
Removed from v.145  
changed lines
  Added in v.198

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12