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

Diff of /code/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 89 by nigel, Sat Feb 24 21:41:27 2007 UTC revision 173 by ph10, Tue Jun 5 11:17:10 2007 UTC
# Line 1  Line 1 
1  dnl Process this file with autoconf to produce a configure script.  dnl Process this file with autoconf to produce a configure script.
2    
3  dnl This configure.in file has been hacked around quite a lot as a result of  dnl NOTE FOR MAINTAINERS: Do not use major or minor version numbers with
4  dnl patches that various people have sent to me (PH). Sometimes the information  dnl leading zeros, because they may be treated as octal constants. The
5  dnl I get is contradictory. I've tried to put in comments that explain things,  dnl PCRE_PRERELEASE feature is for identifying release candidates. It might
6  dnl but in some cases the information is second-hand and I have no way of  dnl be defined as -RC2, for example. For real releases, it should be defined
7  dnl verifying it. I am not an autoconf or libtool expert!  dnl empty.
8    
9    m4_define(pcre_major, [7])
10    m4_define(pcre_minor, [2])
11    m4_define(pcre_prerelease, [-RC3])
12    m4_define(pcre_date, [2007-06-05])
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  dnl This is required at the start; the name is the name of a file  AC_PREREQ(2.57)
20  dnl it should be seeing, to verify it is in the same directory.  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    # The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just
26    # "-g" for any other compiler. There doesn't seem to be a standard way of
27    # getting rid of the -g (which I don't think is needed for a production
28    # library). This fudge seems to achieve the necessary. First, we remember the
29    # externally set values of CFLAGS and CXXFLAGS. Then call the AC_PROG_CC and
30    # AC_PROG_CXX macros to find the compilers - if CFLAGS and CXXFLAGS are not
31    # set, they will be set to Autoconf's defaults. Afterwards, if the original
32    # values were not set, remove the -g from the Autoconf defaults.
33    # (PH 02-May-07)
34    
35  AC_INIT(dftables.c)  remember_set_CFLAGS="$CFLAGS"
36  AC_CONFIG_SRCDIR([pcre.h])  remember_set_CXXFLAGS="$CXXFLAGS"
37    
38  dnl A safety precaution  AC_PROG_CC
39    AC_PROG_CXX
40    
41  AC_PREREQ(2.57)  if test "x$remember_set_CFLAGS" = "x"
42    then
43      if test "$CFLAGS" = "-g -O2"
44      then
45        CFLAGS="-O2"
46      elif test "$CFLAGS" = "-g"
47      then
48        CFLAGS=""
49      fi
50    fi
51    
52  dnl Arrange to build config.h from config.h.in.  if test "x$remember_set_CXXFLAGS" = "x"
53  dnl Manual says this macro should come right after AC_INIT.  then
54  AC_CONFIG_HEADER(config.h)    if test "$CXXFLAGS" = "-g -O2"
55      then
56        CXXFLAGS="-O2"
57      elif test "$CXXFLAGS" = "-g"
58      then
59        CXXFLAGS=""
60      fi
61    fi
62    
 dnl Default values for miscellaneous macros  
