/[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 97 by ph10, Mon Mar 5 12:36:47 2007 UTC revision 231 by ph10, Tue Sep 11 11:15:33 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 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])  m4_define(pcre_major, [7])
10  m4_define(pcre_minor, [1])  m4_define(pcre_minor, [4])
11  m4_define(pcre_prerelease, [-RC0])  m4_define(pcre_prerelease, [-RC1])
12  m4_define(pcre_date, [2006-12-18])  m4_define(pcre_date, [2007-09-10])
13    
14  # Libtool shared library interface versions (current:revision:age)  # Libtool shared library interface versions (current:revision:age)
15  m4_define(libpcre_version, [0:1:0])  m4_define(libpcre_version, [0:1:0])
# Line 15  AC_INIT(PCRE, pcre_major.pcre_minor[]pcr Line 21  AC_INIT(PCRE, pcre_major.pcre_minor[]pcr
21  AC_CONFIG_SRCDIR([pcre.h.in])  AC_CONFIG_SRCDIR([pcre.h.in])
22  AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])  AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
23  AC_CONFIG_HEADERS(config.h)  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    remember_set_CFLAGS="$CFLAGS"
36    remember_set_CXXFLAGS="$CXXFLAGS"
37    
38  AC_PROG_CC  AC_PROG_CC
39  AC_PROG_CXX  AC_PROG_CXX
40    
41    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    
63    
64  AC_PROG_INSTALL  AC_PROG_INSTALL
65  AC_LIBTOOL_WIN32_DLL  AC_LIBTOOL_WIN32_DLL
66  AC_PROG_LIBTOOL  AC_PROG_LIBTOOL
67    AC_PROG_LN_S
68    
69  PCRE_MAJOR="pcre_major"  PCRE_MAJOR="pcre_major"
70  PCRE_MINOR="pcre_minor"  PCRE_MINOR="pcre_minor"
# Line 43  AC_ARG_ENABLE(cpp, Line 88  AC_ARG_ENABLE(cpp,
88                               [disable C++ support]),                               [disable C++ support]),
89                , enable_cpp=yes)                , 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  # Handle --enable-utf8 (disabled by default)  # Handle --enable-utf8 (disabled by default)
98  AC_ARG_ENABLE(utf8,  AC_ARG_ENABLE(utf8,
99                AS_HELP_STRING([--enable-utf8],                AS_HELP_STRING([--enable-utf8],
# Line 58  AC_ARG_ENABLE(unicode-properties, Line 109  AC_ARG_ENABLE(unicode-properties,
109  # Handle --enable-newline=NL  # Handle --enable-newline=NL
110  dnl AC_ARG_ENABLE(newline,  dnl AC_ARG_ENABLE(newline,
111  dnl               AS_HELP_STRING([--enable-newline=NL],  dnl               AS_HELP_STRING([--enable-newline=NL],
112  dnl                              [use NL as newline (lf, cr, crlf, any; default=lf)]),  dnl                              [use NL as newline (lf, cr, crlf, anycrlf, any; default=lf)]),
113  dnl               , enable_newline=lf)  dnl               , enable_newline=lf)
114    
115  # Separate newline options  # Separate newline options
# Line 75  AC_ARG_ENABLE(newline-is-crlf, Line 126  AC_ARG_ENABLE(newline-is-crlf,
126                AS_HELP_STRING([--enable-newline-is-crlf],                AS_HELP_STRING([--enable-newline-is-crlf],
127                               [use CRLF as newline sequence]),                               [use CRLF as newline sequence]),
128                ac_pcre_newline=crlf)                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,  AC_ARG_ENABLE(newline-is-any,
134                AS_HELP_STRING([--enable-newline-is-any],                AS_HELP_STRING([--enable-newline-is-any],
135                               [use any valid Unicode newline sequence]),                               [use any valid Unicode newline sequence]),
136                ac_pcre_newline=any)                ac_pcre_newline=any)
137  enable_newline="$ac_pcre_newline"  enable_newline="$ac_pcre_newline"
138    
139    # Handle --enable-bsr-anycrlf
140    AC_ARG_ENABLE(bsr-anycrlf,
141                  AS_HELP_STRING([--enable-bsr-anycrlf],
142                                 [\R matches only CR, LF, CRLF by default]),
143                  , enable_bsr_anycrlf=no)
144    
145  # Handle --enable-ebcdic  # Handle --enable-ebcdic
146  AC_ARG_ENABLE(ebcdic,  AC_ARG_ENABLE(ebcdic,
147                AS_HELP_STRING([--enable-ebcdic],                AS_HELP_STRING([--enable-ebcdic],
148                               [assume EBCDIC coding rather than ASCII]),                               [assume EBCDIC coding rather than ASCII; use this only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),
149                , enable_ebcdic=no)                , enable_ebcdic=no)
150    
151  # Handle --disable-stack-for-recursion  # Handle --disable-stack-for-recursion
# Line 141  then Line 202  then
202    enable_utf8=no    enable_utf8=no
203  fi  fi
204    
205    # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
206    #
207    if test "x$enable_ebcdic" = "xyes"
208    then
209      enable_rebuild_chartables=yes
210    fi
211    
212  # Convert the newline identifier into the appropriate integer value.  # Convert the newline identifier into the appropriate integer value.
213  case "$enable_newline" in  case "$enable_newline" in
214    lf)   ac_pcre_newline_value=10   ;;    lf)      ac_pcre_newline_value=10   ;;
215    cr)   ac_pcre_newline_value=13   ;;    cr)      ac_pcre_newline_value=13   ;;
216    crlf) ac_pcre_newline_value=3338 ;;    crlf)    ac_pcre_newline_value=3338 ;;
217    any)  ac_pcre_newline_value=-1   ;;    anycrlf) ac_pcre_newline_value=-2   ;;
218      any)     ac_pcre_newline_value=-1   ;;
219    *)    *)
220    AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])    AC_MSG_ERROR([invalid argument \"$enable_newline\" to --enable-newline option])
221    ;;    ;;
# Line 161  case "$with_link_size" in Line 230  case "$with_link_size" in
230  esac  esac
231    
232  AH_TOP([  AH_TOP([
233  /* On Unix-like systems config.in is converted by "configure" into  /* On Unix-like systems config.h.in is converted by "configure" into config.h.
234  config.h.  Some other environments also support the use of "configure".  Some other environments also support the use of "configure". PCRE is written in
235  PCRE is written in Standard C, but there are a few non-standard things  Standard C, but there are a few non-standard things it can cope with, allowing
236  it can cope with, allowing it to run on SunOS4 and other "close to  it to run on SunOS4 and other "close to standard" systems.
237  standard" systems.  
238    If you are going to build PCRE "by hand" on a system without "configure" you
239  On a non-Unix-like system you should just copy this file into config.h,  should copy the distributed config.h.generic to config.h, and then set up the
240  and set up the macros the way you need them.  You should normally change  macros the way you need them. Alternatively, you can avoid editing by using -D
241  the definitions of HAVE_STRERROR and HAVE_MEMMOVE to 1.  Unfortunately,  on the compiler command line to set the macro values.
242  because of the way autoconf works, these cannot be made the defaults.  
243  If your system has bcopy() and not memmove(), change the definition of  PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
244  HAVE_BCOPY instead of HAVE_MEMMOVE.  If your system has neither bcopy()  HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
245  nor memmove(), leave them both as 0; an emulation function will be  them both to 0; an emulation function will be used. */])
 used. */])  
246    
247  # Checks for header files.  # Checks for header files.
248  AC_HEADER_STDC  AC_HEADER_STDC
# Line 188  then Line 256  then
256  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
257    
258  # 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
259  # (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
260  # 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.
261  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
262                           [pcre_have_cpp_headers="0"])                           [pcre_have_cpp_headers="0"])
# Line 204  AC_SUBST(pcre_have_bits_type_traits) Line 272  AC_SUBST(pcre_have_bits_type_traits)
272    
273  # Conditional compilation  # Conditional compilation
274  AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")  AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
275    AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes")
276    
277  # Checks for typedefs, structures, and compiler characteristics.  # Checks for typedefs, structures, and compiler characteristics.
278    
# Line 246  fi Line 315  fi
315  if test "$enable_stack_for_recursion" = "no"; then  if test "$enable_stack_for_recursion" = "no"; then
316    AC_DEFINE([NO_RECURSE], [], [    AC_DEFINE([NO_RECURSE], [], [
317      PCRE uses recursive function calls to handle backtracking while      PCRE uses recursive function calls to handle backtracking while
318      matching.  This can sometimes be a problem on systems that have      matching. This can sometimes be a problem on systems that have
319      stacks of limited size.  Define NO_RECURSE to get a version that      stacks of limited size. Define NO_RECURSE to get a version that
320      doesn't use recursion in the match() function; instead it creates      doesn't use recursion in the match() function; instead it creates
321      its own stack by steam using pcre_recurse_malloc() to obtain memory      its own stack by steam using pcre_recurse_malloc() to obtain memory
322      from the heap. For more detail, see the comments and other stuff      from the heap. For more detail, see the comments and other stuff
# Line 257  if test "$enable_stack_for_recursion" = Line 326  if test "$enable_stack_for_recursion" =
326  fi  fi
327    
328  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
329    The value of NEWLINE determines the newline character. The default is    The value of NEWLINE determines the newline character sequence. On
330    to leave it up to the compiler, but some sites want to force a    systems that support it, "configure" can be used to override the
331    particular value.  On Unix-like systems, "configure" can be used to    default, which is 10. The possible values are 10 (LF), 13 (CR),
332    override this default.])    3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).])
333    
334    if test "$enable_bsr_anycrlf" = "yes"; then
335      AC_DEFINE([BSR_ANYCRLF], [], [
336        By default, the \R escape sequence matches any Unicode line ending
337        character or sequence of characters. If BSR_ANYCRLF is defined, this is
338        changed so that backslash-R matches only CR, LF, or CRLF. The build-
339        time default can be overridden by the user of PCRE at runtime. On
340        systems that support it, "configure" can be used to override the
341        default.])
342    fi
343    
344  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
345    The value of LINK_SIZE determines the number of bytes used to store    The value of LINK_SIZE determines the number of bytes used to store
# Line 284  AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHO Line 363  AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHO
363  AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [  AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
364    The value of MATCH_LIMIT determines the default number of times the    The value of MATCH_LIMIT determines the default number of times the
365    internal match() function can be called during a single execution of    internal match() function can be called during a single execution of
366    pcre_exec().  There is a runtime interface for setting a different    pcre_exec(). There is a runtime interface for setting a different
367    limit. The limit exists in order to catch runaway regular    limit. The limit exists in order to catch runaway regular
368    expressions that take for ever to determine that they do not match.    expressions that take for ever to determine that they do not match.
369    The default is set very large so that it does not accidentally catch    The default is set very large so that it does not accidentally catch
# Line 299  AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSIO Line 378  AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSIO
378    NO_RECURSE is defined) that is used. The value of    NO_RECURSE is defined) that is used. The value of
379    MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To    MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
380    have any useful effect, it must be less than the value of    have any useful effect, it must be less than the value of
381    MATCH_LIMIT. There is a runtime method for setting a different    MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
382    limit. On systems that support it, "configure" can be used to    There is a runtime method for setting a different limit. On systems
383    override this default default.])    that support it, "configure" can be used to override the default.])
384    
385  AC_DEFINE([MAX_NAME_SIZE], [32], [  AC_DEFINE([MAX_NAME_SIZE], [32], [
386    This limit is parameterized just in case anybody ever wants to    This limit is parameterized just in case anybody ever wants to
# Line 313  AC_DEFINE([MAX_NAME_COUNT], [10000], [ Line 392  AC_DEFINE([MAX_NAME_COUNT], [10000], [
392    change it. Care must be taken if it is increased, because it guards    change it. Care must be taken if it is increased, because it guards
393    against integer overflow caused by enormously large patterns.])    against integer overflow caused by enormously large patterns.])
394    
395  AC_DEFINE([MAX_DUPLENGTH], [30000], [  AH_VERBATIM([PCRE_EXP_DEFN], [
   This limit is parameterized just in case anybody ever wants to  
   change it. Care must be taken if it is increased, because it guards  
   against integer overflow caused by enormously large patterns.])  
   
 AH_VERBATIM([PCRE_DATA_SCOPE], [  
396  /* If you are compiling for a system other than a Unix-like system or  /* If you are compiling for a system other than a Unix-like system or
397     Win32, and it needs some magic to be inserted before the definition     Win32, and it needs some magic to be inserted before the definition
398     of a function that is exported by the library, define this macro to     of a function that is exported by the library, define this macro to
# Line 328  AH_VERBATIM([PCRE_DATA_SCOPE], [ Line 402  AH_VERBATIM([PCRE_DATA_SCOPE], [
402     every exported function that is part of the external API. It does     every exported function that is part of the external API. It does
403     not appear on functions that are "external" in the C sense, but     not appear on functions that are "external" in the C sense, but
404     which are internal to the library. */     which are internal to the library. */
405  #undef PCRE_DATA_SCOPE])  #undef PCRE_EXP_DEFN])
406    
407  if test "$enable_ebcdic" = "yes"; then  if test "$enable_ebcdic" = "yes"; then
408    AC_DEFINE_UNQUOTED([EBCDIC], [], [    AC_DEFINE_UNQUOTED([EBCDIC], [], [
# Line 337  if test "$enable_ebcdic" = "yes"; then Line 411  if test "$enable_ebcdic" = "yes"; then
411      "configure", this can be done via --enable-ebcdic.])      "configure", this can be done via --enable-ebcdic.])
412  fi  fi
413    
 # Here is where pcre specific substs are handled  
 # These 3 are only used by RunTest.in.  
 # TODO: remove once RunTest uses pcretest -C instead.  
 AC_SUBST(LINK_SIZE, $with_link_size)  
 AC_SUBST(UTF8, $enable_utf8)  
 AC_SUBST(UCP, $enable_unicode_properties)  
   
414  # Platform specific issues  # Platform specific issues
415  NO_UNDEFINED=  NO_UNDEFINED=
416  EXPORT_ALL_SYMBOLS=  EXPORT_ALL_SYMBOLS=
# Line 376  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) Line 443  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
443  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
444  AC_CONFIG_FILES(  AC_CONFIG_FILES(
445          Makefile          Makefile
         RunGrepTest  
         RunTest  
446          libpcre.pc          libpcre.pc
447          libpcrecpp.pc          libpcrecpp.pc
448          pcre-config          pcre-config
# Line 387  AC_CONFIG_FILES( Line 452  AC_CONFIG_FILES(
452  )  )
453    
454  # Make the generated script files executable.  # Make the generated script files executable.
455  AC_CONFIG_COMMANDS([script-chmod], [chmod a+x RunTest RunGrepTest pcre-config])  AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
456    
457    # Make sure that pcre_chartables.c is removed in case the method for
458    # creating it was changed by reconfiguration.
459    AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
460    
461  AC_OUTPUT  AC_OUTPUT
462    
# Line 398  cat < Line 467  cat <
467    
468  $PACKAGE-$VERSION configuration summary:  $PACKAGE-$VERSION configuration summary:
469    
470      Install prefix ......... : ${prefix}      Install prefix ........... : ${prefix}
471      C preprocessor ......... : ${CPP}      C preprocessor ........... : ${CPP}
472      C compiler ............. : ${CC}      C compiler ............... : ${CC}
473      C++ preprocessor ....... : ${CXXCPP}      C++ preprocessor ......... : ${CXXCPP}
474      C++ compiler ........... : ${CXX}      C++ compiler ............. : ${CXX}
475      Linker ................. : ${LD}      Linker ................... : ${LD}
476      C preprocessor flags ... : ${CPPFLAGS}      C preprocessor flags ..... : ${CPPFLAGS}
477      C compiler flags ....... : ${CFLAGS}      C compiler flags ......... : ${CFLAGS}
478      C++ compiler flags ..... : ${CXXFLAGS}      C++ compiler flags ....... : ${CXXFLAGS}
479      Linker flags ........... : ${LDFLAGS}      Linker flags ............. : ${LDFLAGS}
480      Extra libraries ........ : ${LIBS}      Extra libraries .......... : ${LIBS}
481    
482      Build C++ library ...... : ${enable_cpp}      Build C++ library ........ : ${enable_cpp}
483      Enable UTF-8 support ... : ${enable_utf8}      Enable UTF-8 support ..... : ${enable_utf8}
484      Unicode properties ..... : ${enable_unicode_properties}      Unicode properties ....... : ${enable_unicode_properties}
485      Newline char/sequence .. : ${enable_newline}      Newline char/sequence .... : ${enable_newline}
486      EBCDIC coding .......... : ${enable_ebcdic}      \R matches only ANYCRLF .. : ${enable_bsr_anycrlf}
487      Use stack recursion .... : ${enable_stack_for_recursion}      EBCDIC coding ............ : ${enable_ebcdic}
488      POSIX mem threshold .... : ${with_posix_malloc_threshold}      Rebuild char tables ...... : ${enable_rebuild_chartables}
489      Internal link size ..... : ${with_link_size}      Use stack recursion ...... : ${enable_stack_for_recursion}
490      Match limit ............ : ${with_match_limit}      POSIX mem threshold ...... : ${with_posix_malloc_threshold}
491      Match limit recursion .. : ${with_match_limit_recursion}      Internal link size ....... : ${with_link_size}
492      Build shared libs ...... : ${enable_shared}      Match limit .............. : ${with_match_limit}
493      Build static libs ...... : ${enable_static}      Match limit recursion .... : ${with_match_limit_recursion}
494        Build shared libs ........ : ${enable_shared}
495        Build static libs ........ : ${enable_static}
496    
497  EOF  EOF
498    

Legend:
Removed from v.97  
changed lines
  Added in v.231

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12