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

Contents of /code/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 99 - (hide annotations) (download)
Tue Mar 6 12:27:42 2007 UTC (7 years, 7 months ago) by ph10
File size: 16336 byte(s)
1. Move the comment about version numbers from pcre.h.in to configure.ac 
because that's where they are now set.
2. Update all the man pages to remove the use of .br and .in because this
causes trouble for some HTML converters. Also standardised the final sections 
giving author information and revision date.
3. Update the maintain/132html man page converter to handle .nf/.fi and to barf 
at .br/.in.

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