1 |
dnl Process this file with autoconf to produce a configure script. |
dnl Process this file with autoconf to produce a configure script. |
2 |
|
|
3 |
dnl NOTE FOR MAINTAINERS: Do not use major or minor version numbers with |
dnl NOTE FOR MAINTAINERS: Do not use minor version numbers 08 or 09 because |
4 |
dnl leading zeros, because they may be treated as octal constants. The |
dnl the leading zeros may cause them to be treated as invalid octal constants |
5 |
dnl PCRE_PRERELEASE feature is for identifying release candidates. It might |
dnl if a PCRE user writes code that uses PCRE_MINOR as a number. There is now |
6 |
dnl be defined as -RC2, for example. For real releases, it should be defined |
dnl a check further down that throws an error if 08 or 09 are used. |
7 |
dnl empty. |
|
8 |
|
dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might |
9 |
m4_define(pcre_major, [7]) |
dnl be defined as -RC2, for example. For real releases, it should be empty. |
10 |
m4_define(pcre_minor, [2]) |
|
11 |
m4_define(pcre_prerelease, [-RC2]) |
m4_define(pcre_major, [8]) |
12 |
m4_define(pcre_date, [2007-06-05]) |
m4_define(pcre_minor, [21]) |
13 |
|
m4_define(pcre_prerelease, []) |
14 |
|
m4_define(pcre_date, [2011-12-12]) |
15 |
|
|
16 |
# Libtool shared library interface versions (current:revision:age) |
# Libtool shared library interface versions (current:revision:age) |
17 |
m4_define(libpcre_version, [0:1:0]) |
m4_define(libpcre_version, [0:1:0]) |
24 |
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip]) |
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip]) |
25 |
AC_CONFIG_HEADERS(config.h) |
AC_CONFIG_HEADERS(config.h) |
26 |
|
|
27 |
|
# This was added at the suggestion of libtoolize (03-Jan-10) |
28 |
|
AC_CONFIG_MACRO_DIR([m4]) |
29 |
|
|
30 |
# The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just |
# The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just |
31 |
# "-g" for any other compiler. There doesn't seem to be a standard way of |
# "-g" for any other compiler. There doesn't seem to be a standard way of |
32 |
# getting rid of the -g (which I don't think is needed for a production |
# getting rid of the -g (which I don't think is needed for a production |
65 |
fi |
fi |
66 |
fi |
fi |
67 |
|
|
68 |
|
# AC_PROG_CXX will return "g++" even if no c++ compiler is installed. |
69 |
|
# Check for that case, and just disable c++ code if g++ doesn't run. |
70 |
|
AC_LANG_PUSH(C++) |
71 |
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],, CXX=""; CXXCP=""; CXXFLAGS="") |
72 |
|
AC_LANG_POP |
73 |
|
|
74 |
|
# Check for a 64-bit integer type |
75 |
|
AC_TYPE_INT64_T |
76 |
|
|
77 |
AC_PROG_INSTALL |
AC_PROG_INSTALL |
78 |
AC_LIBTOOL_WIN32_DLL |
AC_LIBTOOL_WIN32_DLL |
79 |
AC_PROG_LIBTOOL |
LT_INIT |
80 |
AC_PROG_LN_S |
AC_PROG_LN_S |
81 |
|
|
82 |
PCRE_MAJOR="pcre_major" |
PCRE_MAJOR="pcre_major" |
84 |
PCRE_PRERELEASE="pcre_prerelease" |
PCRE_PRERELEASE="pcre_prerelease" |
85 |
PCRE_DATE="pcre_date" |
PCRE_DATE="pcre_date" |
86 |
|
|
87 |
|
if test "$PCRE_MINOR" = "08" -o "$PCRE_MINOR" = "09" |
88 |
|
then |
89 |
|
echo "***" |
90 |
|
echo "*** Minor version number $PCRE_MINOR must not be used. ***" |
91 |
|
echo "*** Use only 01 to 07 or 10 onwards, to avoid octal issues. ***" |
92 |
|
echo "***" |
93 |
|
exit 1 |
94 |
|
fi |
95 |
|
|
96 |
AC_SUBST(PCRE_MAJOR) |
AC_SUBST(PCRE_MAJOR) |
97 |
AC_SUBST(PCRE_MINOR) |
AC_SUBST(PCRE_MINOR) |
98 |
AC_SUBST(PCRE_PRERELEASE) |
AC_SUBST(PCRE_PRERELEASE) |
104 |
htmldir='${docdir}/html' |
htmldir='${docdir}/html' |
105 |
fi |
fi |
106 |
|
|
107 |
# Handle --disable-cpp |
# Handle --disable-cpp. The substitution of enable_cpp is needed for use in |
108 |
|
# pcre-config. |
109 |
AC_ARG_ENABLE(cpp, |
AC_ARG_ENABLE(cpp, |
110 |
AS_HELP_STRING([--disable-cpp], |
AS_HELP_STRING([--disable-cpp], |
111 |
[disable C++ support]), |
[disable C++ support]), |
112 |
, enable_cpp=yes) |
, enable_cpp=yes) |
113 |
|
AC_SUBST(enable_cpp) |
114 |
|
|
115 |
|
# Handle --enable-jit (disabled by default) |
116 |
|
AC_ARG_ENABLE(jit, |
117 |
|
AS_HELP_STRING([--enable-jit], |
118 |
|
[enable Just-In-Time compiling support]), |
119 |
|
, enable_jit=no) |
120 |
|
|
121 |
|
# Handle --disable-pcregrep-jit (enabled by default) |
122 |
|
AC_ARG_ENABLE(pcregrep-jit, |
123 |
|
AS_HELP_STRING([--disable-pcregrep-jit], |
124 |
|
[disable JIT support in pcregrep]), |
125 |
|
, enable_pcregrep_jit=yes) |
126 |
|
|
127 |
# Handle --enable-rebuild-chartables |
# Handle --enable-rebuild-chartables |
128 |
AC_ARG_ENABLE(rebuild-chartables, |
AC_ARG_ENABLE(rebuild-chartables, |
133 |
# Handle --enable-utf8 (disabled by default) |
# Handle --enable-utf8 (disabled by default) |
134 |
AC_ARG_ENABLE(utf8, |
AC_ARG_ENABLE(utf8, |
135 |
AS_HELP_STRING([--enable-utf8], |
AS_HELP_STRING([--enable-utf8], |
136 |
[enable UTF-8 support]), |
[enable UTF-8 support (incompatible with --enable-ebcdic)]), |
137 |
, enable_utf8=unset) |
, enable_utf8=unset) |
138 |
|
|
139 |
# Handle --enable-unicode-properties |
# Handle --enable-unicode-properties |
172 |
ac_pcre_newline=any) |
ac_pcre_newline=any) |
173 |
enable_newline="$ac_pcre_newline" |
enable_newline="$ac_pcre_newline" |
174 |
|
|
175 |
|
# Handle --enable-bsr-anycrlf |
176 |
|
AC_ARG_ENABLE(bsr-anycrlf, |
177 |
|
AS_HELP_STRING([--enable-bsr-anycrlf], |
178 |
|
[\R matches only CR, LF, CRLF by default]), |
179 |
|
, enable_bsr_anycrlf=no) |
180 |
|
|
181 |
# Handle --enable-ebcdic |
# Handle --enable-ebcdic |
182 |
AC_ARG_ENABLE(ebcdic, |
AC_ARG_ENABLE(ebcdic, |
183 |
AS_HELP_STRING([--enable-ebcdic], |
AS_HELP_STRING([--enable-ebcdic], |
184 |
[assume EBCDIC coding rather than ASCII (implies --enable-rebuild-chartables)]), |
[assume EBCDIC coding rather than ASCII; incompatible with --enable-utf8; use only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]), |
185 |
, enable_ebcdic=no) |
, enable_ebcdic=no) |
186 |
|
|
187 |
# Handle --disable-stack-for-recursion |
# Handle --disable-stack-for-recursion |
190 |
[don't use stack recursion when matching]), |
[don't use stack recursion when matching]), |
191 |
, enable_stack_for_recursion=yes) |
, enable_stack_for_recursion=yes) |
192 |
|
|
193 |
|
# Handle --enable-pcregrep-libz |
194 |
|
AC_ARG_ENABLE(pcregrep-libz, |
195 |
|
AS_HELP_STRING([--enable-pcregrep-libz], |
196 |
|
[link pcregrep with libz to handle .gz files]), |
197 |
|
, enable_pcregrep_libz=no) |
198 |
|
|
199 |
|
# Handle --enable-pcregrep-libbz2 |
200 |
|
AC_ARG_ENABLE(pcregrep-libbz2, |
201 |
|
AS_HELP_STRING([--enable-pcregrep-libbz2], |
202 |
|
[link pcregrep with libbz2 to handle .bz2 files]), |
203 |
|
, enable_pcregrep_libbz2=no) |
204 |
|
|
205 |
|
# Handle --with-pcregrep-bufsize=N |
206 |
|
AC_ARG_WITH(pcregrep-bufsize, |
207 |
|
AS_HELP_STRING([--with-pcregrep-bufsize=N], |
208 |
|
[pcregrep buffer size (default=20480)]), |
209 |
|
, with_pcregrep_bufsize=20480) |
210 |
|
|
211 |
|
# Handle --enable-pcretest-libreadline |
212 |
|
AC_ARG_ENABLE(pcretest-libreadline, |
213 |
|
AS_HELP_STRING([--enable-pcretest-libreadline], |
214 |
|
[link pcretest with libreadline]), |
215 |
|
, enable_pcretest_libreadline=no) |
216 |
|
|
217 |
# Handle --with-posix-malloc-threshold=NBYTES |
# Handle --with-posix-malloc-threshold=NBYTES |
218 |
AC_ARG_WITH(posix-malloc-threshold, |
AC_ARG_WITH(posix-malloc-threshold, |
219 |
AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES], |
AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES], |
263 |
fi |
fi |
264 |
|
|
265 |
# Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled. |
# Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled. |
266 |
|
# Also check that UTF-8 support is not requested, because PCRE cannot handle |
267 |
|
# EBCDIC and UTF-8 in the same build. To do so it would need to use different |
268 |
|
# character constants depending on the mode. |
269 |
# |
# |
270 |
if test "x$enable_ebcdic" = "xyes" |
if test "x$enable_ebcdic" = "xyes" |
271 |
then |
then |
272 |
enable_rebuild_chartables=yes |
enable_rebuild_chartables=yes |
273 |
|
if test "x$enable_utf8" = "xyes" |
274 |
|
then |
275 |
|
AC_MSG_ERROR([support for EBCDIC and UTF-8 cannot be enabled at the same time]) |
276 |
|
fi |
277 |
fi |
fi |
278 |
|
|
279 |
# Convert the newline identifier into the appropriate integer value. |
# Convert the newline identifier into the appropriate integer value. |
304 |
|
|
305 |
If you are going to build PCRE "by hand" on a system without "configure" you |
If you are going to build PCRE "by hand" on a system without "configure" you |
306 |
should copy the distributed config.h.generic to config.h, and then set up the |
should copy the distributed config.h.generic to config.h, and then set up the |
307 |
macros the way you need them. Alternatively, you can avoid editing by using -D |
macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to |
308 |
on the compiler command line to set the macro values. |
all of your compile commands, so that config.h is included at the start of |
309 |
|
every source. |
310 |
|
|
311 |
|
Alternatively, you can avoid editing by using -D on the compiler command line |
312 |
|
to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H. |
313 |
|
|
314 |
PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if |
PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if |
315 |
HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set |
HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set |
326 |
then |
then |
327 |
AC_LANG_PUSH(C++) |
AC_LANG_PUSH(C++) |
328 |
|
|
329 |
|
# Older versions of pcre defined pcrecpp::no_arg, but in new versions |
330 |
|
# it's called pcrecpp::RE::no_arg. For backwards ABI compatibility, |
331 |
|
# we want to make one an alias for the other. Different systems do |
332 |
|
# this in different ways. Some systems, for instance, can do it via |
333 |
|
# a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4). |
334 |
|
OLD_LDFLAGS="$LDFLAGS" |
335 |
|
for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \ |
336 |
|
"-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do |
337 |
|
AC_MSG_CHECKING([for alias support in the linker]) |
338 |
|
LDFLAGS="$OLD_LDFLAGS -Wl,$flag" |
339 |
|
# We try to run the linker with this new ld flag. If the link fails, |
340 |
|
# we give up and remove the new flag from LDFLAGS. |
341 |
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([namespace pcrecpp { |
342 |
|
class RE { static int no_arg; }; |
343 |
|
int RE::no_arg; |
344 |
|
}], |
345 |
|
[])], |
346 |
|
[AC_MSG_RESULT([yes]); |
347 |
|
EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag"; |
348 |
|
break;], |
349 |
|
AC_MSG_RESULT([no])) |
350 |
|
done |
351 |
|
LDFLAGS="$OLD_LDFLAGS" |
352 |
|
|
353 |
# 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 |
354 |
# (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 |
355 |
# 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. |
359 |
[pcre_have_bits_type_traits="0"]) |
[pcre_have_bits_type_traits="0"]) |
360 |
AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"], |
AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"], |
361 |
[pcre_have_type_traits="0"]) |
[pcre_have_type_traits="0"]) |
362 |
|
|
363 |
|
# (This isn't c++-specific, but is only used in pcrecpp.cc, so try this |
364 |
|
# in a c++ context. This matters becuase strtoimax is C99 and may not |
365 |
|
# be supported by the C++ compiler.) |
366 |
|
# Figure out how to create a longlong from a string: strtoll and |
367 |
|
# equiv. It's not enough to call AC_CHECK_FUNCS: hpux has a |
368 |
|
# strtoll, for instance, but it only takes 2 args instead of 3! |
369 |
|
# We have to call AH_TEMPLATE since AC_DEFINE_UNQUOTED below is complex. |
370 |
|
AH_TEMPLATE(HAVE_STRTOQ, [Define to 1 if you have `strtoq'.]) |
371 |
|
AH_TEMPLATE(HAVE_STRTOLL, [Define to 1 if you have `strtoll'.]) |
372 |
|
AH_TEMPLATE(HAVE__STRTOI64, [Define to 1 if you have `_strtoi64'.]) |
373 |
|
AH_TEMPLATE(HAVE_STRTOIMAX, [Define to 1 if you have `strtoimax'.]) |
374 |
|
have_strto_fn=0 |
375 |
|
for fn in strtoq strtoll _strtoi64 strtoimax; do |
376 |
|
AC_MSG_CHECKING([for $fn]) |
377 |
|
if test "$fn" = strtoimax; then |
378 |
|
include=stdint.h |
379 |
|
else |
380 |
|
include=stdlib.h |
381 |
|
fi |
382 |
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <$include>], |
383 |
|
[char* e; return $fn("100", &e, 10)])], |
384 |
|
[AC_MSG_RESULT(yes) |
385 |
|
AC_DEFINE_UNQUOTED(HAVE_`echo $fn | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`, 1, |
386 |
|
[Define to 1 if you have `$fn'.]) |
387 |
|
have_strto_fn=1 |
388 |
|
break], |
389 |
|
[AC_MSG_RESULT(no)]) |
390 |
|
done |
391 |
|
|
392 |
|
if test "$have_strto_fn" = 1; then |
393 |
|
AC_CHECK_TYPES([long long], |
394 |
|
[pcre_have_long_long="1"], |
395 |
|
[pcre_have_long_long="0"]) |
396 |
|
AC_CHECK_TYPES([unsigned long long], |
397 |
|
[pcre_have_ulong_long="1"], |
398 |
|
[pcre_have_ulong_long="0"]) |
399 |
|
else |
400 |
|
pcre_have_long_long="0" |
401 |
|
pcre_have_ulong_long="0" |
402 |
|
fi |
403 |
|
AC_SUBST(pcre_have_long_long) |
404 |
|
AC_SUBST(pcre_have_ulong_long) |
405 |
|
|
406 |
AC_LANG_POP |
AC_LANG_POP |
407 |
fi |
fi |
408 |
# Using AC_SUBST eliminates the need to include config.h in a public .h file |
# Using AC_SUBST eliminates the need to include config.h in a public .h file |
412 |
# Conditional compilation |
# Conditional compilation |
413 |
AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes") |
AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes") |
414 |
AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes") |
AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes") |
415 |
|
AM_CONDITIONAL(WITH_JIT, test "x$enable_jit" = "xyes") |
416 |
|
AM_CONDITIONAL(WITH_UTF8, test "x$enable_utf8" = "xyes") |
417 |
|
|
418 |
# Checks for typedefs, structures, and compiler characteristics. |
# Checks for typedefs, structures, and compiler characteristics. |
419 |
|
|
420 |
AC_C_CONST |
AC_C_CONST |
421 |
AC_TYPE_SIZE_T |
AC_TYPE_SIZE_T |
422 |
|
|
|
AC_CHECK_TYPES([long long], |
|
|
[pcre_have_long_long="1"], |
|
|
[pcre_have_long_long="0"]) |
|
|
AC_CHECK_TYPES([unsigned long long], |
|
|
[pcre_have_ulong_long="1"], |
|
|
[pcre_have_ulong_long="0"]) |
|
|
AC_SUBST(pcre_have_long_long) |
|
|
AC_SUBST(pcre_have_ulong_long) |
|
|
|
|
423 |
# Checks for library functions. |
# Checks for library functions. |
424 |
|
|
425 |
AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll) |
AC_CHECK_FUNCS(bcopy memmove strerror) |
426 |
|
|
427 |
|
# Check for the availability of libz (aka zlib) |
428 |
|
|
429 |
|
AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1]) |
430 |
|
AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1]) |
431 |
|
|
432 |
|
# Check for the availability of libbz2. Originally we just used AC_CHECK_LIB, |
433 |
|
# as for libz. However, this had the following problem, diagnosed and fixed by |
434 |
|
# a user: |
435 |
|
# |
436 |
|
# - libbz2 uses the Pascal calling convention (WINAPI) for the functions |
437 |
|
# under Win32. |
438 |
|
# - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h", |
439 |
|
# therefore missing the function definition. |
440 |
|
# - The compiler thus generates a "C" signature for the test function. |
441 |
|
# - The linker fails to find the "C" function. |
442 |
|
# - PCRE fails to configure if asked to do so against libbz2. |
443 |
|
# |
444 |
|
# Solution: |
445 |
|
# |
446 |
|
# - Replace the AC_CHECK_LIB test with a custom test. |
447 |
|
|
448 |
|
AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1]) |
449 |
|
# Original test |
450 |
|
# AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1]) |
451 |
|
# |
452 |
|
# Custom test follows |
453 |
|
|
454 |
|
AC_MSG_CHECKING([for libbz2]) |
455 |
|
OLD_LIBS="$LIBS" |
456 |
|
LIBS="$LIBS -lbz2" |
457 |
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
458 |
|
#ifdef HAVE_BZLIB_H |
459 |
|
#include <bzlib.h> |
460 |
|
#endif]], |
461 |
|
[[return (int)BZ2_bzopen("conftest", "rb");]])], |
462 |
|
[AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;], |
463 |
|
AC_MSG_RESULT([no])) |
464 |
|
LIBS="$OLD_LIBS" |
465 |
|
|
466 |
|
# Check for the availabiity of libreadline |
467 |
|
|
468 |
|
AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1]) |
469 |
|
AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1]) |
470 |
|
AC_CHECK_LIB([readline], [readline], [HAVE_LIB_READLINE=1]) |
471 |
|
|
472 |
# This facilitates -ansi builds under Linux |
# This facilitates -ansi builds under Linux |
473 |
dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc]) |
dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc]) |
474 |
|
|
475 |
|
PCRE_STATIC_CFLAG="" |
476 |
if test "x$enable_shared" = "xno" ; then |
if test "x$enable_shared" = "xno" ; then |
477 |
AC_DEFINE([PCRE_STATIC], [1], [ |
AC_DEFINE([PCRE_STATIC], [1], [ |
478 |
Define if linking statically (TODO: make nice with Libtool)]) |
Define if linking statically (TODO: make nice with Libtool)]) |
479 |
|
PCRE_STATIC_CFLAG="-DPCRE_STATIC" |
480 |
fi |
fi |
481 |
|
AC_SUBST(PCRE_STATIC_CFLAG) |
482 |
|
|
483 |
# Here is where pcre specific defines are handled |
# Here is where pcre specific defines are handled |
484 |
|
|
485 |
|
if test "$enable_jit" = "yes"; then |
486 |
|
AC_DEFINE([SUPPORT_JIT], [], [ |
487 |
|
Define to enable support for Just-In-Time compiling.]) |
488 |
|
else |
489 |
|
enable_pcregrep_jit="no" |
490 |
|
fi |
491 |
|
|
492 |
|
if test "$enable_pcregrep_jit" = "yes"; then |
493 |
|
AC_DEFINE([SUPPORT_PCREGREP_JIT], [], [ |
494 |
|
Define to enable JIT support in pcregrep.]) |
495 |
|
fi |
496 |
|
|
497 |
if test "$enable_utf8" = "yes"; then |
if test "$enable_utf8" = "yes"; then |
498 |
AC_DEFINE([SUPPORT_UTF8], [], [ |
AC_DEFINE([SUPPORT_UTF8], [], [ |
499 |
Define to enable support for the UTF-8 Unicode encoding.]) |
Define to enable support for the UTF-8 Unicode encoding. This will |
500 |
|
work even in an EBCDIC environment, but it is incompatible with |
501 |
|
the EBCDIC macro. That is, PCRE can support *either* EBCDIC code |
502 |
|
*or* ASCII/UTF-8, but not both at once.]) |
503 |
fi |
fi |
504 |
|
|
505 |
if test "$enable_unicode_properties" = "yes"; then |
if test "$enable_unicode_properties" = "yes"; then |
506 |
AC_DEFINE([SUPPORT_UCP], [], [ |
AC_DEFINE([SUPPORT_UCP], [], [ |
507 |
Define to enable support for Unicode properties]) |
Define to enable support for Unicode properties.]) |
508 |
fi |
fi |
509 |
|
|
510 |
if test "$enable_stack_for_recursion" = "no"; then |
if test "$enable_stack_for_recursion" = "no"; then |
520 |
(use --disable-stack-for-recursion).]) |
(use --disable-stack-for-recursion).]) |
521 |
fi |
fi |
522 |
|
|
523 |
|
if test "$enable_pcregrep_libz" = "yes"; then |
524 |
|
AC_DEFINE([SUPPORT_LIBZ], [], [ |
525 |
|
Define to allow pcregrep to be linked with libz, so that it is |
526 |
|
able to handle .gz files.]) |
527 |
|
fi |
528 |
|
|
529 |
|
if test "$enable_pcregrep_libbz2" = "yes"; then |
530 |
|
AC_DEFINE([SUPPORT_LIBBZ2], [], [ |
531 |
|
Define to allow pcregrep to be linked with libbz2, so that it is |
532 |
|
able to handle .bz2 files.]) |
533 |
|
fi |
534 |
|
|
535 |
|
if test $with_pcregrep_bufsize -lt 8192 ; then |
536 |
|
with_pcregrep_bufsize="8192" |
537 |
|
fi |
538 |
|
|
539 |
|
AC_DEFINE_UNQUOTED([PCREGREP_BUFSIZE], [$with_pcregrep_bufsize], [ |
540 |
|
The value of PCREGREP_BUFSIZE determines the size of buffer used by |
541 |
|
pcregrep to hold parts of the file it is searching. On systems that |
542 |
|
support it, "configure" can be used to override the default, which is |
543 |
|
8192. This is also the minimum value. The actual amount of memory used by |
544 |
|
pcregrep is three times this number, because it allows for the buffering of |
545 |
|
"before" and "after" lines.]) |
546 |
|
|
547 |
|
if test "$enable_pcretest_libreadline" = "yes"; then |
548 |
|
AC_DEFINE([SUPPORT_LIBREADLINE], [], [ |
549 |
|
Define to allow pcretest to be linked with libreadline.]) |
550 |
|
fi |
551 |
|
|
552 |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
553 |
The value of NEWLINE determines the newline character sequence. On |
The value of NEWLINE determines the newline character sequence. On |
554 |
Unix-like systems, "configure" can be used to override the default, |
systems that support it, "configure" can be used to override the |
555 |
which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF), |
default, which is 10. The possible values are 10 (LF), 13 (CR), |
556 |
-1 (ANY), or -2 (ANYCRLF).]) |
3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).]) |
557 |
|
|
558 |
|
if test "$enable_bsr_anycrlf" = "yes"; then |
559 |
|
AC_DEFINE([BSR_ANYCRLF], [], [ |
560 |
|
By default, the \R escape sequence matches any Unicode line ending |
561 |
|
character or sequence of characters. If BSR_ANYCRLF is defined, this is |
562 |
|
changed so that backslash-R matches only CR, LF, or CRLF. The build- |
563 |
|
time default can be overridden by the user of PCRE at runtime. On |
564 |
|
systems that support it, "configure" can be used to override the |
565 |
|
default.]) |
566 |
|
fi |
567 |
|
|
568 |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
569 |
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 |
616 |
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 |
617 |
against integer overflow caused by enormously large patterns.]) |
against integer overflow caused by enormously large patterns.]) |
618 |
|
|
|
AC_DEFINE([MAX_DUPLENGTH], [30000], [ |
|
|
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.]) |
|
|
|
|
619 |
AH_VERBATIM([PCRE_EXP_DEFN], [ |
AH_VERBATIM([PCRE_EXP_DEFN], [ |
620 |
/* 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 |
621 |
Win32, and it needs some magic to be inserted before the definition |
Win32, and it needs some magic to be inserted before the definition |
632 |
AC_DEFINE_UNQUOTED([EBCDIC], [], [ |
AC_DEFINE_UNQUOTED([EBCDIC], [], [ |
633 |
If you are compiling for a system that uses EBCDIC instead of ASCII |
If you are compiling for a system that uses EBCDIC instead of ASCII |
634 |
character codes, define this macro as 1. On systems that can use |
character codes, define this macro as 1. On systems that can use |
635 |
"configure", this can be done via --enable-ebcdic.]) |
"configure", this can be done via --enable-ebcdic. PCRE will then |
636 |
|
assume that all input strings are in EBCDIC. If you do not define |
637 |
|
this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode. |
638 |
|
It is not possible to build a version of PCRE that supports both |
639 |
|
EBCDIC and UTF-8.]) |
640 |
fi |
fi |
641 |
|
|
642 |
# Platform specific issues |
# Platform specific issues |
654 |
# The extra LDFLAGS for each particular library |
# The extra LDFLAGS for each particular library |
655 |
# (Note: The libpcre*_version bits are m4 variables, assigned above) |
# (Note: The libpcre*_version bits are m4 variables, assigned above) |
656 |
|
|
657 |
EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version" |
EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \ |
658 |
|
$NO_UNDEFINED -version-info libpcre_version" |
659 |
|
|
660 |
EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version" |
EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \ |
661 |
|
$NO_UNDEFINED -version-info libpcreposix_version" |
662 |
|
|
663 |
EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version" |
EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \ |
664 |
|
$NO_UNDEFINED -version-info libpcrecpp_version \ |
665 |
|
$EXPORT_ALL_SYMBOLS" |
666 |
|
|
667 |
AC_SUBST(EXTRA_LIBPCRE_LDFLAGS) |
AC_SUBST(EXTRA_LIBPCRE_LDFLAGS) |
668 |
AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS) |
AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS) |
669 |
AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS) |
AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS) |
670 |
|
|
671 |
# When we run 'make distcheck', use these arguments. |
# When we run 'make distcheck', use these arguments. |
672 |
DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties" |
DISTCHECK_CONFIGURE_FLAGS="--enable-jit --enable-cpp --enable-unicode-properties" |
673 |
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) |
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) |
674 |
|
|
675 |
|
# Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is |
676 |
|
# specified, the relevant library is available. |
677 |
|
|
678 |
|
if test "$enable_pcregrep_libz" = "yes"; then |
679 |
|
if test "$HAVE_ZLIB_H" != "1"; then |
680 |
|
echo "** Cannot --enable-pcregrep-libz because zlib.h was not found" |
681 |
|
exit 1 |
682 |
|
fi |
683 |
|
if test "$HAVE_LIBZ" != "1"; then |
684 |
|
echo "** Cannot --enable-pcregrep-libz because libz was not found" |
685 |
|
exit 1 |
686 |
|
fi |
687 |
|
LIBZ="-lz" |
688 |
|
fi |
689 |
|
AC_SUBST(LIBZ) |
690 |
|
|
691 |
|
if test "$enable_pcregrep_libbz2" = "yes"; then |
692 |
|
if test "$HAVE_BZLIB_H" != "1"; then |
693 |
|
echo "** Cannot --enable-pcregrep-libbz2 because bzlib.h was not found" |
694 |
|
exit 1 |
695 |
|
fi |
696 |
|
if test "$HAVE_LIBBZ2" != "1"; then |
697 |
|
echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found" |
698 |
|
exit 1 |
699 |
|
fi |
700 |
|
LIBBZ2="-lbz2" |
701 |
|
fi |
702 |
|
AC_SUBST(LIBBZ2) |
703 |
|
|
704 |
|
# Similarly for --enable-pcretest-readline |
705 |
|
|
706 |
|
if test "$enable_pcretest_libreadline" = "yes"; then |
707 |
|
if test "$HAVE_READLINE_H" != "1"; then |
708 |
|
echo "** Cannot --enable-pcretest-readline because readline/readline.h was not found." |
709 |
|
exit 1 |
710 |
|
fi |
711 |
|
if test "$HAVE_HISTORY_H" != "1"; then |
712 |
|
echo "** Cannot --enable-pcretest-readline because readline/history.h was not found." |
713 |
|
exit 1 |
714 |
|
fi |
715 |
|
LIBREADLINE="-lreadline" |
716 |
|
fi |
717 |
|
AC_SUBST(LIBREADLINE) |
718 |
|
|
719 |
# Produce these files, in addition to config.h. |
# Produce these files, in addition to config.h. |
720 |
AC_CONFIG_FILES( |
AC_CONFIG_FILES( |
721 |
Makefile |
Makefile |
722 |
libpcre.pc |
libpcre.pc |
723 |
|
libpcreposix.pc |
724 |
libpcrecpp.pc |
libpcrecpp.pc |
725 |
pcre-config |
pcre-config |
726 |
pcre.h |
pcre.h |
739 |
|
|
740 |
# Print out a nice little message after configure is run displaying your |
# Print out a nice little message after configure is run displaying your |
741 |
# chosen options. |
# chosen options. |
742 |
# |
|
743 |
cat <<EOF |
cat <<EOF |
744 |
|
|
745 |
$PACKAGE-$VERSION configuration summary: |
$PACKAGE-$VERSION configuration summary: |
746 |
|
|
747 |
Install prefix ......... : ${prefix} |
Install prefix .................. : ${prefix} |
748 |
C preprocessor ......... : ${CPP} |
C preprocessor .................. : ${CPP} |
749 |
C compiler ............. : ${CC} |
C compiler ...................... : ${CC} |
750 |
C++ preprocessor ....... : ${CXXCPP} |
C++ preprocessor ................ : ${CXXCPP} |
751 |
C++ compiler ........... : ${CXX} |
C++ compiler .................... : ${CXX} |
752 |
Linker ................. : ${LD} |
Linker .......................... : ${LD} |
753 |
C preprocessor flags ... : ${CPPFLAGS} |
C preprocessor flags ............ : ${CPPFLAGS} |
754 |
C compiler flags ....... : ${CFLAGS} |
C compiler flags ................ : ${CFLAGS} |
755 |
C++ compiler flags ..... : ${CXXFLAGS} |
C++ compiler flags .............. : ${CXXFLAGS} |
756 |
Linker flags ........... : ${LDFLAGS} |
Linker flags .................... : ${LDFLAGS} |
757 |
Extra libraries ........ : ${LIBS} |
Extra libraries ................. : ${LIBS} |
758 |
|
|
759 |
Build C++ library ...... : ${enable_cpp} |
Build C++ library ............... : ${enable_cpp} |
760 |
Enable UTF-8 support ... : ${enable_utf8} |
Enable JIT compiling support .... : ${enable_jit} |
761 |
Unicode properties ..... : ${enable_unicode_properties} |
Enable UTF-8 support ............ : ${enable_utf8} |
762 |
Newline char/sequence .. : ${enable_newline} |
Unicode properties .............. : ${enable_unicode_properties} |
763 |
EBCDIC coding .......... : ${enable_ebcdic} |
Newline char/sequence ........... : ${enable_newline} |
764 |
Rebuild char tables .... : ${enable_rebuild_chartables} |
\R matches only ANYCRLF ......... : ${enable_bsr_anycrlf} |
765 |
Use stack recursion .... : ${enable_stack_for_recursion} |
EBCDIC coding ................... : ${enable_ebcdic} |
766 |
POSIX mem threshold .... : ${with_posix_malloc_threshold} |
Rebuild char tables ............. : ${enable_rebuild_chartables} |
767 |
Internal link size ..... : ${with_link_size} |
Use stack recursion ............. : ${enable_stack_for_recursion} |
768 |
Match limit ............ : ${with_match_limit} |
POSIX mem threshold ............. : ${with_posix_malloc_threshold} |
769 |
Match limit recursion .. : ${with_match_limit_recursion} |
Internal link size .............. : ${with_link_size} |
770 |
Build shared libs ...... : ${enable_shared} |
Match limit ..................... : ${with_match_limit} |
771 |
Build static libs ...... : ${enable_static} |
Match limit recursion ........... : ${with_match_limit_recursion} |
772 |
|
Build shared libs ............... : ${enable_shared} |
773 |
|
Build static libs ............... : ${enable_static} |
774 |
|
Use JIT in pcregrep ............. : ${enable_pcregrep_jit} |
775 |
|
Buffer size for pcregrep ........ : ${with_pcregrep_bufsize} |
776 |
|
Link pcregrep with libz ......... : ${enable_pcregrep_libz} |
777 |
|
Link pcregrep with libbz2 ....... : ${enable_pcregrep_libbz2} |
778 |
|
Link pcretest with libreadline .. : ${enable_pcretest_libreadline} |
779 |
|
|
780 |
EOF |
EOF |
781 |
|
|