16 |
that name by distributing it that way. To use it with an existing program that |
that name by distributing it that way. To use it with an existing program that |
17 |
uses the POSIX API, it will have to be renamed or pointed at by a link. |
uses the POSIX API, it will have to be renamed or pointed at by a link. |
18 |
|
|
19 |
|
If you are using the POSIX interface to PCRE and there is already a POSIX regex |
20 |
|
library installed on your system, you must take care when linking programs to |
21 |
|
ensure that they link with PCRE's libpcreposix library. Otherwise they may pick |
22 |
|
up the "real" POSIX functions of the same name. |
23 |
|
|
24 |
|
|
25 |
Contributions by users of PCRE |
Contributions by users of PCRE |
26 |
------------------------------ |
------------------------------ |
101 |
is a representation of the compiled pattern, and this changes with the link |
is a representation of the compiled pattern, and this changes with the link |
102 |
size. |
size. |
103 |
|
|
104 |
|
. You can build PCRE so that its match() function does not call itself |
105 |
|
recursively. Instead, it uses blocks of data from the heap via special |
106 |
|
functions pcre_stack_malloc() and pcre_stack_free() to save data that would |
107 |
|
otherwise be saved on the stack. To build PCRE like this, use |
108 |
|
|
109 |
|
--disable-stack-for-recursion |
110 |
|
|
111 |
|
on the "configure" command. PCRE runs more slowly in this mode, but it may be |
112 |
|
necessary in environments with limited stack sizes. |
113 |
|
|
114 |
The "configure" script builds five files: |
The "configure" script builds five files: |
115 |
|
|
116 |
. libtool is a script that builds shared and/or static libraries |
. libtool is a script that builds shared and/or static libraries |
140 |
having to remember too many details. |
having to remember too many details. |
141 |
|
|
142 |
|
|
|
Cross-compiling PCRE on a Unix-like system |
|
|
------------------------------------------ |
|
|
|
|
|
PCRE needs to compile and run an auxiliary program as part of the building |
|
|
process. Obviously, if the real compilation is for some other system, it can't |
|
|
use the same CC and CFLAGS values when it is doing this. For cross compilation, |
|
|
therefore, you must set CC_FOR_BUILD to the local host's compiler, and you can |
|
|
set flags in CFLAGS_FOR_BUILD if you need to. |
|
|
|
|
|
|
|
143 |
Shared libraries on Unix-like systems |
Shared libraries on Unix-like systems |
144 |
------------------------------------- |
------------------------------------- |
145 |
|
|
174 |
process, the dftables.c source file is compiled *and run* on the local host, in |
process, the dftables.c source file is compiled *and run* on the local host, in |
175 |
order to generate the default character tables (the chartables.c file). It |
order to generate the default character tables (the chartables.c file). It |
176 |
therefore needs to be compiled with the local compiler, not the cross compiler. |
therefore needs to be compiled with the local compiler, not the cross compiler. |
177 |
You can do this by specifying HOST_CC (and if necessary HOST_CFLAGS) when |
You can do this by specifying CC_FOR_BUILD (and if necessary CFLAGS_FOR_BUILD) |
178 |
calling the "configure" command. If they are not specified, they default to the |
when calling the "configure" command. If they are not specified, they default |
179 |
values of CC and CFLAGS. |
to the values of CC and CFLAGS. |
180 |
|
|
181 |
|
|
182 |
Building on non-Unix systems |
Building on non-Unix systems |
183 |
---------------------------- |
---------------------------- |
184 |
|
|
185 |
For a non-Unix system, read the comments in the file NON-UNIX-USE. PCRE has |
For a non-Unix system, read the comments in the file NON-UNIX-USE, though if |
186 |
been compiled on Windows systems and on Macintoshes, but I don't know the |
the system supports the use of "configure" and "make" you may be able to build |
187 |
details because I don't use those systems. It should be straightforward to |
PCRE in the same way as for Unix systems. |
188 |
|
|
189 |
|
PCRE has been compiled on Windows systems and on Macintoshes, but I don't know |
190 |
|
the details because I don't use those systems. It should be straightforward to |
191 |
build PCRE on any system that has a Standard C compiler, because it uses only |
build PCRE on any system that has a Standard C compiler, because it uses only |
192 |
Standard C functions. |
Standard C functions. |
193 |
|
|
197 |
|
|
198 |
To test PCRE on a Unix system, run the RunTest script that is created by the |
To test PCRE on a Unix system, run the RunTest script that is created by the |
199 |
configuring process. (This can also be run by "make runtest", "make check", or |
configuring process. (This can also be run by "make runtest", "make check", or |
200 |
"make test".) For other systems, see the instruction in NON-UNIX-USE. |
"make test".) For other systems, see the instructions in NON-UNIX-USE. |
201 |
|
|
202 |
The script runs the pcretest test program (which is documented in its own man |
The script runs the pcretest test program (which is documented in its own man |
203 |
page) on each of the testinput files (in the testdata directory) in turn, |
page) on each of the testinput files (in the testdata directory) in turn, |
230 |
|
|
231 |
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 |
232 |
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 |
233 |
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 |
234 |
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 |
235 |
"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" |
236 |
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 |
237 |
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 |
238 |
|
|
239 |
** Failed to set locale "fr" |
** Failed to set locale "fr_FR" |
240 |
|
|
241 |
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, |
242 |
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. |
362 |
makevp.bat |
makevp.bat |
363 |
|
|
364 |
Philip Hazel <ph10@cam.ac.uk> |
Philip Hazel <ph10@cam.ac.uk> |
365 |
February 2003 |
December 2003 |