/[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 195 by ph10, Mon Jul 30 13:23:28 2007 UTC revision 345 by ph10, Mon Apr 28 15:10:02 2008 UTC
# Line 7  dnl be defined as -RC2, for example. For Line 7  dnl be defined as -RC2, for example. For
7  dnl empty.  dnl empty.
8    
9  m4_define(pcre_major, [7])  m4_define(pcre_major, [7])
10  m4_define(pcre_minor, [3])  m4_define(pcre_minor, [7])
11  m4_define(pcre_prerelease, [-RC1])  m4_define(pcre_prerelease, [-RC1])
12  m4_define(pcre_date, [2007-07-05])  m4_define(pcre_date, [2008-04-28])
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 60  then Line 60  then
60    fi    fi
61  fi  fi
62    
63    # AC_PROG_CXX will return "g++" even if no c++ compiler is installed.
64    # Check for that case, and just disable c++ code if g++ doesn't run.
65    AC_LANG_PUSH(C++)
66    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")
67    AC_LANG_POP
68    
69  AC_PROG_INSTALL  AC_PROG_INSTALL
70  AC_LIBTOOL_WIN32_DLL  AC_LIBTOOL_WIN32_DLL
# Line 136  AC_ARG_ENABLE(newline-is-any, Line 141  AC_ARG_ENABLE(newline-is-any,
141                ac_pcre_newline=any)                ac_pcre_newline=any)
142  enable_newline="$ac_pcre_newline"  enable_newline="$ac_pcre_newline"
143    
144    # Handle --enable-bsr-anycrlf
145    AC_ARG_ENABLE(bsr-anycrlf,
146                  AS_HELP_STRING([--enable-bsr-anycrlf],
147                                 [\R matches only CR, LF, CRLF by default]),
148                  , enable_bsr_anycrlf=no)
149    
150  # Handle --enable-ebcdic  # Handle --enable-ebcdic
151  AC_ARG_ENABLE(ebcdic,  AC_ARG_ENABLE(ebcdic,
152                AS_HELP_STRING([--enable-ebcdic],                AS_HELP_STRING([--enable-ebcdic],
# Line 148  AC_ARG_ENABLE(stack-for-recursion, Line 159  AC_ARG_ENABLE(stack-for-recursion,
159                               [don't use stack recursion when matching]),                               [don't use stack recursion when matching]),
160                , enable_stack_for_recursion=yes)                , enable_stack_for_recursion=yes)
161    
162    # Handle --enable-pcregrep-libz
163    AC_ARG_ENABLE(pcregrep-libz,
164                  AS_HELP_STRING([--enable-pcregrep-libz],
165                                 [link pcregrep with libz to handle .gz files]),
166                  , enable_pcregrep_libz=no)
167    
168    # Handle --enable-pcregrep-libbz2
169    AC_ARG_ENABLE(pcregrep-libbz2,
170                  AS_HELP_STRING([--enable-pcregrep-libbz2],
171                                 [link pcregrep with libbz2 to handle .bz2 files]),
172                  , enable_pcregrep_libbz2=no)
173    
174    # Handle --enable-pcretest-libreadline
175    AC_ARG_ENABLE(pcretest-libreadline,
176                  AS_HELP_STRING([--enable-pcretest-libreadline],
177                                 [link pcretest with libreadline]),
178                  , enable_pcretest_libreadline=no)
179    
180  # Handle --with-posix-malloc-threshold=NBYTES  # Handle --with-posix-malloc-threshold=NBYTES
181  AC_ARG_WITH(posix-malloc-threshold,  AC_ARG_WITH(posix-malloc-threshold,
182              AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],              AS_HELP_STRING([--with-posix-malloc-threshold=NBYTES],
# Line 231  it to run on SunOS4 and other "close to Line 260  it to run on SunOS4 and other "close to
260    
261  If you are going to build PCRE "by hand" on a system without "configure" you  If you are going to build PCRE "by hand" on a system without "configure" you
262  should copy the distributed config.h.generic to config.h, and then set up the  should copy the distributed config.h.generic to config.h, and then set up the
263  macros the way you need them. Alternatively, you can avoid editing by using -D  macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to
264  on the compiler command line to set the macro values.  all of your compile commands, so that config.h is included at the start of
265    every source.
266    
267    Alternatively, you can avoid editing by using -D on the compiler command line
268    to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H.
269    
270  PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if  PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if
271  HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set  HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set
# Line 249  if test "x$enable_cpp" = "xyes" -a -n "$ Line 282  if test "x$enable_cpp" = "xyes" -a -n "$
282  then  then
283  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
284    
285    # Older versions of pcre defined pcrecpp::no_arg, but in new versions
286    # it's called pcrecpp::RE::no_arg.  For backwards ABI compatibility,
287    # we want to make one an alias for the other.  Different systems do
288    # this in different ways.  Some systems, for instance, can do it via
289    # a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4).
290    OLD_LDFLAGS="$LDFLAGS"
291    for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \
292                "-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do
293      AC_MSG_CHECKING([for alias support in the linker])
294      LDFLAGS="$OLD_LDFLAGS -Wl,$flag"
295      # We try to run the linker with this new ld flag.  If the link fails,
296      # we give up and remove the new flag from LDFLAGS.
297      AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp {
298                                        class RE { static int no_arg; };
299                                        int RE::no_arg;
300                                      }],
301                                     []),
302                     [AC_MSG_RESULT([yes]);
303                      EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag";
304                      break;],
305                     AC_MSG_RESULT([no]))
306    done
307    LDFLAGS="$OLD_LDFLAGS"
308    
309  # 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
310  # (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
311  # 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.
# Line 258  AC_CHECK_HEADERS(bits/type_traits.h, [pc Line 315  AC_CHECK_HEADERS(bits/type_traits.h, [pc
315                                       [pcre_have_bits_type_traits="0"])                                       [pcre_have_bits_type_traits="0"])
316  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
317                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
318    
319  AC_LANG_POP  AC_LANG_POP
320  fi  fi
321  # Using AC_SUBST eliminates the need to include config.h in a public .h file  # Using AC_SUBST eliminates the need to include config.h in a public .h file
# Line 273  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, Line 331  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES,
331  AC_C_CONST  AC_C_CONST
332  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
333    
334  AC_CHECK_TYPES([long long],  pcre_have_strotolonglong=0
335                 [pcre_have_long_long="1"],  AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break])
336                 [pcre_have_long_long="0"])  # If we can't convert a string to a long long, pretend we don't even
337  AC_CHECK_TYPES([unsigned long long],  # have a long long.
338                 [pcre_have_ulong_long="1"],  if test $pcre_have_strotolonglong = "0"; then
339                 [pcre_have_ulong_long="0"])     pcre_have_long_long="0"
340       pcre_have_ulong_long="0"
341    else
342      AC_CHECK_TYPES([long long],
343                     [pcre_have_long_long="1"],
344                     [pcre_have_long_long="0"])
345      AC_CHECK_TYPES([unsigned long long],
346                     [pcre_have_ulong_long="1"],
347                     [pcre_have_ulong_long="0"])
348    fi
349  AC_SUBST(pcre_have_long_long)  AC_SUBST(pcre_have_long_long)
350  AC_SUBST(pcre_have_ulong_long)  AC_SUBST(pcre_have_ulong_long)
351    
352  # Checks for library functions.  # Checks for library functions.
353    
354  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)  AC_CHECK_FUNCS(bcopy memmove strerror)
355    
356    # Check for the availability of libz (aka zlib)
357    
358    AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
359    AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
360    
361    # Check for the availability of libbz2
362    
363    AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
364    AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
365    
366    # Check for the availabiity of libreadline
367    
368    AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1])
369    AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1])
370    AC_CHECK_LIB([readline], [readline], [HAVE_LIB_READLINE=1])
371    
372  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
373  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
# Line 319  if test "$enable_stack_for_recursion" = Line 402  if test "$enable_stack_for_recursion" =
402      (use --disable-stack-for-recursion).])      (use --disable-stack-for-recursion).])
403  fi  fi
404    
405    if test "$enable_pcregrep_libz" = "yes"; then
406      AC_DEFINE([SUPPORT_LIBZ], [], [
407        Define to allow pcregrep to be linked with libz, so that it is
408        able to handle .gz files.])
409    fi
410    
411    if test "$enable_pcregrep_libbz2" = "yes"; then
412      AC_DEFINE([SUPPORT_LIBBZ2], [], [
413        Define to allow pcregrep to be linked with libbz2, so that it is
414        able to handle .bz2 files.])
415    fi
416    
417    if test "$enable_pcretest_libreadline" = "yes"; then
418      AC_DEFINE([SUPPORT_LIBREADLINE], [], [
419        Define to allow pcretest to be linked with libreadline.])
420    fi
421    
422  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
423    The value of NEWLINE determines the newline character sequence. On    The value of NEWLINE determines the newline character sequence. On
424    Unix-like systems, "configure" can be used to override the default,    systems that support it, "configure" can be used to override the
425    which is 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF),    default, which is 10. The possible values are 10 (LF), 13 (CR),
426    -1 (ANY), or -2 (ANYCRLF).])    3338 (CRLF), -1 (ANY), or -2 (ANYCRLF).])
427    
428    if test "$enable_bsr_anycrlf" = "yes"; then
429      AC_DEFINE([BSR_ANYCRLF], [], [
430        By default, the \R escape sequence matches any Unicode line ending
431        character or sequence of characters. If BSR_ANYCRLF is defined, this is
432        changed so that backslash-R matches only CR, LF, or CRLF. The build-
433        time default can be overridden by the user of PCRE at runtime. On
434        systems that support it, "configure" can be used to override the
435        default.])
436    fi
437    
438  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [  AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
439    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 376  AC_DEFINE([MAX_NAME_COUNT], [10000], [ Line 486  AC_DEFINE([MAX_NAME_COUNT], [10000], [
486    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
487    against integer overflow caused by enormously large patterns.])    against integer overflow caused by enormously large patterns.])
488    
 AC_DEFINE([MAX_DUPLENGTH], [30000], [  
   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.])  
   
489  AH_VERBATIM([PCRE_EXP_DEFN], [  AH_VERBATIM([PCRE_EXP_DEFN], [
490  /* 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
491     Win32, and it needs some magic to be inserted before the definition     Win32, and it needs some magic to be inserted before the definition
# Line 415  esac Line 520  esac
520  # The extra LDFLAGS for each particular library  # The extra LDFLAGS for each particular library
521  # (Note: The libpcre*_version bits are m4 variables, assigned above)  # (Note: The libpcre*_version bits are m4 variables, assigned above)
522    
523  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"  EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
524                           $NO_UNDEFINED -version-info libpcre_version"
525    
526  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"  EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
527                                $NO_UNDEFINED -version-info libpcreposix_version"
528    
529  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"  EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
530                              $NO_UNDEFINED -version-info libpcrecpp_version \
531                              $EXPORT_ALL_SYMBOLS"
532    
533  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
534  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
# Line 429  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS) Line 538  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
538  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
539  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
540    
541    # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is
542    # specified, the relevant library is available. If so, add it to LIBS.
543    
544    if test "$enable_pcregrep_libz" = "yes"; then
545      if test "$HAVE_ZLIB_H" != "1"; then
546        echo "** Cannot --enable-pcregrep-libz because zlib.h was not found"
547        exit 1
548      fi
549      if test "$HAVE_LIBZ" != "1"; then
550        echo "** Cannot --enable-pcregrep-libz because libz was not found"
551        exit 1
552      fi
553      if test "$LIBS" = ""; then LIBS=-lz; else LIBS="$LIBS -lz"; fi
554    fi
555    
556    if test "$enable_pcregrep_libbz2" = "yes"; then
557      if test "$HAVE_BZLIB_H" != "1"; then
558        echo "** Cannot --enable-pcregrep-libbz2 because bzlib.h was not found"
559        exit 1
560      fi
561      if test "$HAVE_LIBBZ2" != "1"; then
562        echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"
563        exit 1
564      fi
565      if test "$LIBS" = ""; then LIBS=-lbz2; else LIBS="$LIBS -lbz2"; fi
566    fi
567    
568    # Similarly for --enable-pcretest-readline
569    
570    if test "$enable_pcretest_libreadline" = "yes"; then
571      if test "$HAVE_READLINE_H" != "1"; then
572        echo "** Cannot --enable-pcretest-readline because readline/readline.h was not found."
573        exit 1
574      fi
575      if test "$HAVE_HISTORY_H" != "1"; then
576        echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."
577        exit 1
578      fi
579      if test "$LIBS" = ""; then LIBS=-lreadline; else LIBS="$LIBS -lreadline"; fi
580    fi
581    
582  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
583  AC_CONFIG_FILES(  AC_CONFIG_FILES(
584          Makefile          Makefile
# Line 451  AC_OUTPUT Line 601  AC_OUTPUT
601    
602  # Print out a nice little message after configure is run displaying your  # Print out a nice little message after configure is run displaying your
603  # chosen options.  # chosen options.
604  #  
605  cat <<EOF  cat <<EOF
606    
607  $PACKAGE-$VERSION configuration summary:  $PACKAGE-$VERSION configuration summary:
608    
609      Install prefix ......... : ${prefix}      Install prefix .................. : ${prefix}
610      C preprocessor ......... : ${CPP}      C preprocessor .................. : ${CPP}
611      C compiler ............. : ${CC}      C compiler ...................... : ${CC}
612      C++ preprocessor ....... : ${CXXCPP}      C++ preprocessor ................ : ${CXXCPP}
613      C++ compiler ........... : ${CXX}      C++ compiler .................... : ${CXX}
614      Linker ................. : ${LD}      Linker .......................... : ${LD}
615      C preprocessor flags ... : ${CPPFLAGS}      C preprocessor flags ............ : ${CPPFLAGS}
616      C compiler flags ....... : ${CFLAGS}      C compiler flags ................ : ${CFLAGS}
617      C++ compiler flags ..... : ${CXXFLAGS}      C++ compiler flags .............. : ${CXXFLAGS}
618      Linker flags ........... : ${LDFLAGS}      Linker flags .................... : ${LDFLAGS}
619      Extra libraries ........ : ${LIBS}      Extra libraries ................. : ${LIBS}
620    
621      Build C++ library ...... : ${enable_cpp}      Build C++ library ............... : ${enable_cpp}
622      Enable UTF-8 support ... : ${enable_utf8}      Enable UTF-8 support ............ : ${enable_utf8}
623      Unicode properties ..... : ${enable_unicode_properties}      Unicode properties .............. : ${enable_unicode_properties}
624      Newline char/sequence .. : ${enable_newline}      Newline char/sequence ........... : ${enable_newline}
625      EBCDIC coding .......... : ${enable_ebcdic}      \R matches only ANYCRLF ......... : ${enable_bsr_anycrlf}
626      Rebuild char tables .... : ${enable_rebuild_chartables}      EBCDIC coding ................... : ${enable_ebcdic}
627      Use stack recursion .... : ${enable_stack_for_recursion}      Rebuild char tables ............. : ${enable_rebuild_chartables}
628      POSIX mem threshold .... : ${with_posix_malloc_threshold}      Use stack recursion ............. : ${enable_stack_for_recursion}
629      Internal link size ..... : ${with_link_size}      POSIX mem threshold ............. : ${with_posix_malloc_threshold}
630      Match limit ............ : ${with_match_limit}      Internal link size .............. : ${with_link_size}
631      Match limit recursion .. : ${with_match_limit_recursion}      Match limit ..................... : ${with_match_limit}
632      Build shared libs ...... : ${enable_shared}      Match limit recursion ........... : ${with_match_limit_recursion}
633      Build static libs ...... : ${enable_static}      Build shared libs ............... : ${enable_shared}
634        Build static libs ............... : ${enable_static}
635        Link pcregrep with libz ......... : ${enable_pcregrep_libz}
636        Link pcregrep with libbz2 ....... : ${enable_pcregrep_libbz2}
637        Link pcretest with libreadline .. : ${enable_pcretest_libreadline}
638    
639  EOF  EOF
640    

Legend:
Removed from v.195  
changed lines
  Added in v.345

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12