63    
64  POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=10  AC_PROG_INSTALL
65    AC_LIBTOOL_WIN32_DLL
66    AC_PROG_LIBTOOL
67    AC_PROG_LN_S
68    
69  dnl Provide versioning information for libtool shared libraries that  PCRE_MAJOR="pcre_major"
70  dnl are built by default on Unix systems.  PCRE_MINOR="pcre_minor"
71    PCRE_PRERELEASE="pcre_prerelease"
72    PCRE_DATE="pcre_date"
73    
74    AC_SUBST(PCRE_MAJOR)
75    AC_SUBST(PCRE_MINOR)
76    AC_SUBST(PCRE_PRERELEASE)
77    AC_SUBST(PCRE_DATE)
78    
79  PCRE_LIB_VERSION=0:1:0  # Set a more sensible default value for $(htmldir).
80  PCRE_POSIXLIB_VERSION=0:0:0  if test "x$htmldir" = 'x${docdir}'
81  PCRE_CPPLIB_VERSION=0:0:0  then
82      htmldir='${docdir}/html'
83    fi
84    
85  dnl Find the PCRE version from the pcre.h file. The PCRE_VERSION variable is  # Handle --disable-cpp
86  dnl substituted in pcre-config.in.  AC_ARG_ENABLE(cpp,
87                  AS_HELP_STRING([--disable-cpp],
88                                 [disable C++ support]),
89                  , enable_cpp=yes)
90    
91    # Handle --enable-rebuild-chartables
92    AC_ARG_ENABLE(rebuild-chartables,
93                  AS_HELP_STRING([--enable-rebuild-chartables],
94                                 [rebuild character tables in current locale]),
95                  , enable_rebuild_chartables=no)
96    
97  PCRE_MAJOR=`grep '#define PCRE_MAJOR' ${srcdir}/pcre.h | cut -c 29-`  # Handle --enable-utf8 (disabled by default)
98  PCRE_MINOR=`grep '#define PCRE_MINOR' ${srcdir}/pcre.h | cut -c 29-`  AC_ARG_ENABLE(utf8,
99  PCRE_PRERELEASE=`grep '#define PCRE_PRERELEASE' ${srcdir}/pcre.h | cut -c 29-`                AS_HELP_STRING([--enable-utf8],
100  PCRE_VERSION=${PCRE_MAJOR}.${PCRE_MINOR}${PCRE_PRERELEASE}                               [enable UTF-8 support]),
101                  , enable_utf8=unset)
102    
103  dnl Handle --disable-cpp  # Handle --enable-unicode-properties
104    AC_ARG_ENABLE(unicode-properties,
105                  AS_HELP_STRING([--enable-unicode-properties],
106                                 [enable Unicode properties support (implies --enable-utf8)]),
107                  , enable_unicode_properties=no)
108    
109    # Handle --enable-newline=NL
110    dnl AC_ARG_ENABLE(newline,
111    dnl               AS_HELP_STRING([--enable-newline=NL],
112    dnl                              [use NL as newline (lf, cr, crlf, anycrlf, any; default=lf)]),
113    dnl               , enable_newline=lf)
114    
115  AC_ARG_ENABLE(cpp,  # Separate newline options
116  [  --disable-cpp           disable C++ support],  ac_pcre_newline=lf
117  want_cpp="$enableval", want_cpp=yes)  AC_ARG_ENABLE(newline-is-cr,
118                  AS_HELP_STRING([--enable-newline-is-cr],
119                                 [use CR as newline character]),
120                  ac_pcre_newline=cr)
121    AC_ARG_ENABLE(newline-is-lf,
122                  AS_HELP_STRING([--enable-newline-is-lf],
123                                 [use LF as newline character (default)]),
124                  ac_pcre_newline=lf)
125    AC_ARG_ENABLE(newline-is-crlf,
126                  AS_HELP_STRING([--enable-newline-is-crlf],
127                                 [use CRLF as newline sequence]),
128                  ac_pcre_newline=crlf)
129    AC_ARG_ENABLE(newline-is-anycrlf,
130                  AS_HELP_STRING([--enable-newline-is-anycrlf],
131                                 [use CR, LF, or CRLF as newline sequence]),
132                  ac_pcre_newline=anycrlf)
133    AC_ARG_ENABLE(newline-is-any,
134                  AS_HELP_STRING([--enable-newline-is-any],
135                                 [use any valid Unicode newline sequence]),
136                  ac_pcre_newline=any)
137    enable_newline="$ac_pcre_newline"
138    
139  dnl Checks for programs.  # Handle --enable-ebcdic
140    AC_ARG_ENABLE(ebcdic,
141                  AS_HELP_STRING([--enable-ebcdic],
142                                 [assume EBCDIC coding rather than ASCII (implies --enable-rebuild-chartables)]),
143                  , enable_ebcdic=no)
144    
145  AC_PROG_CC  # Handle --disable-stack-for-recursion
146    AC_ARG_ENABLE(stack-for-recursion,
147                  AS_HELP_STRING([--disable-stack-for-recursion],
148                                 [don't use stack recursion when matching]),
149                  , enable_stack_for_recursion=yes)
150    
151  dnl Test for C++ for the C++ wrapper libpcrecpp. It seems, however, that  # Handle --with-posix-malloc-threshold=NBYTES
152  dnl AC_PROC_CXX will set $CXX to "g++" when no C++ compiler is installed, even  AC_ARG_WITH(posix-malloc-threshold,
153  dnl though that is completely bogus. (This may happen only on certain systems              AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
154  dnl with certain versions of autoconf, of course.) An attempt to include this                             [threshold for POSIX malloc usage (default=10)]),
155  dnl test inside a check for want_cpp was criticized by a libtool expert, who              , with_posix_malloc_threshold=10)
 dnl tells me that it isn't allowed.  
156    
157  AC_PROG_CXX  # Handle --with-link-size=N
158    AC_ARG_WITH(link-size,
159                AS_HELP_STRING([--with-link-size=N],
160                               [internal link size (2, 3, or 4 allowed; default=2)]),
161                , with_link_size=2)
162    
163  dnl The icc compiler has the same options as gcc, so let the rest of the  # Handle --with-match-limit=N
164  dnl configure script think it has gcc when setting up dnl options etc.  AC_ARG_WITH(match-limit,
165  dnl This is a nasty hack which no longer seems necessary with the update              AS_HELP_STRING([--with-match-limit=N],
166  dnl to the latest libtool files, so I have commented it out.                             [default limit on internal looping (default=10000000)]),
167  dnl              , with_match_limit=10000000)
168  dnl if test "$CC" = "icc" ; then GCC=yes ; fi  
169    # Handle --with-match-limit_recursion=N
170    #
171    # Note: In config.h, the default is to define MATCH_LIMIT_RECURSION
172    # symbolically as MATCH_LIMIT, which in turn is defined to be some numeric
173    # value (e.g. 10000000). MATCH_LIMIT_RECURSION can otherwise be set to some
174    # different numeric value (or even the same numeric value as MATCH_LIMIT,
175    # though no longer defined in terms of the latter).
176    #
177    AC_ARG_WITH(match-limit-recursion,
178                AS_HELP_STRING([--with-match-limit-recursion=N],
179                               [default limit on internal recursion (default=MATCH_LIMIT)]),
180                , with_match_limit_recursion=MATCH_LIMIT)
181    
182    # Make sure that if enable_unicode_properties was set, that UTF-8 support
183    # is enabled.
184    #
185    if test "x$enable_unicode_properties" = "xyes"
186    then
187      if test "x$enable_utf8" = "xno"
188      then
189        AC_MSG_ERROR([support for Unicode properties requires UTF-8 support])
190      fi
191      enable_utf8=yes
192    fi
193    
194  AC_PROG_INSTALL  if test "x$enable_utf8" = "xunset"
195  AC_LIBTOOL_WIN32_DLL  then
196  AC_PROG_LIBTOOL    enable_utf8=no
197    fi
198    
199  dnl We need to find a compiler for compiling a program to run on the local host  # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
200  dnl while building. It needs to be different from CC when cross-compiling.  #
201  dnl There is a macro called AC_PROG_CC_FOR_BUILD in the GNU archive for  if test "x$enable_ebcdic" = "xyes"
202  dnl figuring this out automatically. Unfortunately, it does not work with the  then
203  dnl latest versions of autoconf. So for the moment, we just default to the    enable_rebuild_chartables=yes
204  dnl same values as the "main" compiler. People who are cross-compiling will  fi
 dnl just have to adjust the Makefile by hand or set these values when they  
 dnl run "configure".  
   
 CC_FOR_BUILD=${CC_FOR_BUILD:-'$(CC)'}  
 CXX_FOR_BUILD=${CXX_FOR_BUILD:-'$(CXX)'}  
 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD:-'$(CFLAGS)'}  
 CPPFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD:-'$(CPPFLAGS)'}  
 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD:-'$(CXXFLAGS)'}  
 BUILD_EXEEXT=${BUILD_EXEEXT:-'$(EXEEXT)'}  
 BUILD_OBJEXT=${BUILD_OBJEXT:-'$(OBJEXT)'}  
