Annotation of embedaddon/pcre/configure.ac, revision 1.1.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>