/[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 96 by nigel, Fri Mar 2 13:10:43 2007 UTC revision 221 by ph10, Fri Aug 17 09:25:08 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, [3])
11    m4_define(pcre_prerelease, [-RC6])
12    m4_define(pcre_date, [2007-08-17])
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    if test "x$remember_set_CXXFLAGS" = "x"
53    then
54      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 Arrange to build config.h from config.h.in.  
 dnl Manual says this macro should come right after AC_INIT.  
 AC_CONFIG_HEADER(config.h)  
63    
64  dnl Default values for miscellaneous macros  AC_PROG_INSTALL
65    AC_LIBTOOL_WIN32_DLL
66    AC_PROG_LIBTOOL
67    AC_PROG_LN_S
68    
69  POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=10  PCRE_MAJOR="pcre_major"
70    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  dnl Provide versioning information for libtool shared libraries that  # Set a more sensible default value for $(htmldir).
80  dnl are built by default on Unix systems.  if test "x$htmldir" = 'x${docdir}'
81    then
82      htmldir='${docdir}/html'
83    fi
84    
85  PCRE_LIB_VERSION=0:1:0  # Handle --disable-cpp
86  PCRE_POSIXLIB_VERSION=0:0:0  AC_ARG_ENABLE(cpp,
87  PCRE_CPPLIB_VERSION=0:0:0                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  dnl Find the PCRE version from the pcre.h file. The PCRE_VERSION variable is  # Handle --enable-utf8 (disabled by default)
98  dnl substituted in pcre-config.in.  AC_ARG_ENABLE(utf8,
99                  AS_HELP_STRING([--enable-utf8],
100                                 [enable UTF-8 support]),
101                  , enable_utf8=unset)
102    
103  PCRE_MAJOR=`grep '#define PCRE_MAJOR' ${srcdir}/pcre.h | cut -c 29-`  # Handle --enable-unicode-properties
104  PCRE_MINOR=`grep '#define PCRE_MINOR' ${srcdir}/pcre.h | cut -c 29-`  AC_ARG_ENABLE(unicode-properties,
105  PCRE_PRERELEASE=`grep '#define PCRE_PRERELEASE' ${srcdir}/pcre.h | cut -c 29-`                AS_HELP_STRING([--enable-unicode-properties],
106  PCRE_VERSION=${PCRE_MAJOR}.${PCRE_MINOR}${PCRE_PRERELEASE}                               [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  dnl Handle --disable-cpp  # Separate newline options
116    ac_pcre_newline=lf
117    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  AC_ARG_ENABLE(cpp,  # Handle --enable-ebcdic
140  [  --disable-cpp           disable C++ support],  AC_ARG_ENABLE(ebcdic,
141  want_cpp="$enableval", want_cpp=yes)                AS_HELP_STRING([--enable-ebcdic],
142                                 [assume EBCDIC coding rather than ASCII; use this only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),
143                  , enable_ebcdic=no)
144    
145  dnl Checks for programs.  # 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  AC_PROG_CC  # Handle --with-posix-malloc-threshold=NBYTES
152    AC_ARG_WITH(posix-malloc-threshold,
153                AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
154                               [threshold for POSIX malloc usage (default=10)]),
155                , with_posix_malloc_threshold=10)
156    
157  dnl Test for C++ for the C++ wrapper libpcrecpp. It seems, however, that  # Handle --with-link-size=N
158  dnl AC_PROC_CXX will set $CXX to "g++" when no C++ compiler is installed, even  AC_ARG_WITH(link-size,
159  dnl though that is completely bogus. (This may happen only on certain systems              AS_HELP_STRING([--with-link-size=N],
160  dnl with certain versions of autoconf, of course.) An attempt to include this                             [internal link size (2, 3, or 4 allowed; default=2)]),
161  dnl test inside a check for want_cpp was criticized by a libtool expert, who              , with_link_size=2)
 dnl tells me that it isn't allowed.  
162    
163  AC_PROG_CXX  # Handle --with-match-limit=N
164    AC_ARG_WITH(match-limit,
165                AS_HELP_STRING([--with-match-limit=N],
166                               [default limit on internal looping (default=10000000)]),
167                , with_match_limit=10000000)
168    
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  dnl The icc compiler has the same options as gcc, so let the rest of the  if test "x$enable_utf8" = "xunset"
195  dnl configure script think it has gcc when setting up dnl options etc.  then
196  dnl This is a nasty hack which no longer seems necessary with the update    enable_utf8=no
197  dnl to the latest libtool files, so I have commented it out.  fi
 dnl  
 dnl if test "$CC" = "icc" ; then GCC=yes ; fi  
198    
199  AC_PROG_INSTALL  # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
200  AC_LIBTOOL_WIN32_DLL  #
201  AC_PROG_LIBTOOL  if test "x$enable_ebcdic" = "xyes"
202    then
203      enable_rebuild_chartables=yes
204    fi
205    
206  dnl We need to find a compiler for compiling a program to run on the local host  # Convert the newline identifier into the appropriate integer value.
207  dnl while building. It needs to be different from CC when cross-compiling.  case "$enable_newline" in
208  dnl There is a macro called AC_PROG_CC_FOR_BUILD in the GNU archive for    lf)      ac_pcre_newline_value=10   ;;
209  dnl figuring this out automatically. Unfortunately, it does not work with the    cr)      ac_pcre_newline_value=13   ;;
210  dnl latest versions of autoconf. So for the moment, we just default to the    crlf)    ac_pcre_newline_value=3338 ;;
211  dnl same values as the "main" compiler. People who are cross-compiling will    anycrlf) ac_pcre_newline_value=-2   ;;
212  dnl just have to adjust the Makefile by hand or set these values when they    any)     ac_pcre_newline_value=-1   ;;
213  dnl run "configure".    *)
214      AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
215  CC_FOR_BUILD=${CC_FOR_BUILD:-'$(CC)'}    ;;
216  CXX_FOR_BUILD=${CXX_FOR_BUILD:-'$(CXX)'}  esac
 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)'}  