205    
206  dnl Checks for header files.  # Convert the newline identifier into the appropriate integer value.
207    case "$enable_newline" in
208      lf)      ac_pcre_newline_value=10   ;;
209      cr)      ac_pcre_newline_value=13   ;;
210      crlf)    ac_pcre_newline_value=3338 ;;
211      anycrlf) ac_pcre_newline_value=-2   ;;
212      any)     ac_pcre_newline_value=-1   ;;
213      *)
214      AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
215      ;;
216    esac
217    
218  AC_HEADER_STDC  # Check argument to --with-link-size
219  AC_CHECK_HEADERS(limits.h)  case "$with_link_size" in
220      2|3|4) ;;
221      *)
222      AC_MSG_ERROR([invalid argument \"$with_link_size\" to --with-link-size option])
223      ;;
224    esac
225    
226  dnl The files below are C++ header files. One person told me (PH) that  AH_TOP([
227  dnl AC_LANG_CPLUSPLUS unsets CXX if it was explicitly set to something which  /* On Unix-like systems config.h.in is converted by "configure" into config.h.
228  dnl doesn't work. However, this doesn't always seem to be the case.  Some other environments also support the use of "configure". PCRE is written in
229    Standard C, but there are a few non-standard things it can cope with, allowing
230    it to run on SunOS4 and other "close to standard" systems.
231    
232    If you are going to build PCRE "by hand" on a system without "configure" you
233    should copy the distributed config.h.generic to config.h, and then set up the
234    macros the way you need them. Alternatively, you can avoid editing by using -D
235    on the compiler command line to set the macro values.
236    
237    PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
238    HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
239    them both to 0; an emulation function will be used. */])
240    
241  if test "x$want_cpp" = "xyes" -a -n "$CXX"  # Checks for header files.
242    AC_HEADER_STDC
243    AC_CHECK_HEADERS(limits.h sys/types.h sys/stat.h dirent.h windows.h)
244    
245    # The files below are C++ header files.
246    pcre_have_type_traits="0"
247    pcre_have_bits_type_traits="0"
248    if test "x$enable_cpp" = "xyes" -a -n "$CXX"
249  then  then
250  AC_LANG_SAVE  AC_LANG_PUSH(C++)
 AC_LANG_CPLUSPLUS  
251    
252  dnl We could be more clever here, given we're doing AC_SUBST with this  # We could be more clever here, given we're doing AC_SUBST with this
253  dnl (eg set a var to be the name of the include file we want).  But we're not  # (eg set a var to be the name of the include file we want). But we're not
254  dnl so it's easy to change back to 'regular' autoconf vars if we needed to.  # so it's easy to change back to 'regular' autoconf vars if we needed to.
255  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
256                           [pcre_have_cpp_headers="0"])                           [pcre_have_cpp_headers="0"])
257  AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"],  AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"],
258                                       [pcre_have_bits_type_traits="0"])                                       [pcre_have_bits_type_traits="0"])
259  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
260                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
261  dnl Using AC_SUBST eliminates the need to include config.h in a public .h file  AC_LANG_POP
 AC_SUBST(pcre_have_bits_type_traits)  
 AC_SUBST(pcre_have_type_traits)  
 AC_LANG_RESTORE  
