Annotation of embedaddon/pcre/configure.ac, revision 1.1
1.1 ! misho 1: dnl Process this file with autoconf to produce a configure script.
! 2:
! 3: dnl NOTE FOR MAINTAINERS: Do not use minor version numbers 08 or 09 because
! 4: dnl the leading zeros may cause them to be treated as invalid octal constants
! 5: dnl if a PCRE user writes code that uses PCRE_MINOR as a number. There is now
! 6: dnl a check further down that throws an error if 08 or 09 are used.
! 7:
! 8: dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might
! 9: dnl be defined as -RC2, for example. For real releases, it should be empty.
! 10:
! 11: m4_define(pcre_major, [8])
! 12: 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)
! 17: m4_define(libpcre_version, [0:1:0])
! 18: m4_define(libpcreposix_version, [0:0:0])
! 19: m4_define(libpcrecpp_version, [0:0:0])
! 20:
! 21: AC_PREREQ(2.57)
! 22: AC_INIT(PCRE, pcre_major.pcre_minor[]pcre_prerelease, , pcre)
! 23: AC_CONFIG_SRCDIR([pcre.h.in])
! 24: AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
! 25: 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
! 31: # "-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
! 33: # library). This fudge seems to achieve the necessary. First, we remember the
! 34: # externally set values of CFLAGS and CXXFLAGS. Then call the AC_PROG_CC and
! 35: # AC_PROG_CXX macros to find the compilers - if CFLAGS and CXXFLAGS are not
! 36: # set, they will be set to Autoconf's defaults. Afterwards, if the original
! 37: # values were not set, remove the -g from the Autoconf defaults.
! 38: # (PH 02-May-07)
! 39:
! 40: remember_set_CFLAGS="$CFLAGS"
! 41: remember_set_CXXFLAGS="$CXXFLAGS"
! 42:
! 43: AC_PROG_CC
! 44: AC_PROG_CXX
! 45:
! 46: if test "x$remember_set_CFLAGS" = "x"
! 47: then
! 48: if test "$CFLAGS" = "-g -O2"
! 49: then
! 50: CFLAGS="-O2"
! 51: elif test "$CFLAGS" = "-g"
! 52: then
! 53: CFLAGS=""
! 54: fi
! 55: fi
! 56:
! 57: if test "x$remember_set_CXXFLAGS" = "x"
! 58: then
! 59: if test "$CXXFLAGS" = "-g -O2"
! 60: then
! 61: CXXFLAGS="-O2"
! 62: elif test "$CXXFLAGS" = "-g"
! 63: then
! 64: CXXFLAGS=""
! 65: fi
! 66: 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
! 78: AC_LIBTOOL_WIN32_DLL
! 79: LT_INIT
! 80: AC_PROG_LN_S
! 81:
! 82: PCRE_MAJOR="pcre_major"
! 83: PCRE_MINOR="pcre_minor"
! 84: PCRE_PRERELEASE="pcre_prerelease"
! 85: 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)
! 97: AC_SUBST(PCRE_MINOR)
! 98: AC_SUBST(PCRE_PRERELEASE)
! 99: AC_SUBST(PCRE_DATE)
! 100:
! 101: # Set a more sensible default value for $(htmldir).
! 102: if test "x$htmldir" = 'x${docdir}'
! 103: then
! 104: htmldir='${docdir}/html'
! 105: fi
! 106:
! 107: # Handle --disable-cpp. The substitution of enable_cpp is needed for use in
! 108: # pcre-config.
! 109: AC_ARG_ENABLE(cpp,
! 110: AS_HELP_STRING([--disable-cpp],
! 111: [disable C++ support]),
! 112: , 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
! 128: AC_ARG_ENABLE(rebuild-chartables,
! 129: AS_HELP_STRING([--enable-rebuild-chartables],
! 130: [rebuild character tables in current locale]),
! 131: , enable_rebuild_chartables=no)
! 132:
! 133: # Handle --enable-utf8 (disabled by default)
! 134: AC_ARG_ENABLE(utf8,
! 135: AS_HELP_STRING([--enable-utf8],
! 136: [enable UTF-8 support (incompatible with --enable-ebcdic)]),
! 137: , enable_utf8=unset)
! 138:
! 139: # Handle --enable-unicode-properties
! 140: AC_ARG_ENABLE(unicode-properties,
! 141: AS_HELP_STRING([--enable-unicode-properties],
! 142: [enable Unicode properties support (implies --enable-utf8)]),
! 143: , enable_unicode_properties=no)
! 144:
! 145: # Handle --enable-newline=NL
! 146: dnl AC_ARG_ENABLE(newline,
! 147: dnl AS_HELP_STRING([--enable-newline=NL],
! 148: dnl [use NL as newline (lf, cr, crlf, anycrlf, any; default=lf)]),
! 149: dnl , enable_newline=lf)
! 150:
! 151: # Separate newline options
! 152: ac_pcre_newline=lf
! 153: AC_ARG_ENABLE(newline-is-cr,
! 154: AS_HELP_STRING([--enable-newline-is-cr],
! 155: [use CR as newline character]),
! 156: ac_pcre_newline=cr)
! 157: AC_ARG_ENABLE(newline-is-lf,
! 158: AS_HELP_STRING([--enable-newline-is-lf],
! 159: [use LF as newline character (default)]),
! 160: ac_pcre_newline=lf)
! 161: AC_ARG_ENABLE(newline-is-crlf,
! 162: AS_HELP_STRING([--enable-newline-is-crlf],
! 163: [use CRLF as newline sequence]),
! 164: ac_pcre_newline=crlf)
! 165: AC_ARG_ENABLE(newline-is-anycrlf,
! 166: AS_HELP_STRING([--enable-newline-is-anycrlf],
! 167: [use CR, LF, or CRLF as newline sequence]),
! 168: ac_pcre_newline=anycrlf)
! 169: AC_ARG_ENABLE(newline-is-any,
! 170: AS_HELP_STRING([--enable-newline-is-any],
! 171: [use any valid Unicode newline sequence]),
! 172: ac_pcre_newline=any)
! 173: 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
! 182: AC_ARG_ENABLE(ebcdic,
! 183: AS_HELP_STRING([--enable-ebcdic],
! 184: [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)
! 186:
! 187: # Handle --disable-stack-for-recursion
! 188: AC_ARG_ENABLE(stack-for-recursion,
! 189: AS_HELP_STRING([--disable-stack-for-recursion],
! 190: [don't use stack recursion when matching]),
! 191: , 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
! 218: AC_ARG_WITH(posix-malloc-threshold,
! 219: AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
! 220: [threshold for POSIX malloc usage (default=10)]),
! 221: , with_posix_malloc_threshold=10)
! 222:
! 223: # Handle --with-link-size=N
! 224: AC_ARG_WITH(link-size,
! 225: AS_HELP_STRING([--with-link-size=N],
! 226: [internal link size (2, 3, or 4 allowed; default=2)]),
! 227: , with_link_size=2)
! 228:
! 229: # Handle --with-match-limit=N
! 230: AC_ARG_WITH(match-limit,
! 231: AS_HELP_STRING([--with-match-limit=N],
! 232: [default limit on internal looping (default=10000000)]),
! 233: , with_match_limit=10000000)
! 234:
! 235: # Handle --with-match-limit_recursion=N
! 236: #
! 237: # Note: In config.h, the default is to define MATCH_LIMIT_RECURSION
! 238: # symbolically as MATCH_LIMIT, which in turn is defined to be some numeric
! 239: # value (e.g. 10000000). MATCH_LIMIT_RECURSION can otherwise be set to some
! 240: # different numeric value (or even the same numeric value as MATCH_LIMIT,
! 241: # though no longer defined in terms of the latter).
! 242: #
! 243: AC_ARG_WITH(match-limit-recursion,
! 244: AS_HELP_STRING([--with-match-limit-recursion=N],
! 245: [default limit on internal recursion (default=MATCH_LIMIT)]),
! 246: , with_match_limit_recursion=MATCH_LIMIT)
! 247:
! 248: # Make sure that if enable_unicode_properties was set, that UTF-8 support
! 249: # is enabled.
! 250: #
! 251: if test "x$enable_unicode_properties" = "xyes"
! 252: then
! 253: if test "x$enable_utf8" = "xno"
! 254: then
! 255: AC_MSG_ERROR([support for Unicode properties requires UTF-8 support])
! 256: fi
! 257: enable_utf8=yes
! 258: fi
! 259:
! 260: if test "x$enable_utf8" = "xunset"
! 261: then
! 262: enable_utf8=no
! 263: fi
! 264:
! 265: # 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"
! 271: then
! 272: 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
! 278:
! 279: # Convert the newline identifier into the appropriate integer value.
! 280: case "$enable_newline" in
! 281: lf) ac_pcre_newline_value=10 ;;
! 282: cr) ac_pcre_newline_value=13 ;;
! 283: crlf) ac_pcre_newline_value=3338 ;;
! 284: anycrlf) ac_pcre_newline_value=-2 ;;
! 285: any) ac_pcre_newline_value=-1 ;;
! 286: *)
! 287: AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
! 288: ;;
! 289: esac
! 290:
! 291: # Check argument to --with-link-size
! 292: case "$with_link_size" in
! 293: 2|3|4) ;;
! 294: *)
! 295: AC_MSG_ERROR([invalid argument \"$with_link_size\" to --with-link-size option])
! 296: ;;
! 297: esac
! 298:
! 299: AH_TOP([
! 300: /* On Unix-like systems config.h.in is converted by "configure" into config.h.
! 301: Some other environments also support the use of "configure". PCRE is written in
! 302: Standard C, but there are a few non-standard things it can cope with, allowing
! 303: it to run on SunOS4 and other "close to standard" systems.
! 304:
! 305: 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
! 307: macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to
! 308: 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
! 315: HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
! 316: them both to 0; an emulation function will be used. */])
! 317:
! 318: # Checks for header files.
! 319: AC_HEADER_STDC
! 320: AC_CHECK_HEADERS(limits.h sys/types.h sys/stat.h dirent.h windows.h)
! 321:
! 322: # The files below are C++ header files.
! 323: pcre_have_type_traits="0"
! 324: pcre_have_bits_type_traits="0"
! 325: if test "x$enable_cpp" = "xyes" -a -n "$CXX"
! 326: then
! 327: 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
! 354: # (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.
! 356: AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
! 357: [pcre_have_cpp_headers="0"])
! 358: AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"],
! 359: [pcre_have_bits_type_traits="0"])
! 360: AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
! 361: [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
! 407: fi
! 408: # Using AC_SUBST eliminates the need to include config.h in a public .h file
! 409: AC_SUBST(pcre_have_type_traits)
! 410: AC_SUBST(pcre_have_bits_type_traits)
! 411:
! 412: # Conditional compilation
! 413: AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
! 414: 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.
! 419:
! 420: AC_C_CONST
! 421: AC_TYPE_SIZE_T
! 422:
! 423: # Checks for library functions.
! 424:
! 425: 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
! 473: dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
! 474:
! 475: PCRE_STATIC_CFLAG=""
! 476: if test "x$enable_shared" = "xno" ; then
! 477: AC_DEFINE([PCRE_STATIC], [1], [
! 478: Define if linking statically (TODO: make nice with Libtool)])
! 479: PCRE_STATIC_CFLAG="-DPCRE_STATIC"
! 480: fi
! 481: AC_SUBST(PCRE_STATIC_CFLAG)
! 482:
! 483: # 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
! 498: AC_DEFINE([SUPPORT_UTF8], [], [
! 499: 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
! 504:
! 505: if test "$enable_unicode_properties" = "yes"; then
! 506: AC_DEFINE([SUPPORT_UCP], [], [
! 507: Define to enable support for Unicode properties.])
! 508: fi
! 509:
! 510: if test "$enable_stack_for_recursion" = "no"; then
! 511: AC_DEFINE([NO_RECURSE], [], [
! 512: PCRE uses recursive function calls to handle backtracking while
! 513: matching. This can sometimes be a problem on systems that have
! 514: stacks of limited size. Define NO_RECURSE to get a version that
! 515: doesn't use recursion in the match() function; instead it creates
! 516: its own stack by steam using pcre_recurse_malloc() to obtain memory
! 517: from the heap. For more detail, see the comments and other stuff
! 518: just above the match() function. On systems that support it,
! 519: "configure" can be used to set this in the Makefile
! 520: (use --disable-stack-for-recursion).])
! 521: 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], [
! 553: The value of NEWLINE determines the newline character sequence. On
! 554: systems that support it, "configure" can be used to override the
! 555: default, which is 10. The possible values are 10 (LF), 13 (CR),
! 556: 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], [
! 569: The value of LINK_SIZE determines the number of bytes used to store
! 570: links as offsets within the compiled regex. The default is 2, which
! 571: allows for compiled patterns up to 64K long. This covers the vast
! 572: majority of cases. However, PCRE can also be compiled to use 3 or 4
! 573: bytes instead. This allows for longer patterns in extreme cases. On
! 574: systems that support it, "configure" can be used to override this default.])
! 575:
! 576: AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHOLD], [$with_posix_malloc_threshold], [
! 577: When calling PCRE via the POSIX interface, additional working storage
! 578: is required for holding the pointers to capturing substrings because
! 579: PCRE requires three integers per substring, whereas the POSIX
! 580: interface provides only two. If the number of expected substrings is
! 581: small, the wrapper function uses space on the stack, because this is
! 582: faster than using malloc() for each call. The threshold above which
! 583: the stack is no longer used is defined by POSIX_MALLOC_THRESHOLD. On
! 584: systems that support it, "configure" can be used to override this
! 585: default.])
! 586:
! 587: AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
! 588: The value of MATCH_LIMIT determines the default number of times the
! 589: internal match() function can be called during a single execution of
! 590: pcre_exec(). There is a runtime interface for setting a different
! 591: limit. The limit exists in order to catch runaway regular
! 592: expressions that take for ever to determine that they do not match.
! 593: The default is set very large so that it does not accidentally catch
! 594: legitimate cases. On systems that support it, "configure" can be
! 595: used to override this default default.])
! 596:
! 597: AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSION], [$with_match_limit_recursion], [
! 598: The above limit applies to all calls of match(), whether or not they
! 599: increase the recursion depth. In some environments it is desirable
! 600: to limit the depth of recursive calls of match() more strictly, in
! 601: order to restrict the maximum amount of stack (or heap, if
! 602: NO_RECURSE is defined) that is used. The value of
! 603: MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
! 604: have any useful effect, it must be less than the value of
! 605: MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
! 606: There is a runtime method for setting a different limit. On systems
! 607: that support it, "configure" can be used to override the default.])
! 608:
! 609: AC_DEFINE([MAX_NAME_SIZE], [32], [
! 610: This limit is parameterized just in case anybody ever wants to
! 611: change it. Care must be taken if it is increased, because it guards
! 612: against integer overflow caused by enormously large patterns.])
! 613:
! 614: AC_DEFINE([MAX_NAME_COUNT], [10000], [
! 615: This limit is parameterized just in case anybody ever wants to
! 616: change it. Care must be taken if it is increased, because it guards
! 617: against integer overflow caused by enormously large patterns.])
! 618:
! 619: AH_VERBATIM([PCRE_EXP_DEFN], [
! 620: /* 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
! 622: of a function that is exported by the library, define this macro to
! 623: contain the relevant magic. If you do not define this macro, it
! 624: defaults to "extern" for a C compiler and "extern C" for a C++
! 625: compiler on non-Win32 systems. This macro apears at the start of
! 626: every exported function that is part of the external API. It does
! 627: not appear on functions that are "external" in the C sense, but
! 628: which are internal to the library. */
! 629: #undef PCRE_EXP_DEFN])
! 630:
! 631: if test "$enable_ebcdic" = "yes"; then
! 632: AC_DEFINE_UNQUOTED([EBCDIC], [], [
! 633: 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
! 635: "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
! 641:
! 642: # Platform specific issues
! 643: NO_UNDEFINED=
! 644: EXPORT_ALL_SYMBOLS=
! 645: case $host_os in
! 646: cygwin* | mingw* )
! 647: if test X"$enable_shared" = Xyes; then
! 648: NO_UNDEFINED="-no-undefined"
! 649: EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
! 650: fi
! 651: ;;
! 652: esac
! 653:
! 654: # The extra LDFLAGS for each particular library
! 655: # (Note: The libpcre*_version bits are m4 variables, assigned above)
! 656:
! 657: EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
! 658: $NO_UNDEFINED -version-info libpcre_version"
! 659:
! 660: EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
! 661: $NO_UNDEFINED -version-info libpcreposix_version"
! 662:
! 663: EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
! 664: $NO_UNDEFINED -version-info libpcrecpp_version \
! 665: $EXPORT_ALL_SYMBOLS"
! 666:
! 667: AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
! 668: AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
! 669: AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
! 670:
! 671: # When we run 'make distcheck', use these arguments.
! 672: DISTCHECK_CONFIGURE_FLAGS="--enable-jit --enable-cpp --enable-unicode-properties"
! 673: 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.
! 720: AC_CONFIG_FILES(
! 721: Makefile
! 722: libpcre.pc
! 723: libpcreposix.pc
! 724: libpcrecpp.pc
! 725: pcre-config
! 726: pcre.h
! 727: pcre_stringpiece.h
! 728: pcrecpparg.h
! 729: )
! 730:
! 731: # Make the generated script files executable.
! 732: AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
! 733:
! 734: # Make sure that pcre_chartables.c is removed in case the method for
! 735: # creating it was changed by reconfiguration.
! 736: AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
! 737:
! 738: AC_OUTPUT
! 739:
! 740: # Print out a nice little message after configure is run displaying your
! 741: # chosen options.
! 742:
! 743: cat <<EOF
! 744:
! 745: $PACKAGE-$VERSION configuration summary:
! 746:
! 747: Install prefix .................. : ${prefix}
! 748: C preprocessor .................. : ${CPP}
! 749: C compiler ...................... : ${CC}
! 750: C++ preprocessor ................ : ${CXXCPP}
! 751: C++ compiler .................... : ${CXX}
! 752: Linker .......................... : ${LD}
! 753: C preprocessor flags ............ : ${CPPFLAGS}
! 754: C compiler flags ................ : ${CFLAGS}
! 755: C++ compiler flags .............. : ${CXXFLAGS}
! 756: Linker flags .................... : ${LDFLAGS}
! 757: Extra libraries ................. : ${LIBS}
! 758:
! 759: Build C++ library ............... : ${enable_cpp}
! 760: Enable JIT compiling support .... : ${enable_jit}
! 761: Enable UTF-8 support ............ : ${enable_utf8}
! 762: Unicode properties .............. : ${enable_unicode_properties}
! 763: Newline char/sequence ........... : ${enable_newline}
! 764: \R matches only ANYCRLF ......... : ${enable_bsr_anycrlf}
! 765: EBCDIC coding ................... : ${enable_ebcdic}
! 766: Rebuild char tables ............. : ${enable_rebuild_chartables}
! 767: Use stack recursion ............. : ${enable_stack_for_recursion}
! 768: POSIX mem threshold ............. : ${with_posix_malloc_threshold}
! 769: Internal link size .............. : ${with_link_size}
! 770: Match limit ..................... : ${with_match_limit}
! 771: 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
! 781:
! 782: dnl end configure.ac
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>