/[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 98 by ph10, Mon Mar 5 15:55:02 2007 UTC revision 260 by ph10, Thu Sep 20 10:19:16 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, [-RC1])  m4_define(pcre_prerelease, [])
12  m4_define(pcre_date, [2007-03-05])  m4_define(pcre_date, [2007-09-21])
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  macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to
241  the definitions of HAVE_STRERROR and HAVE_MEMMOVE to 1.  Unfortunately,  all of your compile commands, so that config.h is included at the start of
242  because of the way autoconf works, these cannot be made the defaults.  every source.
243  If your system has bcopy() and not memmove(), change the definition of  
244  HAVE_BCOPY instead of HAVE_MEMMOVE.  If your system has neither bcopy()  Alternatively, you can avoid editing by using -D on the compiler command line
245  nor memmove(), leave them both as 0; an emulation function will be  to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H.
246  used. */])  
247    PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
248    HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
249    them both to 0; an emulation function will be used. */])
250    
251  # Checks for header files.  # Checks for header files.
252  AC_HEADER_STDC  AC_HEADER_STDC
# Line 188  then Line 260  then
260  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
261    
262  # 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
263  # (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
264  # 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.
265  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],  AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"],
266                           [pcre_have_cpp_headers="0"])                           [pcre_have_cpp_headers="0"])
# Line 204  AC_SUBST(pcre_have_bits_type_traits) Line 276  AC_SUBST(pcre_have_bits_type_traits)
276    
277  # Conditional compilation  # Conditional compilation
278  AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")  AM_CONDITIONAL(WITH_PCRE_CPP, test "x$enable_cpp" = "xyes")
279    AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes")
280    
281  # Checks for typedefs, structures, and compiler characteristics.  # Checks for typedefs, structures, and compiler characteristics.
282    
# Line 221  AC_SUBST(pcre_have_ulong_long) Line 294  AC_SUBST(pcre_have_ulong_long)
294    
295  # Checks for library functions.  # Checks for library functions.
296    
297  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll _strtoi64)
298    
299  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
300  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
# Line 246  fi Line 319  fi
319  if test "$enable_stack_for_recursion" = "no"; then  if test "$enable_stack_for_recursion" = "no"; then
320    AC_DEFINE([NO_RECURSE], [], [    AC_DEFINE([NO_RECURSE], [], [
321      PCRE uses recursive function calls to handle backtracking while      PCRE uses recursive function calls to handle backtracking while
322      matching.  This can sometimes be a problem on systems that have      matching. This can sometimes be a problem on systems that have
323      stacks of limited size.  Define NO_RECURSE to get a version that      stacks of limited size. Define NO_RECURSE to get a version that
324      doesn't use recursion in the match() function; instead it creates      doesn't use recursion in the match() function; instead it creates
325      its own stack by steam using pcre_recurse_malloc() to obtain memory      its own stack by steam using pcre_recurse_malloc() to obtain memory
326      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 330  if test "$enable_stack_for_recursion" =
330  fi  fi
331    
332  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
333    The value of NEWLINE determines the newline character. The default is    The value of NEWLINE determines the newline character sequence. On
334    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
335    particular value.  On Unix-like systems, "configure" can be used to    default, which is 10. The possible values are 10 (LF), 13 (CR),
336    override this default.])    3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).])
337    
338    if test "$enable_bsr_anycrlf" = "yes"; then
339      AC_DEFINE([BSR_ANYCRLF], [], [
340        By default, the \R escape sequence matches any Unicode line ending
341        character or sequence of characters. If BSR_ANYCRLF is defined, this is
342        changed so that backslash-R matches only CR, LF, or CRLF. The build-
343        time default can be overridden by the user of PCRE at runtime. On
344        systems that support it, "configure" can be used to override the
345        default.])
346    fi
347    
348  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
349    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 367  AC_DEFINE_UNQUOTED([POSIX_MALLOC_THRESHO
367  AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [  AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
368    The value of MATCH_LIMIT determines the default number of times the    The value of MATCH_LIMIT determines the default number of times the
369    internal match() function can be called during a single execution of    internal match() function can be called during a single execution of
370    pcre_exec().  There is a runtime interface for setting a different    pcre_exec(). There is a runtime interface for setting a different
371    limit. The limit exists in order to catch runaway regular    limit. The limit exists in order to catch runaway regular
372    expressions that take for ever to determine that they do not match.    expressions that take for ever to determine that they do not match.
373    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 382  AC_DEFINE_UNQUOTED([MATCH_LIMIT_RECURSIO
382    NO_RECURSE is defined) that is used. The value of    NO_RECURSE is defined) that is used. The value of
383    MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To    MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To
384    have any useful effect, it must be less than the value of    have any useful effect, it must be less than the value of
385    MATCH_LIMIT. There is a runtime method for setting a different    MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT.
386    limit. On systems that support it, "configure" can be used to    There is a runtime method for setting a different limit. On systems
387    override this default default.])    that support it, "configure" can be used to override the default.])
388    
389  AC_DEFINE([MAX_NAME_SIZE], [32], [  AC_DEFINE([MAX_NAME_SIZE], [32], [
390    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 396  AC_DEFINE([MAX_NAME_COUNT], [10000], [
396    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
397    against integer overflow caused by enormously large patterns.])    against integer overflow caused by enormously large patterns.])
398    
399  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], [  
400  /* 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
401     Win32, and it needs some magic to be inserted before the definition     Win32, and it needs some magic to be inserted before the definition
402     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 406  AH_VERBATIM([PCRE_DATA_SCOPE], [
406     every exported function that is part of the external API. It does     every exported function that is part of the external API. It does
407     not appear on functions that are "external" in the C sense, but     not appear on functions that are "external" in the C sense, but
408     which are internal to the library. */     which are internal to the library. */
409  #undef PCRE_DATA_SCOPE])  #undef PCRE_EXP_DEFN])
410    
411  if test "$enable_ebcdic" = "yes"; then  if test "$enable_ebcdic" = "yes"; then
412    AC_DEFINE_UNQUOTED([EBCDIC], [], [    AC_DEFINE_UNQUOTED([EBCDIC], [], [
# Line 337  if test "$enable_ebcdic" = "yes"; then Line 415  if test "$enable_ebcdic" = "yes"; then
415      "configure", this can be done via --enable-ebcdic.])      "configure", this can be done via --enable-ebcdic.])
416  fi  fi
417    
 # 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)  
   
418  # Platform specific issues  # Platform specific issues
419  NO_UNDEFINED=  NO_UNDEFINED=
420  EXPORT_ALL_SYMBOLS=  EXPORT_ALL_SYMBOLS=
# Line 376  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) Line 447  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
447  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
448  AC_CONFIG_FILES(  AC_CONFIG_FILES(
449          Makefile          Makefile
         RunGrepTest  
         RunTest  
450          libpcre.pc          libpcre.pc
451          libpcrecpp.pc          libpcrecpp.pc
452          pcre-config          pcre-config
# Line 387  AC_CONFIG_FILES( Line 456  AC_CONFIG_FILES(
456  )  )
457    
458  # Make the generated script files executable.  # Make the generated script files executable.
459  AC_CONFIG_COMMANDS([script-chmod], [chmod a+x RunTest RunGrepTest pcre-config])  AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
460    
461    # Make sure that pcre_chartables.c is removed in case the method for
462    # creating it was changed by reconfiguration.
463    AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
464    
465  AC_OUTPUT  AC_OUTPUT
466    
# Line 398  cat < Line 471  cat <
471    
472  $PACKAGE-$VERSION configuration summary:  $PACKAGE-$VERSION configuration summary:
473    
474      Install prefix ......... : ${prefix}      Install prefix ........... : ${prefix}
475      C preprocessor ......... : ${CPP}      C preprocessor ........... : ${CPP}
476      C compiler ............. : ${CC}      C compiler ............... : ${CC}
477      C++ preprocessor ....... : ${CXXCPP}      C++ preprocessor ......... : ${CXXCPP}
478      C++ compiler ........... : ${CXX}      C++ compiler ............. : ${CXX}
479      Linker ................. : ${LD}      Linker ................... : ${LD}
480      C preprocessor flags ... : ${CPPFLAGS}      C preprocessor flags ..... : ${CPPFLAGS}
481      C compiler flags ....... : ${CFLAGS}      C compiler flags ......... : ${CFLAGS}
482      C++ compiler flags ..... : ${CXXFLAGS}      C++ compiler flags ....... : ${CXXFLAGS}
483      Linker flags ........... : ${LDFLAGS}      Linker flags ............. : ${LDFLAGS}
484      Extra libraries ........ : ${LIBS}      Extra libraries .......... : ${LIBS}
485    
486      Build C++ library ...... : ${enable_cpp}      Build C++ library ........ : ${enable_cpp}
487      Enable UTF-8 support ... : ${enable_utf8}      Enable UTF-8 support ..... : ${enable_utf8}
488      Unicode properties ..... : ${enable_unicode_properties}      Unicode properties ....... : ${enable_unicode_properties}
489      Newline char/sequence .. : ${enable_newline}      Newline char/sequence .... : ${enable_newline}
490      EBCDIC coding .......... : ${enable_ebcdic}      \R matches only ANYCRLF .. : ${enable_bsr_anycrlf}
491      Use stack recursion .... : ${enable_stack_for_recursion}      EBCDIC coding ............ : ${enable_ebcdic}
492      POSIX mem threshold .... : ${with_posix_malloc_threshold}      Rebuild char tables ...... : ${enable_rebuild_chartables}
493      Internal link size ..... : ${with_link_size}      Use stack recursion ...... : ${enable_stack_for_recursion}
494      Match limit ............ : ${with_match_limit}      POSIX mem threshold ...... : ${with_posix_malloc_threshold}
495      Match limit recursion .. : ${with_match_limit_recursion}      Internal link size ....... : ${with_link_size}
496      Build shared libs ...... : ${enable_shared}      Match limit .............. : ${with_match_limit}
497      Build static libs ...... : ${enable_static}      Match limit recursion .... : ${with_match_limit_recursion}
498        Build shared libs ........ : ${enable_shared}
499        Build static libs ........ : ${enable_static}
500    
501  EOF  EOF
502    

Legend:
Removed from v.98  
changed lines
  Added in v.260

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12