262  fi  fi
263    # Using AC_SUBST eliminates the need to include config.h in a public .h file
264    AC_SUBST(pcre_have_type_traits)
265    AC_SUBST(pcre_have_bits_type_traits)
266    
267  dnl From the above, we now have enough info to know if C++ is fully installed  # Conditional compilation
268  if test "x$want_cpp" = "xyes" -a -n "$CXX" -a "$pcre_have_cpp_headers" = 1; then  AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
269    MAYBE_CPP_TARGETS='$(CPP_TARGETS)'  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes")
   HAVE_CPP=  
 else  
   MAYBE_CPP_TARGETS=  
   HAVE_CPP="#"  
 fi  
 AC_SUBST(MAYBE_CPP_TARGETS)  
 AC_SUBST(HAVE_CPP)  
270    
271  dnl Checks for typedefs, structures, and compiler characteristics.  # Checks for typedefs, structures, and compiler characteristics.
272    
273  AC_C_CONST  AC_C_CONST
274  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
275    
276  AC_CHECK_TYPES([long long], [pcre_have_long_long="1"], [pcre_have_long_long="0"])  AC_CHECK_TYPES([long long],
277  AC_CHECK_TYPES([unsigned long long], [pcre_have_ulong_long="1"], [pcre_have_ulong_long="0"])                 [pcre_have_long_long="1"],
278                   [pcre_have_long_long="0"])
279    AC_CHECK_TYPES([unsigned long long],
280                   [pcre_have_ulong_long="1"],
281                   [pcre_have_ulong_long="0"])
282  AC_SUBST(pcre_have_long_long)  AC_SUBST(pcre_have_long_long)
283  AC_SUBST(pcre_have_ulong_long)  AC_SUBST(pcre_have_ulong_long)
284    
285  dnl Checks for library functions.  # Checks for library functions.
286    
287  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)
288    
289  dnl Handle --enable-utf8  # This facilitates -ansi builds under Linux
290    dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
 AC_ARG_ENABLE(utf8,  
 [  --enable-utf8           enable UTF8 support],  
 if test "$enableval" = "yes"; then  
   UTF8=-DSUPPORT_UTF8  
 fi  
 )  
   
 dnl Handle --enable-unicode-properties  
