/[pcre]/code/trunk/configure.ac
ViewVC logotype

Contents of /code/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 479 - (show annotations)
Sun Jan 3 16:31:39 2010 UTC (9 years, 8 months ago) by ph10
File size: 26236 byte(s)
Add AC_CONFIG_MACRO_DIR([m4]) to configure.ac and -I m4 to ACLOCAL_AMFLAGS in 
Makefile.am, as suggested by libtoolize.
1 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
4 dnl leading zeros, because they may be treated as octal constants. The
5 dnl PCRE_PRERELEASE feature is for identifying release candidates. It might
6 dnl be defined as -RC2, for example. For real releases, it should be defined
7 dnl empty.
8
9 m4_define(pcre_major, [8])
10 m4_define(pcre_minor, [01])
11 m4_define(pcre_prerelease, [-RC1])
12 m4_define(pcre_date, [2010-01-02])
13
14 # Libtool shared library interface versions (current:revision:age)
15 m4_define(libpcre_version, [0:1:0])
16 m4_define(libpcreposix_version, [0:0:0])
17 m4_define(libpcrecpp_version, [0:0:0])
18
19 AC_PREREQ(2.57)
20 AC_INIT(PCRE, pcre_major.pcre_minor[]pcre_prerelease, , pcre)
21 AC_CONFIG_SRCDIR([pcre.h.in])
22 AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
23 AC_CONFIG_HEADERS(config.h)
24
25 # This was added at the suggestion of libtoolize (03-Jan-10)
26 AC_CONFIG_MACRO_DIR([m4])
27
28 # The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just
29 # "-g" for any other compiler. There doesn't seem to be a standard way of
30 # getting rid of the -g (which I don't think is needed for a production
31 # library). This fudge seems to achieve the necessary. First, we remember the
32 # externally set values of CFLAGS and CXXFLAGS. Then call the AC_PROG_CC and
33 # AC_PROG_CXX macros to find the compilers - if CFLAGS and CXXFLAGS are not
34 # set, they will be set to Autoconf's defaults. Afterwards, if the original
35 # values were not set, remove the -g from the Autoconf defaults.
36 # (PH 02-May-07)
37
38 remember_set_CFLAGS="$CFLAGS"
39 remember_set_CXXFLAGS="$CXXFLAGS"
40
41 AC_PROG_CC
42 AC_PROG_CXX
43
44 if test "x$remember_set_CFLAGS" = "x"
45 then
46 if test "$CFLAGS" = "-g -O2"
47 then
48 CFLAGS="-O2"
49 elif test "$CFLAGS" = "-g"
50 then
51 CFLAGS=""
52 fi
53 fi
54
55 if test "x$remember_set_CXXFLAGS" = "x"
56 then
57 if test "$CXXFLAGS" = "-g -O2"
58 then
59 CXXFLAGS="-O2"
60 elif test "$CXXFLAGS" = "-g"
61 then
62 CXXFLAGS=""
63 fi
64 fi
65
66 # AC_PROG_CXX will return "g++" even if no c++ compiler is installed.
67 # Check for that case, and just disable c++ code if g++ doesn't run.
68 AC_LANG_PUSH(C++)
69 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")
70 AC_LANG_POP
71
72 # Check for a 64-bit integer type
73 AC_TYPE_INT64_T
74
75 AC_PROG_INSTALL
76 AC_LIBTOOL_WIN32_DLL
77 AC_PROG_LIBTOOL
78 AC_PROG_LN_S
79
80 PCRE_MAJOR="pcre_major"
81 PCRE_MINOR="pcre_minor"
82 PCRE_PRERELEASE="pcre_prerelease"
83 PCRE_DATE="pcre_date"
84
85 AC_SUBST(PCRE_MAJOR)
86 AC_SUBST(PCRE_MINOR)
87 AC_SUBST(PCRE_PRERELEASE)
88 AC_SUBST(PCRE_DATE)
89
90 # Set a more sensible default value for $(htmldir).
91 if test "x$htmldir" = 'x${docdir}'
92 then
93 htmldir='${docdir}/html'
94 fi
95
96 # Handle --disable-cpp
97 AC_ARG_ENABLE(cpp,
98 AS_HELP_STRING([--disable-cpp],
99 [disable C++ support]),
100 , enable_cpp=yes)
101
102 # Handle --enable-rebuild-chartables
103 AC_ARG_ENABLE(rebuild-chartables,
104 AS_HELP_STRING([--enable-rebuild-chartables],
105 [rebuild character tables in current locale]),
106 , enable_rebuild_chartables=no)
107
108 # Handle --enable-utf8 (disabled by default)
109 AC_ARG_ENABLE(utf8,
110 AS_HELP_STRING([--enable-utf8],
111 [enable UTF-8 support (incompatible with --enable-ebcdic)]),
112 , enable_utf8=unset)
113
114 # Handle --enable-unicode-properties
115 AC_ARG_ENABLE(unicode-properties,
116 AS_HELP_STRING([--enable-unicode-properties],
117 [enable Unicode properties support (implies --enable-utf8)]),
118 , enable_unicode_properties=no)
119
120 # Handle --enable-newline=NL
121 dnl AC_ARG_ENABLE(newline,
122 dnl AS_HELP_STRING([--enable-newline=NL],
123 dnl [use NL as newline (lf, cr, crlf, anycrlf, any; default=lf)]),
124 dnl , enable_newline=lf)
125
126 # Separate newline options
127 ac_pcre_newline=lf
128 AC_ARG_ENABLE(newline-is-cr,
129 AS_HELP_STRING([--enable-newline-is-cr],
130 [use CR as newline character]),
131 ac_pcre_newline=cr)
132 AC_ARG_ENABLE(newline-is-lf,
133 AS_HELP_STRING([--enable-newline-is-lf],
134 [use LF as newline character (default)]),
135 ac_pcre_newline=lf)
136 AC_ARG_ENABLE(newline-is-crlf,
137 AS_HELP_STRING([--enable-newline-is-crlf],
138 [use CRLF as newline sequence]),
139 ac_pcre_newline=crlf)
140 AC_ARG_ENABLE(newline-is-anycrlf,
141 AS_HELP_STRING([--enable-newline-is-anycrlf],
142 [use CR, LF, or CRLF as newline sequence]),
143 ac_pcre_newline=anycrlf)
144 AC_ARG_ENABLE(newline-is-any,
145 AS_HELP_STRING([--enable-newline-is-any],
146 [use any valid Unicode newline sequence]),
147 ac_pcre_newline=any)
148 enable_newline="$ac_pcre_newline"
149
150 # Handle --enable-bsr-anycrlf
151 AC_ARG_ENABLE(bsr-anycrlf,
152 AS_HELP_STRING([--enable-bsr-anycrlf],
153 [\R matches only CR, LF, CRLF by default]),
154 , enable_bsr_anycrlf=no)
155
156 # Handle --enable-ebcdic
157 AC_ARG_ENABLE(ebcdic,
158 AS_HELP_STRING([--enable-ebcdic],
159 [assume EBCDIC coding rather than ASCII; incompatible with --enable-utf8; use only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),
160 , enable_ebcdic=no)
161
162 # Handle --disable-stack-for-recursion
163 AC_ARG_ENABLE(stack-for-recursion,
164 AS_HELP_STRING([--disable-stack-for-recursion],
165 [don't use stack recursion when matching]),
166 , enable_stack_for_recursion=yes)
167
168 # Handle --enable-pcregrep-libz
169 AC_ARG_ENABLE(pcregrep-libz,
170 AS_HELP_STRING([--enable-pcregrep-libz],
171 [link pcregrep with libz to handle .gz files]),
172 , enable_pcregrep_libz=no)
173
174 # Handle --enable-pcregrep-libbz2
175 AC_ARG_ENABLE(pcregrep-libbz2,
176 AS_HELP_STRING([--enable-pcregrep-libbz2],
177 [link pcregrep with libbz2 to handle .bz2 files]),
178 , enable_pcregrep_libbz2=no)
179
180 # Handle --enable-pcretest-libreadline
181 AC_ARG_ENABLE(pcretest-libreadline,
182 AS_HELP_STRING([--enable-pcretest-libreadline],
183 [link pcretest with libreadline]),
184 , enable_pcretest_libreadline=no)
185
186 # Handle --with-posix-malloc-threshold=NBYTES
187 AC_ARG_WITH(posix-malloc-threshold,
188 AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
189 [threshold for POSIX malloc usage (default=10)]),
190 , with_posix_malloc_threshold=10)
191
192 # Handle --with-link-size=N
193 AC_ARG_WITH(link-size,
194 AS_HELP_STRING([--with-link-size=N],
195 [internal link size (2, 3, or 4 allowed; default=2)]),
196 , with_link_size=2)
197
198 # Handle --with-match-limit=N
199 AC_ARG_WITH(match-limit,
200 AS_HELP_STRING([--with-match-limit=N],
201 [default limit on internal looping (default=10000000)]),
202 , with_match_limit=10000000)
203
204 # Handle --with-match-limit_recursion=N
205 #
206 # Note: In config.h, the default is to define MATCH_LIMIT_RECURSION
207 # symbolically as MATCH_LIMIT, which in turn is defined to be some numeric
208 # value (e.g. 10000000). MATCH_LIMIT_RECURSION can otherwise be set to some
209 # different numeric value (or even the same numeric value as MATCH_LIMIT,
210 # though no longer defined in terms of the latter).
211 #
212 AC_ARG_WITH(match-limit-recursion,
213 AS_HELP_STRING([--with-match-limit-recursion=N],
214 [default limit on internal recursion (default=MATCH_LIMIT)]),
215 , with_match_limit_recursion=MATCH_LIMIT)
216
217 # Make sure that if enable_unicode_properties was set, that UTF-8 support
218 # is enabled.
219 #
220 if test "x$enable_unicode_properties" = "xyes"
221 then
222 if test "x$enable_utf8" = "xno"
223 then
224 AC_MSG_ERROR([support for Unicode properties requires UTF-8 support])
225 fi
226 enable_utf8=yes
227 fi
228
229 if test "x$enable_utf8" = "xunset"
230 then
231 enable_utf8=no
232 fi
233
234 # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
235 # Also check that UTF-8 support is not requested, because PCRE cannot handle
236 # EBCDIC and UTF-8 in the same build. To do so it would need to use different
237 # character constants depending on the mode.
238 #
239 if test "x$enable_ebcdic" = "xyes"
240 then
241 enable_rebuild_chartables=yes
242 if test "x$enable_utf8" = "xyes"
243 then
244 AC_MSG_ERROR([support for EBCDIC and UTF-8 cannot be enabled at the same time])
245 fi
246 fi
247
248 # Convert the newline identifier into the appropriate integer value.
249 case "$enable_newline" in
250 lf) ac_pcre_newline_value=10 ;;
251 cr) ac_pcre_newline_value=13 ;;
252 crlf) ac_pcre_newline_value=3338 ;;
253 anycrlf) ac_pcre_newline_value=-2 ;;
254 any) ac_pcre_newline_value=-1 ;;
255 *)
256 AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
257 ;;
258 esac
259
260 # Check argument to --with-link-size
261 case "$with_link_size" in
262 2|3|4) ;;
263 *)
264 AC_MSG_ERROR([invalid argument \"$with_link_size\" to --with-link-size option])
265 ;;
266 esac
267
268 AH_TOP([
269 /* On Unix-like systems config.h.in is converted by "configure" into config.h.
270 Some other environments also support the use of "configure". PCRE is written in
271 Standard C, but there are a few non-standard things it can cope with, allowing
272 it to run on SunOS4 and other "close to standard" systems.
273
274 If you are going to build PCRE "by hand" on a system without "configure" you
275 should copy the distributed config.h.generic to config.h, and then set up the
276 macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to
277 all of your compile commands, so that config.h is included at the start of
278 every source.
279
280 Alternatively, you can avoid editing by using -D on the compiler command line
281 to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H.
282
283 PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
284 HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
285 them both to 0; an emulation function will be used. */])
286
287 # Checks for header files.
288 AC_HEADER_STDC
289 AC_CHECK_HEADERS(limits.h sys/types.h sys/stat.h dirent.h windows.h)
290
291 # The files below are C++ header files.
292 pcre_have_type_traits="0"
293 pcre_have_bits_type_traits="0"
294 if test "x$enable_cpp" = "xyes" -a -n "$CXX"
295 then
296 AC_LANG_PUSH(C++)
297
298 # Older versions of pcre defined pcrecpp::no_arg, but in new versions
299 # it's called pcrecpp::RE::no_arg. For backwards ABI compatibility,
300 # we want to make one an alias for the other. Different systems do
301 # this in different ways. Some systems, for instance, can do it via
302 # a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4).
303 OLD_LDFLAGS="$LDFLAGS"
304 for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \
305 "-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do
306 AC_MSG_CHECKING([for alias support in the linker])
307 LDFLAGS="$OLD_LDFLAGS -Wl,$flag"
308 # We try to run the linker with this new ld flag. If the link fails,
309 # we give up and remove the new flag from LDFLAGS.
310 AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp {
311 class RE { static int no_arg; };
312 int RE::no_arg;
313 }],
314 []),
315 [AC_MSG_RESULT([yes]);
316 EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag";
317 break;],
318 AC_MSG_RESULT([no]))
319 done
320 LDFLAGS="$OLD_LDFLAGS"
321
322 # We could be more clever here, given we're doing AC_SUBST with this
323 # (eg set a var to be the name of the include file we want). But we're not
324 # so it's easy to change back to 'regular' autoconf vars if we needed to.
325 AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
326 [pcre_have_cpp_headers="0"])
327 AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"],
328 [pcre_have_bits_type_traits="0"])
329 AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
330 [pcre_have_type_traits="0"])
331
332 AC_LANG_POP
333 fi
334 # Using AC_SUBST eliminates the need to include config.h in a public .h file
335 AC_SUBST(pcre_have_type_traits)
336 AC_SUBST(pcre_have_bits_type_traits)
337
338 # Conditional compilation
339 AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
340 AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes")
341
342 # Checks for typedefs, structures, and compiler characteristics.
343
344 AC_C_CONST
345 AC_TYPE_SIZE_T
346
347 pcre_have_strotolonglong=0
348 AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break])
349 # If we can't convert a string to a long long, pretend we don't even
350 # have a long long.
351 if test $pcre_have_strotolonglong = "0"; then
352 pcre_have_long_long="0"
353 pcre_have_ulong_long="0"
354 else
355 AC_CHECK_TYPES([long long],
356 [pcre_have_long_long="1"],
357 [pcre_have_long_long="0"])
358 AC_CHECK_TYPES([unsigned long long],
359 [pcre_have_ulong_long="1"],
360 [pcre_have_ulong_long="0"])
361 fi
362 AC_SUBST(pcre_have_long_long)
363 AC_SUBST(pcre_have_ulong_long)
364
365 # Checks for library functions.
366
367 AC_CHECK_FUNCS(bcopy memmove strerror)
368
369 # Check for the availability of libz (aka zlib)
370
371 AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
372 AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
373
374 # Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
375 # as for libz. However, this had the following problem, diagnosed and fixed by
376 # a user:
377 #
378 # - libbz2 uses the Pascal calling convention (WINAPI) for the functions
379 # under Win32.
380 # - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
381 # therefore missing the function definition.
382 # - The compiler thus generates a "C" signature for the test function.
383 # - The linker fails to find the "C" function.
384 # - PCRE fails to configure if asked to do so against libbz2.
385 #
386 # Solution:
387 #
388 # - Replace the AC_CHECK_LIB test with a custom test.
389
390 AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
391 # Original test
392 # AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
393 #
394 # Custom test follows
395
396 AC_MSG_CHECKING([for libbz2])
397 OLD_LIBS="$LIBS"
398 LIBS="$LIBS -lbz2"
399 AC_LINK_IFELSE( AC_LANG_PROGRAM([[
400 #ifdef HAVE_BZLIB_H
401 #include <bzlib.h>
402 #endif]],
403 [[return (int)BZ2_bzopen("conftest", "rb");]]),
404 [AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
405 AC_MSG_RESULT([no]))
406 LIBS="$OLD_LIBS"
407
408 # Check for the availabiity of libreadline
409
410 AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1])
411 AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1])
412 AC_CHECK_LIB([readline], [readline], [HAVE_LIB_READLINE=1])
413
414 # This facilitates -ansi builds under Linux
415 dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
416
417 PCRE_STATIC_CFLAG=""
418 if test "x$enable_shared" = "xno" ; then
419 AC_DEFINE([PCRE_STATIC], [1], [
420 Define if linking statically (TODO: make nice with Libtool)])
421 PCRE_STATIC_CFLAG="-DPCRE_STATIC"
422 fi
423 AC_SUBST(PCRE_STATIC_CFLAG)
424
425 # Here is where pcre specific defines are handled
426
427 if test "$enable_utf8" = "yes"; then
428 AC_DEFINE([SUPPORT_UTF8], [], [
429 Define to enable support for the UTF-8 Unicode encoding. This will
430 work even in an EBCDIC environment, but it is incompatible with
431 the EBCDIC macro. That is, PCRE can support *either* EBCDIC code
432 *or* ASCII/UTF-8, but not both at once.])
433 fi
434
435 if test "$enable_unicode_properties" = "yes"; then
436 AC_DEFINE([SUPPORT_UCP], [], [
437 Define to enable support for Unicode properties])
438 fi
439
440 if test "$enable_stack_for_recursion" = "no"; then
441 AC_DEFINE([NO_RECURSE], [], [
442 PCRE uses recursive function calls to handle backtracking while
443 matching. This can sometimes be a problem on systems that have
444 stacks of limited size. Define NO_RECURSE to get a version that
445 doesn't use recursion in the match() function; instead it creates
446 its own stack by steam using pcre_recurse_malloc() to obtain memory
447 from the heap. For more detail, see the comments and other stuff
448 just above the match() function. On systems that support it,
449 "configure" can be used to set this in the Makefile
450 (use --disable-stack-for-recursion).])
451 fi
452
453 if test "$enable_pcregrep_libz" = "yes"; then
454 AC_DEFINE([SUPPORT_LIBZ], [], [
455 Define to allow pcregrep to be linked with libz, so that it is
456 able to handle .gz files.])
457 fi
458
459 if test "$enable_pcregrep_libbz2" = "yes"; then
460 AC_DEFINE([SUPPORT_LIBBZ2], [], [
461 Define to allow pcregrep to be linked with libbz2, so that it is
462 able to handle .bz2 files.])
463 fi
464
465 if test "$enable_pcretest_libreadline" = "yes"; then
466 AC_DEFINE([SUPPORT_LIBREADLINE], [], [
467 Define to allow pcretest to be linked with libreadline.])
468 fi
469
470 AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
471 The value of NEWLINE determines the newline character sequence. On
472 systems that support it, "configure" can be used to override the
473 default, which is 10. The possible values are 10 (LF), 13 (CR),
474 3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).])
475
476 if test "$enable_bsr_anycrlf" = "yes"; then
477 AC_DEFINE([BSR_ANYCRLF], [], [
478 By default, the \R escape sequence matches any Unicode line ending
479 character or sequence of characters. If BSR_ANYCRLF is defined, this is
480 changed so that backslash-R matches only CR, LF, or CRLF. The build-
481 time default can be overridden by the user of PCRE at runtime. On
482 systems that support it, "configure" can be used to override the
483 default.])
484 fi
485
486 AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
487 The value of LINK_SIZE determines the number of bytes used to store
488 links as offsets within the compiled regex. The default is 2, which
489 allows for compiled patterns up to 64K long. This covers the vast
490 majority of cases. However, PCRE can also be compiled to use 3 or 4
491 bytes instead. This allows for longer patterns in extreme cases. On
492 systems that support it, "configure" can be used to override this default.])
493
494 AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHOLD], [$with_posix_malloc_threshold], [
495 When calling PCRE via the POSIX interface, additional working storage
496 is required for holding the pointers to capturing substrings because
497 PCRE requires three integers per substring, whereas the POSIX
498 interface provides only two. If the number of expected substrings is
499 small, the wrapper function uses space on the stack, because this is
500 faster than using malloc() for each call. The threshold above which
501 the stack is no longer used is defined by POSIX_MALLOC_THRESHOLD. On
502 systems that support it, "configure" can be used to override this
503 default.])
504
505 AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
506 The value of MATCH_LIMIT determines the default number of times the
507 internal match() function can be called during a single execution of
508 pcre_exec(). There is a runtime interface for setting a different
509 limit. The limit exists in order to catch runaway regular
510 expressions that take for ever to determine that they do not match.
511 The default is set very large so that it does not accidentally catch
512 legitimate cases. On systems that support it, "configure" can be
513 used to override this default default.])
514
515 AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSION], [$with_match_limit_recursion], [
516 The above limit applies to all calls of match(), whether or not they
517 increase the recursion depth. In some environments it is desirable
518 to limit the depth of recursive calls of match() more strictly, in
519 order to restrict the maximum amount of stack (or heap, if
520 NO_RECURSE is defined) that is used. The value of
521 MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
522 have any useful effect, it must be less than the value of
523 MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
524 There is a runtime method for setting a different limit. On systems
525 that support it, "configure" can be used to override the default.])
526
527 AC_DEFINE([MAX_NAME_SIZE], [32], [
528 This limit is parameterized just in case anybody ever wants to
529 change it. Care must be taken if it is increased, because it guards
530 against integer overflow caused by enormously large patterns.])
531
532 AC_DEFINE([MAX_NAME_COUNT], [10000], [
533 This limit is parameterized just in case anybody ever wants to
534 change it. Care must be taken if it is increased, because it guards
535 against integer overflow caused by enormously large patterns.])
536
537 AH_VERBATIM([PCRE_EXP_DEFN], [
538 /* If you are compiling for a system other than a Unix-like system or
539 Win32, and it needs some magic to be inserted before the definition
540 of a function that is exported by the library, define this macro to
541 contain the relevant magic. If you do not define this macro, it
542 defaults to "extern" for a C compiler and "extern C" for a C++
543 compiler on non-Win32 systems. This macro apears at the start of
544 every exported function that is part of the external API. It does
545 not appear on functions that are "external" in the C sense, but
546 which are internal to the library. */
547 #undef PCRE_EXP_DEFN])
548
549 if test "$enable_ebcdic" = "yes"; then
550 AC_DEFINE_UNQUOTED([EBCDIC], [], [
551 If you are compiling for a system that uses EBCDIC instead of ASCII
552 character codes, define this macro as 1. On systems that can use
553 "configure", this can be done via --enable-ebcdic. PCRE will then
554 assume that all input strings are in EBCDIC. If you do not define
555 this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.
556 It is not possible to build a version of PCRE that supports both
557 EBCDIC and UTF-8.])
558 fi
559
560 # Platform specific issues
561 NO_UNDEFINED=
562 EXPORT_ALL_SYMBOLS=
563 case $host_os in
564 cygwin* | mingw* )
565 if test X"$enable_shared" = Xyes; then
566 NO_UNDEFINED="-no-undefined"
567 EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
568 fi
569 ;;
570 esac
571
572 # The extra LDFLAGS for each particular library
573 # (Note: The libpcre*_version bits are m4 variables, assigned above)
574
575 EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
576 $NO_UNDEFINED -version-info libpcre_version"
577
578 EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
579 $NO_UNDEFINED -version-info libpcreposix_version"
580
581 EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
582 $NO_UNDEFINED -version-info libpcrecpp_version \
583 $EXPORT_ALL_SYMBOLS"
584
585 AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
586 AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
587 AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
588
589 # When we run 'make distcheck', use these arguments.
590 DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
591 AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
592
593 # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is
594 # specified, the relevant library is available.
595
596 if test "$enable_pcregrep_libz" = "yes"; then
597 if test "$HAVE_ZLIB_H" != "1"; then
598 echo "** Cannot --enable-pcregrep-libz because zlib.h was not found"
599 exit 1
600 fi
601 if test "$HAVE_LIBZ" != "1"; then
602 echo "** Cannot --enable-pcregrep-libz because libz was not found"
603 exit 1
604 fi
605 LIBZ="-lz"
606 fi
607 AC_SUBST(LIBZ)
608
609 if test "$enable_pcregrep_libbz2" = "yes"; then
610 if test "$HAVE_BZLIB_H" != "1"; then
611 echo "** Cannot --enable-pcregrep-libbz2 because bzlib.h was not found"
612 exit 1
613 fi
614 if test "$HAVE_LIBBZ2" != "1"; then
615 echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"
616 exit 1
617 fi
618 LIBBZ2="-lbz2"
619 fi
620 AC_SUBST(LIBBZ2)
621
622 # Similarly for --enable-pcretest-readline
623
624 if test "$enable_pcretest_libreadline" = "yes"; then
625 if test "$HAVE_READLINE_H" != "1"; then
626 echo "** Cannot --enable-pcretest-readline because readline/readline.h was not found."
627 exit 1
628 fi
629 if test "$HAVE_HISTORY_H" != "1"; then
630 echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."
631 exit 1
632 fi
633 LIBREADLINE="-lreadline"
634 fi
635 AC_SUBST(LIBREADLINE)
636
637 # Produce these files, in addition to config.h.
638 AC_CONFIG_FILES(
639 Makefile
640 libpcre.pc
641 libpcreposix.pc
642 libpcrecpp.pc
643 pcre-config
644 pcre.h
645 pcre_stringpiece.h
646 pcrecpparg.h
647 )
648
649 # Make the generated script files executable.
650 AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
651
652 # Make sure that pcre_chartables.c is removed in case the method for
653 # creating it was changed by reconfiguration.
654 AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
655
656 AC_OUTPUT
657
658 # Print out a nice little message after configure is run displaying your
659 # chosen options.
660
661 cat <<EOF
662
663 $PACKAGE-$VERSION configuration summary:
664
665 Install prefix .................. : ${prefix}
666 C preprocessor .................. : ${CPP}
667 C compiler ...................... : ${CC}
668 C++ preprocessor ................ : ${CXXCPP}
669 C++ compiler .................... : ${CXX}
670 Linker .......................... : ${LD}
671 C preprocessor flags ............ : ${CPPFLAGS}
672 C compiler flags ................ : ${CFLAGS}
673 C++ compiler flags .............. : ${CXXFLAGS}
674 Linker flags .................... : ${LDFLAGS}
675 Extra libraries ................. : ${LIBS}
676
677 Build C++ library ............... : ${enable_cpp}
678 Enable UTF-8 support ............ : ${enable_utf8}
679 Unicode properties .............. : ${enable_unicode_properties}
680 Newline char/sequence ........... : ${enable_newline}
681 \R matches only ANYCRLF ......... : ${enable_bsr_anycrlf}
682 EBCDIC coding ................... : ${enable_ebcdic}
683 Rebuild char tables ............. : ${enable_rebuild_chartables}
684 Use stack recursion ............. : ${enable_stack_for_recursion}
685 POSIX mem threshold ............. : ${with_posix_malloc_threshold}
686 Internal link size .............. : ${with_link_size}
687 Match limit ..................... : ${with_match_limit}
688 Match limit recursion ........... : ${with_match_limit_recursion}
689 Build shared libs ............... : ${enable_shared}
690 Build static libs ............... : ${enable_static}
691 Link pcregrep with libz ......... : ${enable_pcregrep_libz}
692 Link pcregrep with libbz2 ....... : ${enable_pcregrep_libbz2}
693 Link pcretest with libreadline .. : ${enable_pcretest_libreadline}
694
695 EOF
696
697 dnl end configure.ac

Properties

Name Value
svn:eol-style native
svn:keywords "Author Date Id Revision Url"

  ViewVC Help
Powered by ViewVC 1.1.5