7 |
dnl empty. |
dnl empty. |
8 |
|
|
9 |
m4_define(pcre_major, [7]) |
m4_define(pcre_major, [7]) |
10 |
m4_define(pcre_minor, [1]) |
m4_define(pcre_minor, [3]) |
11 |
m4_define(pcre_prerelease, [-RC1]) |
m4_define(pcre_prerelease, [-RC4]) |
12 |
m4_define(pcre_date, [2007-03-05]) |
m4_define(pcre_date, [2007-08-03]) |
13 |
|
|
14 |
# Libtool shared library interface versions (current:revision:age) |
# Libtool shared library interface versions (current:revision:age) |
15 |
m4_define(libpcre_version, [0:1:0]) |
m4_define(libpcre_version, [0:1:0]) |
21 |
AC_CONFIG_SRCDIR([pcre.h.in]) |
AC_CONFIG_SRCDIR([pcre.h.in]) |
22 |
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip]) |
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip]) |
23 |
AC_CONFIG_HEADERS(config.h) |
AC_CONFIG_HEADERS(config.h) |
24 |
|
|
25 |
|
# The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just |
26 |
|
# "-g" for any other compiler. There doesn't seem to be a standard way of |
27 |
|
# getting rid of the -g (which I don't think is needed for a production |
28 |
|
# library). This fudge seems to achieve the necessary. First, we remember the |
29 |
|
# externally set values of CFLAGS and CXXFLAGS. Then call the AC_PROG_CC and |
30 |
|
# AC_PROG_CXX macros to find the compilers - if CFLAGS and CXXFLAGS are not |
31 |
|
# set, they will be set to Autoconf's defaults. Afterwards, if the original |
32 |
|
# values were not set, remove the -g from the Autoconf defaults. |
33 |
|
# (PH 02-May-07) |
34 |
|
|
35 |
|
remember_set_CFLAGS="$CFLAGS" |
36 |
|
remember_set_CXXFLAGS="$CXXFLAGS" |
37 |
|
|
38 |
AC_PROG_CC |
AC_PROG_CC |
39 |
AC_PROG_CXX |
AC_PROG_CXX |
40 |
|
|
41 |
|
if test "x$remember_set_CFLAGS" = "x" |
42 |
|
then |
43 |
|
if test "$CFLAGS" = "-g -O2" |
44 |
|
then |
45 |
|
CFLAGS="-O2" |
46 |
|
elif test "$CFLAGS" = "-g" |
47 |
|
then |
48 |
|
CFLAGS="" |
49 |
|
fi |
50 |
|
fi |
51 |
|
|
52 |
|
if test "x$remember_set_CXXFLAGS" = "x" |
53 |
|
then |
54 |
|
if test "$CXXFLAGS" = "-g -O2" |
55 |
|
then |
56 |
|
CXXFLAGS="-O2" |
57 |
|
elif test "$CXXFLAGS" = "-g" |
58 |
|
then |
59 |
|
CXXFLAGS="" |
60 |
|
fi |
61 |
|
fi |
62 |
|
|
63 |
|
|
64 |
AC_PROG_INSTALL |
AC_PROG_INSTALL |
65 |
AC_LIBTOOL_WIN32_DLL |
AC_LIBTOOL_WIN32_DLL |
66 |
AC_PROG_LIBTOOL |
AC_PROG_LIBTOOL |
67 |
|
AC_PROG_LN_S |
68 |
|
|
69 |
PCRE_MAJOR="pcre_major" |
PCRE_MAJOR="pcre_major" |
70 |
PCRE_MINOR="pcre_minor" |
PCRE_MINOR="pcre_minor" |
88 |
[disable C++ support]), |
[disable C++ support]), |
89 |
, enable_cpp=yes) |
, enable_cpp=yes) |
90 |
|
|
91 |
|
# Handle --enable-rebuild-chartables |
92 |
|
AC_ARG_ENABLE(rebuild-chartables, |
93 |
|
AS_HELP_STRING([--enable-rebuild-chartables], |
94 |
|
[rebuild character tables in current locale]), |
95 |
|
, enable_rebuild_chartables=no) |
96 |
|
|
97 |
# Handle --enable-utf8 (disabled by default) |
# Handle --enable-utf8 (disabled by default) |
98 |
AC_ARG_ENABLE(utf8, |
AC_ARG_ENABLE(utf8, |
99 |
AS_HELP_STRING([--enable-utf8], |
AS_HELP_STRING([--enable-utf8], |
109 |
# Handle --enable-newline=NL |
# Handle --enable-newline=NL |
110 |
dnl AC_ARG_ENABLE(newline, |
dnl AC_ARG_ENABLE(newline, |
111 |
dnl AS_HELP_STRING([--enable-newline=NL], |
dnl AS_HELP_STRING([--enable-newline=NL], |
112 |
dnl [use NL as newline (lf, cr, crlf, any; default=lf)]), |
dnl [use NL as newline (lf, cr, crlf, anycrlf, any; default=lf)]), |
113 |
dnl , enable_newline=lf) |
dnl , enable_newline=lf) |
114 |
|
|
115 |
# Separate newline options |
# Separate newline options |
126 |
AS_HELP_STRING([--enable-newline-is-crlf], |
AS_HELP_STRING([--enable-newline-is-crlf], |
127 |
[use CRLF as newline sequence]), |
[use CRLF as newline sequence]), |
128 |
ac_pcre_newline=crlf) |
ac_pcre_newline=crlf) |
129 |
|
AC_ARG_ENABLE(newline-is-anycrlf, |
130 |
|
AS_HELP_STRING([--enable-newline-is-anycrlf], |
131 |
|
[use CR, LF, or CRLF as newline sequence]), |
132 |
|
ac_pcre_newline=anycrlf) |
133 |
AC_ARG_ENABLE(newline-is-any, |
AC_ARG_ENABLE(newline-is-any, |
134 |
AS_HELP_STRING([--enable-newline-is-any], |
AS_HELP_STRING([--enable-newline-is-any], |
135 |
[use any valid Unicode newline sequence]), |
[use any valid Unicode newline sequence]), |
139 |
# Handle --enable-ebcdic |
# Handle --enable-ebcdic |
140 |
AC_ARG_ENABLE(ebcdic, |
AC_ARG_ENABLE(ebcdic, |
141 |
AS_HELP_STRING([--enable-ebcdic], |
AS_HELP_STRING([--enable-ebcdic], |
142 |
[assume EBCDIC coding rather than ASCII]), |
[assume EBCDIC coding rather than ASCII; use this only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]), |
143 |
, enable_ebcdic=no) |
, enable_ebcdic=no) |
144 |
|
|
145 |
# Handle --disable-stack-for-recursion |
# Handle --disable-stack-for-recursion |
196 |
enable_utf8=no |
enable_utf8=no |
197 |
fi |
fi |
198 |
|
|
199 |
|
# Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled. |
200 |
|
# |
201 |
|
if test "x$enable_ebcdic" = "xyes" |
202 |
|
then |
203 |
|
enable_rebuild_chartables=yes |
204 |
|
fi |
205 |
|
|
206 |
# Convert the newline identifier into the appropriate integer value. |
# Convert the newline identifier into the appropriate integer value. |
207 |
case "$enable_newline" in |
case "$enable_newline" in |
208 |
lf) ac_pcre_newline_value=10 ;; |
lf) ac_pcre_newline_value=10 ;; |
209 |
cr) ac_pcre_newline_value=13 ;; |
cr) ac_pcre_newline_value=13 ;; |
210 |
crlf) ac_pcre_newline_value=3338 ;; |
crlf) ac_pcre_newline_value=3338 ;; |
211 |
any) ac_pcre_newline_value=-1 ;; |
anycrlf) ac_pcre_newline_value=-2 ;; |
212 |
|
any) ac_pcre_newline_value=-1 ;; |
213 |
*) |
*) |
214 |
AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option]) |
AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option]) |
215 |
;; |
;; |
229 |
Standard C, but there are a few non-standard things it can cope with, allowing |
Standard C, but there are a few non-standard things it can cope with, allowing |
230 |
it to run on SunOS4 and other "close to standard" systems. |
it to run on SunOS4 and other "close to standard" systems. |
231 |
|
|
232 |
On a system without "configure" you should use the distributed config.h, and |
If you are going to build PCRE "by hand" on a system without "configure" you |
233 |
set up the macros the way you need them. |
should copy the distributed config.h.generic to config.h, and then set up the |
234 |
|
macros the way you need them. Alternatively, you can avoid editing by using -D |
235 |
If your system has bcopy() and not memmove(), change the definitions of |
on the compiler command line to set the macro values. |
236 |
HAVE_BCOPY and HAVE_MEMMOVE. If your system has neither bcopy() nor memmove(), |
|
237 |
leave them both undefined; an emulation function will be used. */]) |
PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if |
238 |
|
HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set |
239 |
|
them both to 0; an emulation function will be used. */]) |
240 |
|
|
241 |
# Checks for header files. |
# Checks for header files. |
242 |
AC_HEADER_STDC |
AC_HEADER_STDC |
250 |
AC_LANG_PUSH(C++) |
AC_LANG_PUSH(C++) |
251 |
|
|
252 |
# We could be more clever here, given we're doing AC_SUBST with this |
# We could be more clever here, given we're doing AC_SUBST with this |
253 |
# (eg set a var to be the name of the include file we want). But we're not |
# (eg set a var to be the name of the include file we want). But we're not |
254 |
# so it's easy to change back to 'regular' autoconf vars if we needed to. |
# so it's easy to change back to 'regular' autoconf vars if we needed to. |
255 |
AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"], |
AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"], |
256 |
[pcre_have_cpp_headers="0"]) |
[pcre_have_cpp_headers="0"]) |
266 |
|
|
267 |
# Conditional compilation |
# Conditional compilation |
268 |
AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes") |
AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes") |
269 |
|
AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes") |
270 |
|
|
271 |
# Checks for typedefs, structures, and compiler characteristics. |
# Checks for typedefs, structures, and compiler characteristics. |
272 |
|
|
309 |
if test "$enable_stack_for_recursion" = "no"; then |
if test "$enable_stack_for_recursion" = "no"; then |
310 |
AC_DEFINE([NO_RECURSE], [], [ |
AC_DEFINE([NO_RECURSE], [], [ |
311 |
PCRE uses recursive function calls to handle backtracking while |
PCRE uses recursive function calls to handle backtracking while |
312 |
matching. This can sometimes be a problem on systems that have |
matching. This can sometimes be a problem on systems that have |
313 |
stacks of limited size. Define NO_RECURSE to get a version that |
stacks of limited size. Define NO_RECURSE to get a version that |
314 |
doesn't use recursion in the match() function; instead it creates |
doesn't use recursion in the match() function; instead it creates |
315 |
its own stack by steam using pcre_recurse_malloc() to obtain memory |
its own stack by steam using pcre_recurse_malloc() to obtain memory |
320 |
fi |
fi |
321 |
|
|
322 |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
323 |
The value of NEWLINE determines the newline character sequence. On |
The value of NEWLINE determines the newline character sequence. On |
324 |
Unix-like systems, "configure" can be used to override the default, |
Unix-like systems, "configure" can be used to override the default, |
325 |
which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF), |
which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF), |
326 |
or -1 (ANY).]) |
-1 (ANY), or -2 (ANYCRLF).]) |
327 |
|
|
328 |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
329 |
The value of LINK_SIZE determines the number of bytes used to store |
The value of LINK_SIZE determines the number of bytes used to store |
362 |
NO_RECURSE is defined) that is used. The value of |
NO_RECURSE is defined) that is used. The value of |
363 |
MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To |
MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To |
364 |
have any useful effect, it must be less than the value of |
have any useful effect, it must be less than the value of |
365 |
MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT. |
MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT. |
366 |
There is a runtime method for setting a different limit. On systems |
There is a runtime method for setting a different limit. On systems |
367 |
that support it, "configure" can be used to override the default.]) |
that support it, "configure" can be used to override the default.]) |
368 |
|
|
369 |
AC_DEFINE([MAX_NAME_SIZE], [32], [ |
AC_DEFINE([MAX_NAME_SIZE], [32], [ |
376 |
change it. Care must be taken if it is increased, because it guards |
change it. Care must be taken if it is increased, because it guards |
377 |
against integer overflow caused by enormously large patterns.]) |
against integer overflow caused by enormously large patterns.]) |
378 |
|
|
379 |
AC_DEFINE([MAX_DUPLENGTH], [30000], [ |
AH_VERBATIM([PCRE_EXP_DEFN], [ |
|
This limit is parameterized just in case anybody ever wants to |
|
|
change it. Care must be taken if it is increased, because it guards |
|
|
against integer overflow caused by enormously large patterns.]) |
|
|
|
|
|
AH_VERBATIM([PCRE_DATA_SCOPE], [ |
|
380 |
/* If you are compiling for a system other than a Unix-like system or |
/* If you are compiling for a system other than a Unix-like system or |
381 |
Win32, and it needs some magic to be inserted before the definition |
Win32, and it needs some magic to be inserted before the definition |
382 |
of a function that is exported by the library, define this macro to |
of a function that is exported by the library, define this macro to |
386 |
every exported function that is part of the external API. It does |
every exported function that is part of the external API. It does |
387 |
not appear on functions that are "external" in the C sense, but |
not appear on functions that are "external" in the C sense, but |
388 |
which are internal to the library. */ |
which are internal to the library. */ |
389 |
#undef PCRE_DATA_SCOPE]) |
#undef PCRE_EXP_DEFN]) |
390 |
|
|
391 |
if test "$enable_ebcdic" = "yes"; then |
if test "$enable_ebcdic" = "yes"; then |
392 |
AC_DEFINE_UNQUOTED([EBCDIC], [], [ |
AC_DEFINE_UNQUOTED([EBCDIC], [], [ |
395 |
"configure", this can be done via --enable-ebcdic.]) |
"configure", this can be done via --enable-ebcdic.]) |
396 |
fi |
fi |
397 |
|
|
|
# Here is where pcre specific substs are handled |
|
|
# These 3 are only used by RunTest.in. |
|
|
# TODO: remove once RunTest uses pcretest -C instead. |
|
|
AC_SUBST(LINK_SIZE, $with_link_size) |
|
|
AC_SUBST(UTF8, $enable_utf8) |
|
|
AC_SUBST(UCP, $enable_unicode_properties) |
|
|
|
|
398 |
# Platform specific issues |
# Platform specific issues |
399 |
NO_UNDEFINED= |
NO_UNDEFINED= |
400 |
EXPORT_ALL_SYMBOLS= |
EXPORT_ALL_SYMBOLS= |
427 |
# Produce these files, in addition to config.h. |
# Produce these files, in addition to config.h. |
428 |
AC_CONFIG_FILES( |
AC_CONFIG_FILES( |
429 |
Makefile |
Makefile |
|
RunGrepTest |
|
|
RunTest |
|
430 |
libpcre.pc |
libpcre.pc |
431 |
libpcrecpp.pc |
libpcrecpp.pc |
432 |
pcre-config |
pcre-config |
436 |
) |
) |
437 |
|
|
438 |
# Make the generated script files executable. |
# Make the generated script files executable. |
439 |
AC_CONFIG_COMMANDS([script-chmod], [chmod a+x RunTest RunGrepTest pcre-config]) |
AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config]) |
440 |
|
|
441 |
|
# Make sure that pcre_chartables.c is removed in case the method for |
442 |
|
# creating it was changed by reconfiguration. |
443 |
|
AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c]) |
444 |
|
|
445 |
AC_OUTPUT |
AC_OUTPUT |
446 |
|
|
468 |
Unicode properties ..... : ${enable_unicode_properties} |
Unicode properties ..... : ${enable_unicode_properties} |
469 |
Newline char/sequence .. : ${enable_newline} |
Newline char/sequence .. : ${enable_newline} |
470 |
EBCDIC coding .......... : ${enable_ebcdic} |
EBCDIC coding .......... : ${enable_ebcdic} |
471 |
|
Rebuild char tables .... : ${enable_rebuild_chartables} |
472 |
Use stack recursion .... : ${enable_stack_for_recursion} |
Use stack recursion .... : ${enable_stack_for_recursion} |
473 |
POSIX mem threshold .... : ${with_posix_malloc_threshold} |
POSIX mem threshold .... : ${with_posix_malloc_threshold} |
474 |
Internal link size ..... : ${with_link_size} |
Internal link size ..... : ${with_link_size} |