291    
292  AC_ARG_ENABLE(unicode-properties,  if test "x$enable_shared" = "xno" ; then
293  [  --enable-unicode-properties  enable Unicode properties support],    AC_DEFINE([PCRE_STATIC], [1], [
294  if test "$enableval" = "yes"; then      Define if linking statically (TODO: make nice with Libtool)])
   UCP=-DSUPPORT_UCP  
295  fi  fi
 )  
296    
297  dnl Handle --enable-newline-is-cr  # Here is where pcre specific defines are handled
298    
299  AC_ARG_ENABLE(newline-is-cr,  if test "$enable_utf8" = "yes"; then
300  [  --enable-newline-is-cr  use CR as the newline character],    AC_DEFINE([SUPPORT_UTF8], [], [
301  if test "$enableval" = "yes"; then      Define to enable support for the UTF-8 Unicode encoding.])
   NEWLINE=-DNEWLINE=13  
302  fi  fi
 )  
303    
304  dnl Handle --enable-newline-is-lf  if test "$enable_unicode_properties" = "yes"; then
305      AC_DEFINE([SUPPORT_UCP], [], [
306  AC_ARG_ENABLE(newline-is-lf,      Define to enable support for Unicode properties])
 [  --enable-newline-is-lf  use LF as the newline character],  
 if test "$enableval" = "yes"; then  
   NEWLINE=-DNEWLINE=10  
307  fi  fi
 )  