217    
218  dnl Checks for header files.  # Check argument to --with-link-size
219    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  AC_HEADER_STDC  AH_TOP([
227  AC_CHECK_HEADERS(limits.h)  /* On Unix-like systems config.h.in is converted by "configure" into config.h.
228    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  dnl The files below are C++ header files. One person told me (PH) that  # Checks for header files.
242  dnl AC_LANG_CPLUSPLUS unsets CXX if it was explicitly set to something which  AC_HEADER_STDC
243  dnl doesn't work. However, this doesn't always seem to be the case.  AC_CHECK_HEADERS(limits.h sys/types.h sys/stat.h dirent.h windows.h)
244    
245  if test "x$want_cpp" = "xyes" -a -n "$CXX"  # 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  
   
 AC_ARG_ENABLE(unicode-properties,  
 [  --enable-unicode-properties  enable Unicode properties support],  
 if test "$enableval" = "yes"; then  
   UCP=-DSUPPORT_UCP  
 fi  
 )  
   
 dnl Handle --enable-newline-is-cr  
   
 AC_ARG_ENABLE(newline-is-cr,  
 [  --enable-newline-is-cr  use CR as the newline character],  
 if test "$enableval" = "yes"; then  
   NEWLINE=-DNEWLINE=13  
 fi  
 )  
   
 dnl Handle --enable-newline-is-lf  
   
 AC_ARG_ENABLE(newline-is-lf,  
 [  --enable-newline-is-lf  use LF as the newline character],  
 if test "$enableval" = "yes"; then  
   NEWLINE=-DNEWLINE=10  
 fi  
 )  
   
 dnl Handle --enable-newline-is-crlf  
   
 AC_ARG_ENABLE(newline-is-crlf,  
 [  --enable-newline-is-crlf  use CRLF as the newline sequence],  
 if test "$enableval" = "yes"; then  
   NEWLINE=-DNEWLINE=3338  
 fi  
 )  
   
 dnl Handle --enable-newline-is-any  
   
 AC_ARG_ENABLE(newline-is-any,  
 [  --enable-newline-is-any  use any Unicode newline sequence],  
 if test "$enableval" = "yes"; then  
   NEWLINE=-DNEWLINE=-1  
 fi  
 )  
   
 dnl Handle --enable-ebcdic  
291    
292  AC_ARG_ENABLE(ebcdic,  if test "x$enable_shared" = "xno" ; then
293  [  --enable-ebcdic         assume EBCDIC coding rather than ASCII],    AC_DEFINE([PCRE_STATIC], [1], [
294  if test "$enableval" = "yes"; then      Define if linking statically (TODO: make nice with Libtool)])
   EBCDIC=-DEBCDIC=1  
 fi  
 )  
   
 dnl Handle --disable-stack-for-recursion  
   
 AC_ARG_ENABLE(stack-for-recursion,  
 [  --disable-stack-for-recursion  disable use of stack recursion when matching],  
 if test "$enableval" = "no"; then  
   NO_RECURSE=-DNO_RECURSE  
295  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  
   
 AC_ARG_WITH(posix-malloc-threshold,  
 [  --with-posix-malloc-threshold=10  threshold for POSIX malloc usage],  
   POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=$withval  
 )  
   
 dnl Handle --with-link-size=n  
   
 AC_ARG_WITH(link-size,  
 [  --with-link-size=2    internal link size (2, 3, or 4 allowed)],  
   LINK_SIZE=-DLINK_SIZE=$withval  
 )  
   
 dnl Handle --with-match-limit=n  
   
 AC_ARG_WITH(match-limit,  
 [  --with-match-limit=10000000  default limit on internal looping],  
   MATCH_LIMIT=-DMATCH_LIMIT=$withval  
 )  
   
 dnl Handle --with-match-limit_recursion=n  
296    
297  AC_ARG_WITH(match-limit-recursion,  # Here is where pcre specific defines are handled
 [  --with-match-limit-recursion=10000000  default limit on internal recursion],  
   MATCH_LIMIT_RECURSION=-DMATCH_LIMIT_RECURSION=$withval  
 )  
298    
299  dnl Unicode character property support implies UTF-8 support  if test "$enable_utf8" = "yes"; then
300      AC_DEFINE([SUPPORT_UTF8], [], [
301        Define to enable support for the UTF-8 Unicode encoding.])
302    fi
303    
304    if test "$enable_unicode_properties" = "yes"; then
305      AC_DEFINE([SUPPORT_UCP], [], [
306        Define to enable support for Unicode properties])
307    fi
308    
309    if test "$enable_stack_for_recursion" = "no"; then
310      AC_DEFINE([NO_RECURSE], [], [
311        PCRE uses recursive function calls to handle backtracking while
312        matching. This can sometimes be a problem on systems that have
313        stacks of limited size. Define NO_RECURSE to get a version that
314        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
321    
322    AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
323      The value of NEWLINE determines the newline character sequence. On
324      Unix-like systems, "configure" can be used to override the default,
325      which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF),
326      -1 (ANY), or -2 (ANYCRLF).])
327    
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    AH_VERBATIM([PCRE_EXP_DEFN], [
380    /* If you are compiling for a system other than a Unix-like system or
381       Win32, and it needs some magic to be inserted before the definition
382       of a function that is exported by the library, define this macro to
383       contain the relevant magic. If you do not define this macro, it
384       defaults to "extern" for a C compiler and "extern C" for a C++
385       compiler on non-Win32 systems. This macro apears at the start of
386       every exported function that is part of the external API. It does
387       not appear on functions that are "external" in the C sense, but
388       which are internal to the library. */
389    #undef PCRE_EXP_DEFN])
390    
391    if test "$enable_ebcdic" = "yes"; then
392      AC_DEFINE_UNQUOTED([EBCDIC], [], [
393        If you are compiling for a system that uses EBCDIC instead of ASCII
394        character codes, define this macro as 1. On systems that can use
395        "configure", this can be done via --enable-ebcdic.])
396    fi
397    
398    # Platform specific issues
399    NO_UNDEFINED=
400    EXPORT_ALL_SYMBOLS=
401    case $host_os in
402      cygwin* | mingw* )
403        if test X"$enable_shared" = Xyes; then
404          NO_UNDEFINED="-no-undefined"
405          EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
406        fi
407        ;;
408    esac
409    
410  if test "$UCP" != "" ; then  # The extra LDFLAGS for each particular library
411    UTF8=-DSUPPORT_UTF8  # (Note: The libpcre*_version bits are m4 variables, assigned above)
 fi  
412    
413  dnl "Export" these variables  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"
414    
415  AC_SUBST(BUILD_EXEEXT)  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"
 AC_SUBST(BUILD_OBJEXT)  
 AC_SUBST(CC_FOR_BUILD)  
 AC_SUBST(CXX_FOR_BUILD)  
 AC_SUBST(CFLAGS_FOR_BUILD)  
 AC_SUBST(CXXFLAGS_FOR_BUILD)  
 AC_SUBST(CXXLDFLAGS)  
 AC_SUBST(EBCDIC)  
 AC_SUBST(HAVE_MEMMOVE)  
 AC_SUBST(HAVE_STRERROR)  
 AC_SUBST(LINK_SIZE)  
 AC_SUBST(MATCH_LIMIT)  
 AC_SUBST(MATCH_LIMIT_RECURSION)  
 AC_SUBST(NEWLINE)  
 AC_SUBST(NO_RECURSE)  
 AC_SUBST(PCRE_LIB_VERSION)  
 AC_SUBST(PCRE_POSIXLIB_VERSION)  
 AC_SUBST(PCRE_CPPLIB_VERSION)  
 AC_SUBST(PCRE_VERSION)  
 AC_SUBST(POSIX_MALLOC_THRESHOLD)  
 AC_SUBST(UCP)  
 AC_SUBST(UTF8)  
416    
417  dnl Stuff to make MinGW work better. Special treatment is no longer  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"
 dnl needed for Cygwin.  
418    
419  case $host_os in  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
420  mingw* )  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
421      POSIX_OBJ=pcreposix.o  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
422      POSIX_LOBJ=pcreposix.lo  
423      POSIX_LIB=  # When we run 'make distcheck', use these arguments.
424      ON_WINDOWS=  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
425      NOT_ON_WINDOWS="#"  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
426      WIN_PREFIX=  
427      ;;  # Produce these files, in addition to config.h.
428  * )  AC_CONFIG_FILES(
429      ON_WINDOWS="#"          Makefile
430      NOT_ON_WINDOWS=          libpcre.pc
431      POSIX_OBJ=          libpcrecpp.pc
432      POSIX_LOBJ=          pcre-config
433      POSIX_LIB=libpcreposix.la          pcre.h
434      WIN_PREFIX=          pcre_stringpiece.h
435      ;;          pcrecpparg.h
436  esac  )
437  AC_SUBST(WIN_PREFIX)  
438  AC_SUBST(ON_WINDOWS)  # Make the generated script files executable.
439  AC_SUBST(NOT_ON_WINDOWS)  AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
440  AC_SUBST(POSIX_OBJ)  
441  AC_SUBST(POSIX_LOBJ)  # Make sure that pcre_chartables.c is removed in case the method for
442  AC_SUBST(POSIX_LIB)  # creating it was changed by reconfiguration.
443    AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
444    
445    AC_OUTPUT
446    
447    # Print out a nice little message after configure is run displaying your
448    # chosen options.
449    #
450    cat <<EOF
451    
452    $PACKAGE-$VERSION configuration summary:
453    
454        Install prefix ......... : ${prefix}
455        C preprocessor ......... : ${CPP}
456        C compiler ............. : ${CC}
457        C++ preprocessor ....... : ${CXXCPP}
458        C++ compiler ........... : ${CXX}
459        Linker ................. : ${LD}
460        C preprocessor flags ... : ${CPPFLAGS}
461        C compiler flags ....... : ${CFLAGS}
462        C++ compiler flags ..... : ${CXXFLAGS}
463        Linker flags ........... : ${LDFLAGS}
464        Extra libraries ........ : ${LIBS}
465    
466        Build C++ library ...... : ${enable_cpp}
467        Enable UTF-8 support ... : ${enable_utf8}
468        Unicode properties ..... : ${enable_unicode_properties}
469        Newline char/sequence .. : ${enable_newline}
470        EBCDIC coding .......... : ${enable_ebcdic}
471        Rebuild char tables .... : ${enable_rebuild_chartables}
472        Use stack recursion .... : ${enable_stack_for_recursion}
473        POSIX mem threshold .... : ${with_posix_malloc_threshold}
474        Internal link size ..... : ${with_link_size}
475        Match limit ............ : ${with_match_limit}
476        Match limit recursion .. : ${with_match_limit_recursion}
477        Build shared libs ...... : ${enable_shared}
478        Build static libs ...... : ${enable_static}
479    
480  if test "x$enable_shared" = "xno" ; then  EOF
     AC_DEFINE([PCRE_STATIC],[1],[to link statically])  
 fi  
481    
482  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 libpcrecpp.pc:libpcrecpp.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.96  
changed lines
  Added in v.221

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12