7 |
dnl empty. |
dnl empty. |
8 |
|
|
9 |
m4_define(pcre_major, [7]) |
m4_define(pcre_major, [7]) |
10 |
m4_define(pcre_minor, [3]) |
m4_define(pcre_minor, [7]) |
11 |
m4_define(pcre_prerelease, [-RC5]) |
m4_define(pcre_prerelease, [-RC1]) |
12 |
m4_define(pcre_date, [2007-08-15]) |
m4_define(pcre_date, [2008-03-05]) |
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]) |
60 |
fi |
fi |
61 |
fi |
fi |
62 |
|
|
63 |
|
# AC_PROG_CXX will return "g++" even if no c++ compiler is installed. |
64 |
|
# Check for that case, and just disable c++ code if g++ doesn't run. |
65 |
|
AC_LANG_PUSH(C++) |
66 |
|
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="") |
67 |
|
AC_LANG_POP |
68 |
|
|
69 |
AC_PROG_INSTALL |
AC_PROG_INSTALL |
70 |
AC_LIBTOOL_WIN32_DLL |
AC_LIBTOOL_WIN32_DLL |
141 |
ac_pcre_newline=any) |
ac_pcre_newline=any) |
142 |
enable_newline="$ac_pcre_newline" |
enable_newline="$ac_pcre_newline" |
143 |
|
|
144 |
|
# Handle --enable-bsr-anycrlf |
145 |
|
AC_ARG_ENABLE(bsr-anycrlf, |
146 |
|
AS_HELP_STRING([--enable-bsr-anycrlf], |
147 |
|
[\R matches only CR, LF, CRLF by default]), |
148 |
|
, enable_bsr_anycrlf=no) |
149 |
|
|
150 |
# Handle --enable-ebcdic |
# Handle --enable-ebcdic |
151 |
AC_ARG_ENABLE(ebcdic, |
AC_ARG_ENABLE(ebcdic, |
152 |
AS_HELP_STRING([--enable-ebcdic], |
AS_HELP_STRING([--enable-ebcdic], |
159 |
[don't use stack recursion when matching]), |
[don't use stack recursion when matching]), |
160 |
, enable_stack_for_recursion=yes) |
, enable_stack_for_recursion=yes) |
161 |
|
|
162 |
|
# Handle --enable-pcregrep-libz |
163 |
|
AC_ARG_ENABLE(pcregrep-libz, |
164 |
|
AS_HELP_STRING([--enable-pcregrep-libz], |
165 |
|
[link pcregrep with libz to handle .gz files]), |
166 |
|
, enable_pcregrep_libz=no) |
167 |
|
|
168 |
|
# Handle --enable-pcregrep-libbz2 |
169 |
|
AC_ARG_ENABLE(pcregrep-libbz2, |
170 |
|
AS_HELP_STRING([--enable-pcregrep-libbz2], |
171 |
|
[link pcregrep with libbz2 to handle .bz2 files]), |
172 |
|
, enable_pcregrep_libbz2=no) |
173 |
|
|
174 |
|
# Handle --enable-pcretest-libreadline |
175 |
|
AC_ARG_ENABLE(pcretest-libreadline, |
176 |
|
AS_HELP_STRING([--enable-pcretest-libreadline], |
177 |
|
[link pcretest with libreadline]), |
178 |
|
, enable_pcretest_libreadline=no) |
179 |
|
|
180 |
# Handle --with-posix-malloc-threshold=NBYTES |
# Handle --with-posix-malloc-threshold=NBYTES |
181 |
AC_ARG_WITH(posix-malloc-threshold, |
AC_ARG_WITH(posix-malloc-threshold, |
182 |
AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES], |
AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES], |
260 |
|
|
261 |
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 |
262 |
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 |
263 |
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 |
264 |
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 |
265 |
|
every source. |
266 |
|
|
267 |
|
Alternatively, you can avoid editing by using -D on the compiler command line |
268 |
|
to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H. |
269 |
|
|
270 |
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 |
271 |
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 |
282 |
then |
then |
283 |
AC_LANG_PUSH(C++) |
AC_LANG_PUSH(C++) |
284 |
|
|
285 |
|
# Older versions of pcre defined pcrecpp::no_arg, but in new versions |
286 |
|
# it's called pcrecpp::RE::no_arg. For backwards ABI compatibility, |
287 |
|
# we want to make one an alias for the other. Different systems do |
288 |
|
# this in different ways. Some systems, for instance, can do it via |
289 |
|
# a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4). |
290 |
|
OLD_LDFLAGS="$LDFLAGS" |
291 |
|
for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \ |
292 |
|
"-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do |
293 |
|
AC_MSG_CHECKING([for alias support in the linker]) |
294 |
|
LDFLAGS="$OLD_LDFLAGS -Wl,$flag" |
295 |
|
# We try to run the linker with this new ld flag. If the link fails, |
296 |
|
# we give up and remove the new flag from LDFLAGS. |
297 |
|
AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp { |
298 |
|
class RE { static int no_arg; }; |
299 |
|
int RE::no_arg; |
300 |
|
}], |
301 |
|
[]), |
302 |
|
[AC_MSG_RESULT([yes]); |
303 |
|
EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag"; |
304 |
|
break;], |
305 |
|
AC_MSG_RESULT([no])) |
306 |
|
done |
307 |
|
LDFLAGS="$OLD_LDFLAGS" |
308 |
|
|
309 |
# 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 |
310 |
# (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 |
311 |
# 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. |
315 |
[pcre_have_bits_type_traits="0"]) |
[pcre_have_bits_type_traits="0"]) |
316 |
AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"], |
AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"], |
317 |
[pcre_have_type_traits="0"]) |
[pcre_have_type_traits="0"]) |
318 |
|
|
319 |
AC_LANG_POP |
AC_LANG_POP |
320 |
fi |
fi |
321 |
# 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 |
331 |
AC_C_CONST |
AC_C_CONST |
332 |
AC_TYPE_SIZE_T |
AC_TYPE_SIZE_T |
333 |
|
|
334 |
AC_CHECK_TYPES([long long], |
pcre_have_strotolonglong=0 |
335 |
[pcre_have_long_long="1"], |
AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break]) |
336 |
[pcre_have_long_long="0"]) |
# If we can't convert a string to a long long, pretend we don't even |
337 |
AC_CHECK_TYPES([unsigned long long], |
# have a long long. |
338 |
[pcre_have_ulong_long="1"], |
if test $pcre_have_strotolonglong = "0"; then |
339 |
[pcre_have_ulong_long="0"]) |
pcre_have_long_long="0" |
340 |
|
pcre_have_ulong_long="0" |
341 |
|
else |
342 |
|
AC_CHECK_TYPES([long long], |
343 |
|
[pcre_have_long_long="1"], |
344 |
|
[pcre_have_long_long="0"]) |
345 |
|
AC_CHECK_TYPES([unsigned long long], |
346 |
|
[pcre_have_ulong_long="1"], |
347 |
|
[pcre_have_ulong_long="0"]) |
348 |
|
fi |
349 |
AC_SUBST(pcre_have_long_long) |
AC_SUBST(pcre_have_long_long) |
350 |
AC_SUBST(pcre_have_ulong_long) |
AC_SUBST(pcre_have_ulong_long) |
351 |
|
|
352 |
# Checks for library functions. |
# Checks for library functions. |
353 |
|
|
354 |
AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll) |
AC_CHECK_FUNCS(bcopy memmove strerror) |
355 |
|
|
356 |
|
# Check for the availability of libz (aka zlib) |
357 |
|
|
358 |
|
AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1]) |
359 |
|
AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1]) |
360 |
|
|
361 |
|
# Check for the availability of libbz2 |
362 |
|
|
363 |
|
AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1]) |
364 |
|
AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1]) |
365 |
|
|
366 |
|
# Check for the availabiity of libreadline |
367 |
|
|
368 |
|
AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1]) |
369 |
|
AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1]) |
370 |
|
AC_CHECK_LIB([readline], [readline], [HAVE_LIB_READLINE=1]) |
371 |
|
|
372 |
# This facilitates -ansi builds under Linux |
# This facilitates -ansi builds under Linux |
373 |
dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc]) |
dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc]) |
402 |
(use --disable-stack-for-recursion).]) |
(use --disable-stack-for-recursion).]) |
403 |
fi |
fi |
404 |
|
|
405 |
|
if test "$enable_pcregrep_libz" = "yes"; then |
406 |
|
AC_DEFINE([SUPPORT_LIBZ], [], [ |
407 |
|
Define to allow pcregrep to be linked with libz, so that it is |
408 |
|
able to handle .gz files.]) |
409 |
|
fi |
410 |
|
|
411 |
|
if test "$enable_pcregrep_libbz2" = "yes"; then |
412 |
|
AC_DEFINE([SUPPORT_LIBBZ2], [], [ |
413 |
|
Define to allow pcregrep to be linked with libbz2, so that it is |
414 |
|
able to handle .bz2 files.]) |
415 |
|
fi |
416 |
|
|
417 |
|
if test "$enable_pcretest_libreadline" = "yes"; then |
418 |
|
AC_DEFINE([SUPPORT_LIBREADLINE], [], [ |
419 |
|
Define to allow pcretest to be linked with libreadline.]) |
420 |
|
fi |
421 |
|
|
422 |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [ |
423 |
The value of NEWLINE determines the newline character sequence. On |
The value of NEWLINE determines the newline character sequence. On |
424 |
Unix-like systems, "configure" can be used to override the default, |
systems that support it, "configure" can be used to override the |
425 |
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), |
426 |
-1 (ANY), or -2 (ANYCRLF).]) |
3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).]) |
427 |
|
|
428 |
|
if test "$enable_bsr_anycrlf" = "yes"; then |
429 |
|
AC_DEFINE([BSR_ANYCRLF], [], [ |
430 |
|
By default, the \R escape sequence matches any Unicode line ending |
431 |
|
character or sequence of characters. If BSR_ANYCRLF is defined, this is |
432 |
|
changed so that backslash-R matches only CR, LF, or CRLF. The build- |
433 |
|
time default can be overridden by the user of PCRE at runtime. On |
434 |
|
systems that support it, "configure" can be used to override the |
435 |
|
default.]) |
436 |
|
fi |
437 |
|
|
438 |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [ |
439 |
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 |
520 |
# The extra LDFLAGS for each particular library |
# The extra LDFLAGS for each particular library |
521 |
# (Note: The libpcre*_version bits are m4 variables, assigned above) |
# (Note: The libpcre*_version bits are m4 variables, assigned above) |
522 |
|
|
523 |
EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version" |
EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \ |
524 |
|
$NO_UNDEFINED -version-info libpcre_version" |
525 |
|
|
526 |
EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version" |
EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \ |
527 |
|
$NO_UNDEFINED -version-info libpcreposix_version" |
528 |
|
|
529 |
EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version" |
EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \ |
530 |
|
$NO_UNDEFINED -version-info libpcrecpp_version \ |
531 |
|
$EXPORT_ALL_SYMBOLS" |
532 |
|
|
533 |
AC_SUBST(EXTRA_LIBPCRE_LDFLAGS) |
AC_SUBST(EXTRA_LIBPCRE_LDFLAGS) |
534 |
AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS) |
AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS) |
538 |
DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties" |
DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties" |
539 |
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) |
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) |
540 |
|
|
541 |
|
# Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is |
542 |
|
# specified, the relevant library is available. If so, add it to LIBS. |
543 |
|
|
544 |
|
if test "$enable_pcregrep_libz" = "yes"; then |
545 |
|
if test "$HAVE_ZLIB_H" != "1"; then |
546 |
|
echo "** Cannot --enable-pcregrep-libz because zlib.h was not found" |
547 |
|
exit 1 |
548 |
|
fi |
549 |
|
if test "$HAVE_LIBZ" != "1"; then |
550 |
|
echo "** Cannot --enable-pcregrep-libz because libz was not found" |
551 |
|
exit 1 |
552 |
|
fi |
553 |
|
if test "$LIBS" = ""; then LIBS=-lz; else LIBS="$LIBS -lz"; fi |
554 |
|
fi |
555 |
|
|
556 |
|
if test "$enable_pcregrep_libbz2" = "yes"; then |
557 |
|
if test "$HAVE_BZLIB_H" != "1"; then |
558 |
|
echo "** Cannot --enable-pcregrep-libbz2 because bzlib.h was not found" |
559 |
|
exit 1 |
560 |
|
fi |
561 |
|
if test "$HAVE_LIBBZ2" != "1"; then |
562 |
|
echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found" |
563 |
|
exit 1 |
564 |
|
fi |
565 |
|
if test "$LIBS" = ""; then LIBS=-lbz2; else LIBS="$LIBS -lbz2"; fi |
566 |
|
fi |
567 |
|
|
568 |
|
# Similarly for --enable-pcretest-readline |
569 |
|
|
570 |
|
if test "$enable_pcretest_libreadline" = "yes"; then |
571 |
|
if test "$HAVE_READLINE_H" != "1"; then |
572 |
|
echo "** Cannot --enable-pcretest-readline because readline/readline.h was not found." |
573 |
|
exit 1 |
574 |
|
fi |
575 |
|
if test "$HAVE_HISTORY_H" != "1"; then |
576 |
|
echo "** Cannot --enable-pcretest-readline because readline/history.h was not found." |
577 |
|
exit 1 |
578 |
|
fi |
579 |
|
if test "$LIBS" = ""; then LIBS=-lreadline; else LIBS="$LIBS -lreadline"; fi |
580 |
|
fi |
581 |
|
|
582 |
# Produce these files, in addition to config.h. |
# Produce these files, in addition to config.h. |
583 |
AC_CONFIG_FILES( |
AC_CONFIG_FILES( |
584 |
Makefile |
Makefile |
601 |
|
|
602 |
# Print out a nice little message after configure is run displaying your |
# Print out a nice little message after configure is run displaying your |
603 |
# chosen options. |
# chosen options. |
604 |
# |
|
605 |
cat <<EOF |
cat <<EOF |
606 |
|
|
607 |
$PACKAGE-$VERSION configuration summary: |
$PACKAGE-$VERSION configuration summary: |
608 |
|
|
609 |
Install prefix ......... : ${prefix} |
Install prefix .................. : ${prefix} |
610 |
C preprocessor ......... : ${CPP} |
C preprocessor .................. : ${CPP} |
611 |
C compiler ............. : ${CC} |
C compiler ...................... : ${CC} |
612 |
C++ preprocessor ....... : ${CXXCPP} |
C++ preprocessor ................ : ${CXXCPP} |
613 |
C++ compiler ........... : ${CXX} |
C++ compiler .................... : ${CXX} |
614 |
Linker ................. : ${LD} |
Linker .......................... : ${LD} |
615 |
C preprocessor flags ... : ${CPPFLAGS} |
C preprocessor flags ............ : ${CPPFLAGS} |
616 |
C compiler flags ....... : ${CFLAGS} |
C compiler flags ................ : ${CFLAGS} |
617 |
C++ compiler flags ..... : ${CXXFLAGS} |
C++ compiler flags .............. : ${CXXFLAGS} |
618 |
Linker flags ........... : ${LDFLAGS} |
Linker flags .................... : ${LDFLAGS} |
619 |
Extra libraries ........ : ${LIBS} |
Extra libraries ................. : ${LIBS} |
620 |
|
|
621 |
Build C++ library ...... : ${enable_cpp} |
Build C++ library ............... : ${enable_cpp} |
622 |
Enable UTF-8 support ... : ${enable_utf8} |
Enable UTF-8 support ............ : ${enable_utf8} |
623 |
Unicode properties ..... : ${enable_unicode_properties} |
Unicode properties .............. : ${enable_unicode_properties} |
624 |
Newline char/sequence .. : ${enable_newline} |
Newline char/sequence ........... : ${enable_newline} |
625 |
EBCDIC coding .......... : ${enable_ebcdic} |
\R matches only ANYCRLF ......... : ${enable_bsr_anycrlf} |
626 |
Rebuild char tables .... : ${enable_rebuild_chartables} |
EBCDIC coding ................... : ${enable_ebcdic} |
627 |
Use stack recursion .... : ${enable_stack_for_recursion} |
Rebuild char tables ............. : ${enable_rebuild_chartables} |
628 |
POSIX mem threshold .... : ${with_posix_malloc_threshold} |
Use stack recursion ............. : ${enable_stack_for_recursion} |
629 |
Internal link size ..... : ${with_link_size} |
POSIX mem threshold ............. : ${with_posix_malloc_threshold} |
630 |
Match limit ............ : ${with_match_limit} |
Internal link size .............. : ${with_link_size} |
631 |
Match limit recursion .. : ${with_match_limit_recursion} |
Match limit ..................... : ${with_match_limit} |
632 |
Build shared libs ...... : ${enable_shared} |
Match limit recursion ........... : ${with_match_limit_recursion} |
633 |
Build static libs ...... : ${enable_static} |
Build shared libs ............... : ${enable_shared} |
634 |
|
Build static libs ............... : ${enable_static} |
635 |
|
Link pcregrep with libz ......... : ${enable_pcregrep_libz} |
636 |
|
Link pcregrep with libbz2 ....... : ${enable_pcregrep_libbz2} |
637 |
|
Link pcretest with libreadline .. : ${enable_pcretest_libreadline} |
638 |
|
|
639 |
EOF |
EOF |
640 |
|
|