308    
309  dnl Handle --enable-ebcdic  if test "$enable_stack_for_recursion" = "no"; then
310      AC_DEFINE([NO_RECURSE], [], [
311  AC_ARG_ENABLE(ebcdic,      PCRE uses recursive function calls to handle backtracking while
312  [  --enable-ebcdic         assume EBCDIC coding rather than ASCII],      matching. This can sometimes be a problem on systems that have
313  if test "$enableval" == "yes"; then      stacks of limited size. Define NO_RECURSE to get a version that
314    EBCDIC=-DEBCDIC=1      doesn't use recursion in the match() function; instead it creates
315        its own stack by steam using pcre_recurse_malloc() to obtain memory
316        from the heap. For more detail, see the comments and other stuff
317        just above the match() function. On systems that support it,
318        "configure" can be used to set this in the Makefile
319        (use --disable-stack-for-recursion).])
320  fi  fi
 )  
321    
322  dnl Handle --disable-stack-for-recursion  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
323      The value of NEWLINE determines the newline character sequence. On
324  AC_ARG_ENABLE(stack-for-recursion,    Unix-like systems, "configure" can be used to override the default,
325  [  --disable-stack-for-recursion  disable use of stack recursion when matching],    which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF),
326  if test "$enableval" = "no"; then    -1 (ANY), or -2 (ANYCRLF).])
327    NO_RECURSE=-DNO_RECURSE  
328    AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
329      The value of LINK_SIZE determines the number of bytes used to store
330      links as offsets within the compiled regex. The default is 2, which
331      allows for compiled patterns up to 64K long. This covers the vast
332      majority of cases. However, PCRE can also be compiled to use 3 or 4
333      bytes instead. This allows for longer patterns in extreme cases. On
334      systems that support it, "configure" can be used to override this default.])
335    
336    AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHOLD], [$with_posix_malloc_threshold], [
337      When calling PCRE via the POSIX interface, additional working storage
338      is required for holding the pointers to capturing substrings because
339      PCRE requires three integers per substring, whereas the POSIX
340      interface provides only two. If the number of expected substrings is
341      small, the wrapper function uses space on the stack, because this is
342      faster than using malloc() for each call. The threshold above which
343      the stack is no longer used is defined by POSIX_MALLOC_THRESHOLD. On
344      systems that support it, "configure" can be used to override this
345      default.])
346    
347    AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
348      The value of MATCH_LIMIT determines the default number of times the
349      internal match() function can be called during a single execution of
350      pcre_exec(). There is a runtime interface for setting a different
351      limit. The limit exists in order to catch runaway regular
352      expressions that take for ever to determine that they do not match.
353      The default is set very large so that it does not accidentally catch
354      legitimate cases. On systems that support it, "configure" can be
355      used to override this default default.])
356    
357    AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSION], [$with_match_limit_recursion], [
358      The above limit applies to all calls of match(), whether or not they
359      increase the recursion depth. In some environments it is desirable
360      to limit the depth of recursive calls of match() more strictly, in
361      order to restrict the maximum amount of stack (or heap, if
362      NO_RECURSE is defined) that is used. The value of
363      MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
364      have any useful effect, it must be less than the value of
365      MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
366      There is a runtime method for setting a different limit. On systems
367      that support it, "configure" can be used to override the default.])
368    
369    AC_DEFINE([MAX_NAME_SIZE], [32], [
370      This limit is parameterized just in case anybody ever wants to
371      change it. Care must be taken if it is increased, because it guards
372      against integer overflow caused by enormously large patterns.])
373    
374    AC_DEFINE([MAX_NAME_COUNT], [10000], [
375      This limit is parameterized just in case anybody ever wants to
376      change it. Care must be taken if it is increased, because it guards
377      against integer overflow caused by enormously large patterns.])
378    
379    AC_DEFINE([MAX_DUPLENGTH], [30000], [
380      This limit is parameterized just in case anybody ever wants to
381      change it. Care must be taken if it is increased, because it guards
382      against integer overflow caused by enormously large patterns.])
383    
384    AH_VERBATIM([PCRE_EXP_DEFN], [
385    /* If you are compiling for a system other than a Unix-like system or
386       Win32, and it needs some magic to be inserted before the definition
387       of a function that is exported by the library, define this macro to
388       contain the relevant magic. If you do not define this macro, it
389       defaults to "extern" for a C compiler and "extern C" for a C++
390       compiler on non-Win32 systems. This macro apears at the start of
391       every exported function that is part of the external API. It does
392       not appear on functions that are "external" in the C sense, but
393       which are internal to the library. */
394    #undef PCRE_EXP_DEFN])
395    
396    if test "$enable_ebcdic" = "yes"; then
397      AC_DEFINE_UNQUOTED([EBCDIC], [], [
398        If you are compiling for a system that uses EBCDIC instead of ASCII
399        character codes, define this macro as 1. On systems that can use
400        "configure", this can be done via --enable-ebcdic.])
401  fi  fi
 )  
   
 dnl There doesn't seem to be a straightforward way of having parameters  
 dnl that set values, other than fudging the --with thing. So that's what  
 dnl I've done.  
   
 dnl Handle --with-posix-malloc-threshold=n  
402    
403  AC_ARG_WITH(posix-malloc-threshold,  # Platform specific issues
404  [  --with-posix-malloc-threshold=10  threshold for POSIX malloc usage],  NO_UNDEFINED=
405    POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=$withval  EXPORT_ALL_SYMBOLS=
406  )  case $host_os in
407      cygwin* | mingw* )
408        if test X"$enable_shared" = Xyes; then
409          NO_UNDEFINED="-no-undefined"
410          EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
411        fi
412        ;;
413    esac
414    
415  dnl Handle --with-link-size=n  # The extra LDFLAGS for each particular library
416    # (Note: The libpcre*_version bits are m4 variables, assigned above)
417    
418  AC_ARG_WITH(link-size,  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"
 [  --with-link-size=2    internal link size (2, 3, or 4 allowed)],  
   LINK_SIZE=-DLINK_SIZE=$withval  
 )  
