/[pcre]/code/trunk/NON-UNIX-USE
ViewVC logotype

Diff of /code/trunk/NON-UNIX-USE

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

revision 155 by ph10, Tue Apr 24 13:36:11 2007 UTC revision 237 by ph10, Tue Sep 11 13:12:13 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 14  This document contains the following sec Line 15  This document contains the following sec
15    
16  GENERAL  GENERAL
17    
18  I (Philip Hazel) have no knowledge of Windows or VMS sytems and how their  I (Philip Hazel) have no experience of Windows or VMS sytems and how their
19  libraries work. The items in the PCRE distribution and Makefile that relate to  libraries work. The items in the PCRE distribution and Makefile that relate to
20  anything other than Unix-like systems are untested by me.  anything other than Unix-like systems are untested by me.
21    
# 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. When you compile any of the PCRE modules, you
46         must specify -DHAVE_CONFIG_H to your compiler so that config.h is included
47      An alternative approach is not to edit config.h, but to use -D on the       in the sources.
48      compiler command line to make any changes that you need.  
49         An alternative approach is not to edit config.h, but to use -D on the
50  (2) Copy or rename the file pcre.h.generic as pcre.h.       compiler command line to make any changes that you need to the
51         configuration options. In this case -DHAVE_CONFIG_H must not be set.
52  (3) EITHER:  
53        Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.       NOTE: There have been occasions when the way in which certain parameters
54         in config.h are used has changed between releases. (In the configure/make
55      OR:       world, this is handled automatically.) When upgrading to a new release,
56        Compile dftables.c as a stand-alone program, and then run it with the       you are strongly advised to review config.h.generic before re-using what
57        single argument "pcre_chartables.c". This generates a set of standard       you had previously.
58        character tables and writes them to that file. The tables are generated  
59        using the default C locale for your system. If you want to use a locale   (2) Copy or rename the file pcre.h.generic as pcre.h.
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   (3) EITHER:
62        a system that uses EBCDIC code.         Copy or rename file pcre_chartables.c.dist as pcre_chartables.c.
63    
64      The tables in pcre_chartables.c are defaults. The caller of PCRE can       OR:
65      specify alternative tables at run time.         Compile dftables.c as a stand-alone program (using -DHAVE_CONFIG_H if
66           you have set up config.h), and then run it with the single argument
67  (4) Compile the following source files:         "pcre_chartables.c". This generates a set of standard character tables
68           and writes them to that file. The tables are generated using the default
69        pcre_chartables.c         C locale for your system. If you want to use a locale that is specified
70        pcre_compile.c         by LC_xxx environment variables, add the -L option to the dftables
71        pcre_config.c         command. You must use this method if you are building on a system that
72        pcre_dfa_exec.c         uses EBCDIC code.
73        pcre_exec.c  
74        pcre_fullinfo.c       The tables in pcre_chartables.c are defaults. The caller of PCRE can
75        pcre_get.c       specify alternative tables at run time.
76        pcre_globals.c  
77        pcre_info.c   (4) Ensure that you have the following header files:
78        pcre_maketables.c  
79        pcre_newline.c         pcre_internal.h
80        pcre_ord2utf8.c         ucp.h
81        pcre_refcount.c         ucpinternal.h
82        pcre_study.c         ucptable.h
83        pcre_tables.c  
84        pcre_try_flipped.c   (5) Also ensure that you have the following file, which is #included as source
85        pcre_ucp_searchfuncs.c       when building a debugging version of PCRE and is also used by pcretest.
86        pcre_valid_utf8.c  
87        pcre_version.c         pcre_printint.src
88        pcre_xclass.c  
89     (6) Compile the following source files, setting -DHAVE_CONFIG_H as a compiler
90      Now link them all together into an object library in whichever form your       option if you have set up config.h with your configuration, or else use
91      system keeps such libraries. This is the basic PCRE C library. If your       other -D settings to change the configuration as required.
92      system has static and shared libraries, you may have to do this once for  
93      each type.         pcre_chartables.c
94           pcre_compile.c
95  (5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix         pcre_config.c
96      library.         pcre_dfa_exec.c
97           pcre_exec.c
98  (6) Compile the test program pcretest.c. This needs the functions in the         pcre_fullinfo.c
99      pcre and pcreposix libraries when linking.         pcre_get.c
100           pcre_globals.c
101  (7) Run pcretest on the testinput files in the testdata directory, and check         pcre_info.c
102      that the output matches the corresponding testoutput files. Note that the         pcre_maketables.c
103      supplied files are in Unix format, with just LF characters as line         pcre_newline.c
104      terminators. You may need to edit them to change this if your system uses a         pcre_ord2utf8.c
105      different convention.         pcre_refcount.c
106           pcre_study.c
107           pcre_tables.c
108           pcre_try_flipped.c
109           pcre_ucp_searchfuncs.c
110           pcre_valid_utf8.c
111           pcre_version.c
112           pcre_xclass.c
113    
114         Make sure that you include -I. in the compiler command (or equivalent for
115         an unusual compiler) so that all included PCRE header files are first
116         sought in the current directory. Otherwise you run the risk of picking up
117         a previously-installed file from somewhere else.
118    
119     (7) Now link all the compiled code into an object library in whichever form
120         your system keeps such libraries. This is the basic PCRE C library. If
121         your system has static and shared libraries, you may have to do this once
122         for each type.
123    
124     (8) Similarly, compile pcreposix.c (remembering -DHAVE_CONFIG_H if necessary)
125         and link the result (on its own) as the pcreposix library.
126    
127     (9) Compile the test program pcretest.c (again, don't forget -DHAVE_CONFIG_H).
128         This needs the functions in the pcre and pcreposix libraries when linking.
129         It also needs the pcre_printint.src source file, which it #includes.
130    
131    (10) Run pcretest on the testinput files in the testdata directory, and check
132         that the output matches the corresponding testoutput files. Note that the
133         supplied files are in Unix format, with just LF characters as line
134         terminators. You may need to edit them to change this if your system uses
135         a different convention.
136    
137  (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
138      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).
139    
140    
141  THE C++ WRAPPER FUNCTIONS  THE C++ WRAPPER FUNCTIONS
# Line 125  additional files. The following files in Line 156  additional files. The following files in
156  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.
157    
158    
159    STACK SIZE IN WINDOWS ENVIRONMENTS
160    
161    The default processor stack size of 1Mb in some Windows environments is too
162    small for matching patterns that need much recursion. In particular, test 2 may
163    fail because of this. Normally, running out of stack causes a crash, but there
164    have been cases where the test program has just died silently. See your linker
165    documentation for how to increase stack size if you experience problems. The
166    Linux default of 8Mb is a reasonable choice for the stack, though even that can
167    be too small for some pattern/subject combinations. There is more about stack
168    usage in the "pcrestack" documentation.
169    
170    
171  COMMENTS ABOUT WIN32 BUILDS  COMMENTS ABOUT WIN32 BUILDS
172    
173  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"
174  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
175  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
176  some experimental, undocumented support for building using "cmake", which you  some experimental, undocumented support for building using "cmake", which you
# Line 159  On both MinGW and Cygwin, PCRE should bu Line 202  On both MinGW and Cygwin, PCRE should bu
202    ./configure && make && make install    ./configure && make && make install
203    
204  This should create two libraries called libpcre and libpcreposix, and, if you  This should create two libraries called libpcre and libpcreposix, and, if you
205  have enabled building the C++ wrapper, a third one called libpcrecpp.  have enabled building the C++ wrapper, a third one called libpcrecpp. These are
206    independent libraries: when you like with libpcreposix or libpcrecpp you must
207    also link with libpcre, which contains the basic functions. (Some earlier
208    releases of PCRE included the basic libpcre functions in libpcreposix. This no
209    longer happens.)
210    
211  If you want to statically link your program against a non-dll .a file, you must  If you want to statically link your program against a non-dll .a file, you must
212  define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc() and  define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc() and
# Line 274  $!   Locale could not be set to fr Line 321  $!   Locale could not be set to fr
321  $!  $!
322  =========================  =========================
323    
324  Last Updated: 24 April 2007  Last Updated: 11 September 2007
325  ****  ****

Legend:
Removed from v.155  
changed lines
  Added in v.237

  ViewVC Help
Powered by ViewVC 1.1.5