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

Contents of /code/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 123 - (show annotations) (download)
Mon Mar 12 15:19:06 2007 UTC (7 years, 4 months ago) by ph10
File size: 16114 byte(s)
Removal of trailing spaces.

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, [7])
10 m4_define(pcre_minor, [1])
11 m4_define(pcre_prerelease, [-RC1])
12 m4_define(pcre_date, [2007-03-12])
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 AC_PROG_CC
25 AC_PROG_CXX
26 AC_PROG_INSTALL
27 AC_LIBTOOL_WIN32_DLL
28 AC_PROG_LIBTOOL
29
30 PCRE_MAJOR="pcre_major"
31 PCRE_MINOR="pcre_minor"
32 PCRE_PRERELEASE="pcre_prerelease"
33 PCRE_DATE="pcre_date"
34
35 AC_SUBST(PCRE_MAJOR)
36 AC_SUBST(PCRE_MINOR)
37 AC_SUBST(PCRE_PRERELEASE)
38 AC_SUBST(PCRE_DATE)
39
40 # Set a more sensible default value for $(htmldir).
41 if test "x$htmldir" = 'x${docdir}'
42 then
43 htmldir='${docdir}/html'
44 fi
45
46 # Handle --disable-cpp
47 AC_ARG_ENABLE(cpp,
48 AS_HELP_STRING([--disable-cpp],
49 [disable C++ support]),
50 , enable_cpp=yes)
51
52 # Handle --enable-utf8 (disabled by default)
53 AC_ARG_ENABLE(utf8,
54 AS_HELP_STRING([--enable-utf8],
55 [enable UTF-8 support]),
56 , enable_utf8=unset)
57
58 # Handle --enable-unicode-properties
59 AC_ARG_ENABLE(unicode-properties,
60 AS_HELP_STRING([--enable-unicode-properties],
61 [enable Unicode properties support (implies --enable-utf8)]),
62 , enable_unicode_properties=no)
63
64 # Handle --enable-newline=NL
65 dnl AC_ARG_ENABLE(newline,
66 dnl AS_HELP_STRING([--enable-newline=NL],
67 dnl [use NL as newline (lf, cr, crlf, any; default=lf)]),
68 dnl , enable_newline=lf)
69
70 # Separate newline options
71 ac_pcre_newline=lf
72 AC_ARG_ENABLE(newline-is-cr,
73 AS_HELP_STRING([--enable-newline-is-cr],
74 [use CR as newline character]),
75 ac_pcre_newline=cr)
76 AC_ARG_ENABLE(newline-is-lf,
77 AS_HELP_STRING([--enable-newline-is-lf],
78 [use LF as newline character (default)]),
79 ac_pcre_newline=lf)
80 AC_ARG_ENABLE(newline-is-crlf,
81 AS_HELP_STRING([--enable-newline-is-crlf],
82 [use CRLF as newline sequence]),
83 ac_pcre_newline=crlf)
84 AC_ARG_ENABLE(newline-is-any,
85 AS_HELP_STRING([--enable-newline-is-any],
86 [use any valid Unicode newline sequence]),
87 ac_pcre_newline=any)
88 enable_newline="$ac_pcre_newline"
89
90 # Handle --enable-ebcdic
91 AC_ARG_ENABLE(ebcdic,
92 AS_HELP_STRING([--enable-ebcdic],
93 [assume EBCDIC coding rather than ASCII]),
94 , enable_ebcdic=no)
95
96 # Handle --disable-stack-for-recursion
97 AC_ARG_ENABLE(stack-for-recursion,
98 AS_HELP_STRING([--disable-stack-for-recursion],
99 [don't use stack recursion when matching]),
100 , enable_stack_for_recursion=yes)
101
102 # Handle --with-posix-malloc-threshold=NBYTES
103 AC_ARG_WITH(posix-malloc-threshold,
104 AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
105 [threshold for POSIX malloc usage (default=10)]),
106 , with_posix_malloc_threshold=10)
107
108 # Handle --with-link-size=N
109 AC_ARG_WITH(link-size,
110 AS_HELP_STRING([--with-link-size=N],
111 [internal link size (2, 3, or 4 allowed; default=2)]),
112 , with_link_size=2)
113
114 # Handle --with-match-limit=N
115 AC_ARG_WITH(match-limit,
116 AS_HELP_STRING([--with-match-limit=N],
117 [default limit on internal looping (default=10000000)]),
118 , with_match_limit=10000000)
119
120 # Handle --with-match-limit_recursion=N
121 #
122 # Note: In config.h, the default is to define MATCH_LIMIT_RECURSION
123 # symbolically as MATCH_LIMIT, which in turn is defined to be some numeric
124 # value (e.g. 10000000). MATCH_LIMIT_RECURSION can otherwise be set to some
125 # different numeric value (or even the same numeric value as MATCH_LIMIT,
126 # though no longer defined in terms of the latter).
127 #
128 AC_ARG_WITH(match-limit-recursion,
129 AS_HELP_STRING([--with-match-limit-recursion=N],
130 [default limit on internal recursion (default=MATCH_LIMIT)]),
131 , with_match_limit_recursion=MATCH_LIMIT)
132
133 # Make sure that if enable_unicode_properties was set, that UTF-8 support
134 # is enabled.
135 #
136 if test "x$enable_unicode_properties" = "xyes"
137 then
138 if test "x$enable_utf8" = "xno"
139 then
140 AC_MSG_ERROR([support for Unicode properties requires UTF-8 support])
141 fi
142 enable_utf8=yes
143 fi
144
145 if test "x$enable_utf8" = "xunset"
146 then
147 enable_utf8=no
148 fi
149
150 # Convert the newline identifier into the appropriate integer value.
151 case "$enable_newline" in
152 lf) ac_pcre_newline_value=10 ;;
153 cr) ac_pcre_newline_value=13 ;;
154 crlf) ac_pcre_newline_value=3338 ;;
155 any) ac_pcre_newline_value=-1 ;;
156 *)
157 AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
158 ;;
159 esac
160
161 # Check argument to --with-link-size
162 case "$with_link_size" in
163 2|3|4) ;;
164 *)
165 AC_MSG_ERROR([invalid argument \"$with_link_size\" to --with-link-size option])
166 ;;
167 esac
168
169 AH_TOP([
170 /* On Unix-like systems config.h.in is converted by "configure" into config.h.
171 Some other environments also support the use of "configure". PCRE is written in
172 Standard C, but there are a few non-standard things it can cope with, allowing
173 it to run on SunOS4 and other "close to standard" systems.
174
175 If you are going to build PCRE "by hand" on a system without "configure" you
176 should copy the distributed config.h.generic to config.h, and then set up the
177 macros the way you need them. Alternatively, you can avoid editing by using -D
178 on the compiler command line to set the macro values.
179
180 PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
181 HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
182 them both to 0; an emulation function will be used. */])
183
184 # Checks for header files.
185 AC_HEADER_STDC
186 AC_CHECK_HEADERS(limits.h sys/types.h sys/stat.h dirent.h windows.h)
187
188 # The files below are C++ header files.
189 pcre_have_type_traits="0"
190 pcre_have_bits_type_traits="0"
191 if test "x$enable_cpp" = "xyes" -a -n "$CXX"
192 then
193 AC_LANG_PUSH(C++)
194
195 # We could be more clever here, given we're doing AC_SUBST with this
196 # (eg set a var to be the name of the include file we want). But we're not
197 # so it's easy to change back to 'regular' autoconf vars if we needed to.
198 AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
199 [pcre_have_cpp_headers="0"])
200 AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"],
201 [pcre_have_bits_type_traits="0"])
202 AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
203 [pcre_have_type_traits="0"])
204 AC_LANG_POP
205 fi
206 # Using AC_SUBST eliminates the need to include config.h in a public .h file
207 AC_SUBST(pcre_have_type_traits)
208 AC_SUBST(pcre_have_bits_type_traits)
209
210 # Conditional compilation
211 AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
212
213 # Checks for typedefs, structures, and compiler characteristics.
214
215 AC_C_CONST
216 AC_TYPE_SIZE_T
217
218 AC_CHECK_TYPES([long long],
219 [pcre_have_long_long="1"],
220 [pcre_have_long_long="0"])
221 AC_CHECK_TYPES([unsigned long long],
222 [pcre_have_ulong_long="1"],
223 [pcre_have_ulong_long="0"])
224 AC_SUBST(pcre_have_long_long)
225 AC_SUBST(pcre_have_ulong_long)
226
227 # Checks for library functions.
228
229 AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)
230
231 # This facilitates -ansi builds under Linux
232 dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
233
234 if test "x$enable_shared" = "xno" ; then
235 AC_DEFINE([PCRE_STATIC], [1], [
236 Define if linking statically (TODO: make nice with Libtool)])
237 fi
238
239 # Here is where pcre specific defines are handled
240
241 if test "$enable_utf8" = "yes"; then
242 AC_DEFINE([SUPPORT_UTF8], [], [
243 Define to enable support for the UTF-8 Unicode encoding.])
244 fi
245
246 if test "$enable_unicode_properties" = "yes"; then
247 AC_DEFINE([SUPPORT_UCP], [], [
248 Define to enable support for Unicode properties])
249 fi
250
251 if test "$enable_stack_for_recursion" = "no"; then
252 AC_DEFINE([NO_RECURSE], [], [
253 PCRE uses recursive function calls to handle backtracking while
254 matching. This can sometimes be a problem on systems that have
255 stacks of limited size. Define NO_RECURSE to get a version that
256 doesn't use recursion in the match() function; instead it creates
257 its own stack by steam using pcre_recurse_malloc() to obtain memory
258 from the heap. For more detail, see the comments and other stuff
259 just above the match() function. On systems that support it,
260 "configure" can be used to set this in the Makefile
261 (use --disable-stack-for-recursion).])
262 fi
263
264 AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
265 The value of NEWLINE determines the newline character sequence. On
266 Unix-like systems, "configure" can be used to override the default,
267 which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF),
268 or -1 (ANY).])
269
270 AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
271 The value of LINK_SIZE determines the number of bytes used to store
272 links as offsets within the compiled regex. The default is 2, which
273 allows for compiled patterns up to 64K long. This covers the vast
274 majority of cases. However, PCRE can also be compiled to use 3 or 4
275 bytes instead. This allows for longer patterns in extreme cases. On
276 systems that support it, "configure" can be used to override this default.])
277
278 AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHOLD], [$with_posix_malloc_threshold], [
279 When calling PCRE via the POSIX interface, additional working storage
280 is required for holding the pointers to capturing substrings because
281 PCRE requires three integers per substring, whereas the POSIX
282 interface provides only two. If the number of expected substrings is
283 small, the wrapper function uses space on the stack, because this is
284 faster than using malloc() for each call. The threshold above which
285 the stack is no longer used is defined by POSIX_MALLOC_THRESHOLD. On
286 systems that support it, "configure" can be used to override this
287 default.])
288
289 AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
290 The value of MATCH_LIMIT determines the default number of times the
291 internal match() function can be called during a single execution of
292 pcre_exec(). There is a runtime interface for setting a different
293 limit. The limit exists in order to catch runaway regular
294 expressions that take for ever to determine that they do not match.
295 The default is set very large so that it does not accidentally catch
296 legitimate cases. On systems that support it, "configure" can be
297 used to override this default default.])
298
299 AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSION], [$with_match_limit_recursion], [
300 The above limit applies to all calls of match(), whether or not they
301 increase the recursion depth. In some environments it is desirable
302 to limit the depth of recursive calls of match() more strictly, in
303 order to restrict the maximum amount of stack (or heap, if
304 NO_RECURSE is defined) that is used. The value of
305 MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
306 have any useful effect, it must be less than the value of
307 MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
308 There is a runtime method for setting a different limit. On systems
309 that support it, "configure" can be used to override the default.])
310
311 AC_DEFINE([MAX_NAME_SIZE], [32], [
312 This limit is parameterized just in case anybody ever wants to
313 change it. Care must be taken if it is increased, because it guards
314 against integer overflow caused by enormously large patterns.])
315
316 AC_DEFINE([MAX_NAME_COUNT], [10000], [
317 This limit is parameterized just in case anybody ever wants to
318 change it. Care must be taken if it is increased, because it guards
319 against integer overflow caused by enormously large patterns.])
320
321 AC_DEFINE([MAX_DUPLENGTH], [30000], [
322 This limit is parameterized just in case anybody ever wants to
323 change it. Care must be taken if it is increased, because it guards
324 against integer overflow caused by enormously large patterns.])
325
326 AH_VERBATIM([PCRE_DATA_SCOPE], [
327 /* If you are compiling for a system other than a Unix-like system or
328 Win32, and it needs some magic to be inserted before the definition
329 of a function that is exported by the library, define this macro to
330 contain the relevant magic. If you do not define this macro, it
331 defaults to "extern" for a C compiler and "extern C" for a C++
332 compiler on non-Win32 systems. This macro apears at the start of
333 every exported function that is part of the external API. It does
334 not appear on functions that are "external" in the C sense, but
335 which are internal to the library. */
336 #undef PCRE_DATA_SCOPE])
337
338 if test "$enable_ebcdic" = "yes"; then
339 AC_DEFINE_UNQUOTED([EBCDIC], [], [
340 If you are compiling for a system that uses EBCDIC instead of ASCII
341 character codes, define this macro as 1. On systems that can use
342 "configure", this can be done via --enable-ebcdic.])
343 fi
344
345 # Platform specific issues
346 NO_UNDEFINED=
347 EXPORT_ALL_SYMBOLS=
348 case $host_os in
349 cygwin* | mingw* )
350 if test X"$enable_shared" = Xyes; then
351 NO_UNDEFINED="-no-undefined"
352 EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
353 fi
354 ;;
355 esac
356
357 # The extra LDFLAGS for each particular library
358 # (Note: The libpcre*_version bits are m4 variables, assigned above)
359
360 EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"
361
362 EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"
363
364 EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"
365
366 AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
367 AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
368 AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
369
370 # When we run 'make distcheck', use these arguments.
371 DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
372 AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
373
374 # Produce these files, in addition to config.h.
375 AC_CONFIG_FILES(
376 Makefile
377 RunGrepTest
378 RunTest
379 libpcre.pc
380 libpcrecpp.pc
381 pcre-config
382 pcre.h
383 pcre_stringpiece.h
384 pcrecpparg.h
385 )
386
387 # Make the generated script files executable.
388 AC_CONFIG_COMMANDS([script-chmod], [chmod a+x RunTest RunGrepTest pcre-config])
389
390 AC_OUTPUT
391
392 # Print out a nice little message after configure is run displaying your
393 # chosen options.
394 #
395 cat <<EOF
396
397 $PACKAGE-$VERSION configuration summary:
398
399 Install prefix ......... : ${prefix}
400 C preprocessor ......... : ${CPP}
401 C compiler ............. : ${CC}
402 C++ preprocessor ....... : ${CXXCPP}
403 C++ compiler ........... : ${CXX}
404 Linker ................. : ${LD}
405 C preprocessor flags ... : ${CPPFLAGS}
406 C compiler flags ....... : ${CFLAGS}
407 C++ compiler flags ..... : ${CXXFLAGS}
408 Linker flags ........... : ${LDFLAGS}
409 Extra libraries ........ : ${LIBS}
410
411 Build C++ library ...... : ${enable_cpp}
412 Enable UTF-8 support ... : ${enable_utf8}
413 Unicode properties ..... : ${enable_unicode_properties}
414 Newline char/sequence .. : ${enable_newline}
415 EBCDIC coding .......... : ${enable_ebcdic}
416 Use stack recursion .... : ${enable_stack_for_recursion}
417 POSIX mem threshold .... : ${with_posix_malloc_threshold}
418 Internal link size ..... : ${with_link_size}
419 Match limit ............ : ${with_match_limit}
420 Match limit recursion .. : ${with_match_limit_recursion}
421 Build shared libs ...... : ${enable_shared}
422 Build static libs ...... : ${enable_static}
423
424 EOF
425
426 dnl end configure.ac

Properties

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12