419    
420  dnl Handle --with-match-limit=n  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"
421    
422  AC_ARG_WITH(match-limit,  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"
 [  --with-match-limit=10000000  default limit on internal looping],  
   MATCH_LIMIT=-DMATCH_LIMIT=$withval  
 )  
423    
424  dnl Handle --with-match-limit_recursion=n  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
425    AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
426  AC_ARG_WITH(match-limit-recursion,  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
427  [  --with-match-limit-recursion=10000000  default limit on internal recursion],  
428    MATCH_LIMIT_RECURSION=-DMATCH_LIMIT_RECURSION=$withval  # When we run 'make distcheck', use these arguments.
429    DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
430    AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
431    
432    # Produce these files, in addition to config.h.
433    AC_CONFIG_FILES(
434            Makefile
435            libpcre.pc
436            libpcrecpp.pc
437            pcre-config
438            pcre.h
439            pcre_stringpiece.h
440            pcrecpparg.h
441  )  )
442    
443  dnl Unicode character property support implies UTF-8 support  # Make the generated script files executable.
444    AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
445    
446  if test "$UCP" != "" ; then  # Make sure that pcre_chartables.c is removed in case the method for
447    UTF8=-DSUPPORT_UTF8  # creating it was changed by reconfiguration.
448  fi  AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
449    
450  dnl "Export" these variables  AC_OUTPUT
451    
452  AC_SUBST(BUILD_EXEEXT)  # Print out a nice little message after configure is run displaying your
453  AC_SUBST(BUILD_OBJEXT)  # chosen options.
454  AC_SUBST(CC_FOR_BUILD)  #
455  AC_SUBST(CXX_FOR_BUILD)  cat <<EOF
456  AC_SUBST(CFLAGS_FOR_BUILD)  
457  AC_SUBST(CXXFLAGS_FOR_BUILD)  $PACKAGE-$VERSION configuration summary:
458  AC_SUBST(CXXLDFLAGS)  
459  AC_SUBST(EBCDIC)      Install prefix ......... : ${prefix}
460  AC_SUBST(HAVE_MEMMOVE)      C preprocessor ......... : ${CPP}
461  AC_SUBST(HAVE_STRERROR)      C compiler ............. : ${CC}
462  AC_SUBST(LINK_SIZE)      C++ preprocessor ....... : ${CXXCPP}
463  AC_SUBST(MATCH_LIMIT)      C++ compiler ........... : ${CXX}
464  AC_SUBST(MATCH_LIMIT_RECURSION)      Linker ................. : ${LD}
465  AC_SUBST(NEWLINE)      C preprocessor flags ... : ${CPPFLAGS}
466  AC_SUBST(NO_RECURSE)      C compiler flags ....... : ${CFLAGS}
467  AC_SUBST(PCRE_LIB_VERSION)      C++ compiler flags ..... : ${CXXFLAGS}
468  AC_SUBST(PCRE_POSIXLIB_VERSION)      Linker flags ........... : ${LDFLAGS}
469  AC_SUBST(PCRE_CPPLIB_VERSION)      Extra libraries ........ : ${LIBS}
470  AC_SUBST(PCRE_VERSION)  
471  AC_SUBST(POSIX_MALLOC_THRESHOLD)      Build C++ library ...... : ${enable_cpp}
472  AC_SUBST(UCP)      Enable UTF-8 support ... : ${enable_utf8}
473  AC_SUBST(UTF8)      Unicode properties ..... : ${enable_unicode_properties}
474        Newline char/sequence .. : ${enable_newline}
475        EBCDIC coding .......... : ${enable_ebcdic}
476        Rebuild char tables .... : ${enable_rebuild_chartables}
477        Use stack recursion .... : ${enable_stack_for_recursion}
478        POSIX mem threshold .... : ${with_posix_malloc_threshold}
479        Internal link size ..... : ${with_link_size}
480        Match limit ............ : ${with_match_limit}
481        Match limit recursion .. : ${with_match_limit_recursion}
482        Build shared libs ...... : ${enable_shared}
483        Build static libs ...... : ${enable_static}
484    
485  dnl Stuff to make MinGW work better. Special treatment is no longer  EOF
 dnl needed for Cygwin.  
   
 case $host_os in  
 mingw* )  
     POSIX_OBJ=pcreposix.o  
     POSIX_LOBJ=pcreposix.lo  
     POSIX_LIB=  
     ON_WINDOWS=  
     NOT_ON_WINDOWS="#"  
     WIN_PREFIX=  
     ;;  
 * )  
     ON_WINDOWS="#"  
     NOT_ON_WINDOWS=  
     POSIX_OBJ=  
     POSIX_LOBJ=  
     POSIX_LIB=libpcreposix.la  
     WIN_PREFIX=  
     ;;  
 esac  
 AC_SUBST(WIN_PREFIX)  
 AC_SUBST(ON_WINDOWS)  
 AC_SUBST(NOT_ON_WINDOWS)  
 AC_SUBST(POSIX_OBJ)  
 AC_SUBST(POSIX_LOBJ)  
 AC_SUBST(POSIX_LIB)  
   
 if test "x$enable_shared" = "xno" ; then  
     AC_DEFINE([PCRE_STATIC],[1],[to link statically])  
 fi  
486    
487  dnl This must be last; it determines what files are written as well as config.h  dnl end configure.ac
 AC_OUTPUT(Makefile pcre-config:pcre-config.in libpcre.pc:libpcre.pc.in pcrecpparg.h:pcrecpparg.h.in pcre_stringpiece.h:pcre_stringpiece.h.in RunGrepTest:RunGrepTest.in RunTest:RunTest.in,[chmod a+x RunTest RunGrepTest pcre-config])  

Legend:
Removed from v.89  
changed lines
  Added in v.173

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12