/[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 247 by ph10, Mon Sep 17 09:38:32 2007 UTC revision 392 by ph10, Tue Mar 17 21:30:30 2009 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, [4])  m4_define(pcre_minor, [9])
11  m4_define(pcre_prerelease, [-RC3])  m4_define(pcre_prerelease, [-RC1])
12  m4_define(pcre_date, [2007-09-17])  m4_define(pcre_date, [2009-02-27])
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 97  AC_ARG_ENABLE(rebuild-chartables, Line 102  AC_ARG_ENABLE(rebuild-chartables,
102  # Handle --enable-utf8 (disabled by default)  # Handle --enable-utf8 (disabled by default)
103  AC_ARG_ENABLE(utf8,  AC_ARG_ENABLE(utf8,
104                AS_HELP_STRING([--enable-utf8],                AS_HELP_STRING([--enable-utf8],
105                               [enable UTF-8 support]),                               [enable UTF-8 support (incompatible with --enable-ebcdic)]),
106                , enable_utf8=unset)                , enable_utf8=unset)
107    
108  # Handle --enable-unicode-properties  # Handle --enable-unicode-properties
# Line 145  AC_ARG_ENABLE(bsr-anycrlf, Line 150  AC_ARG_ENABLE(bsr-anycrlf,
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],
153                               [assume EBCDIC coding rather than ASCII; use this only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),                               [assume EBCDIC coding rather than ASCII; incompatible with --enable-utf8; use only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),
154                , enable_ebcdic=no)                , enable_ebcdic=no)
155    
156  # Handle --disable-stack-for-recursion  # Handle --disable-stack-for-recursion
# Line 154  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 203  then Line 226  then
226  fi  fi
227    
228  # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.  # Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
229    # Also check that UTF-8 support is not requested, because PCRE cannot handle
230    # EBCDIC and UTF-8 in the same build. To do so it would need to use different
231    # character constants depending on the mode.
232  #  #
233  if test "x$enable_ebcdic" = "xyes"  if test "x$enable_ebcdic" = "xyes"
234  then  then
235    enable_rebuild_chartables=yes    enable_rebuild_chartables=yes
236      if test "x$enable_utf8" = "xyes"
237      then
238        AC_MSG_ERROR([support for EBCDIC and UTF-8 cannot be enabled at the same time])
239      fi
240  fi  fi
241    
242  # Convert the newline identifier into the appropriate integer value.  # Convert the newline identifier into the appropriate integer value.
# Line 259  if test "x$enable_cpp" = "xyes" -a -n "$ Line 289  if test "x$enable_cpp" = "xyes" -a -n "$
289  then  then
290  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
291    
292    # Older versions of pcre defined pcrecpp::no_arg, but in new versions
293    # it's called pcrecpp::RE::no_arg.  For backwards ABI compatibility,
294    # we want to make one an alias for the other.  Different systems do
295    # this in different ways.  Some systems, for instance, can do it via
296    # a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4).
297    OLD_LDFLAGS="$LDFLAGS"
298    for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \
299                "-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do
300      AC_MSG_CHECKING([for alias support in the linker])
301      LDFLAGS="$OLD_LDFLAGS -Wl,$flag"
302      # We try to run the linker with this new ld flag.  If the link fails,
303      # we give up and remove the new flag from LDFLAGS.
304      AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp {
305                                        class RE { static int no_arg; };
306                                        int RE::no_arg;
307                                      }],
308                                     []),
309                     [AC_MSG_RESULT([yes]);
310                      EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag";
311                      break;],
312                     AC_MSG_RESULT([no]))
313    done
314    LDFLAGS="$OLD_LDFLAGS"
315    
316  # 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
317  # (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
318  # 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 268  AC_CHECK_HEADERS(bits/type_traits.h, [pc Line 322  AC_CHECK_HEADERS(bits/type_traits.h, [pc
322                                       [pcre_have_bits_type_traits="0"])                                       [pcre_have_bits_type_traits="0"])
323  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
324                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
325    
326  AC_LANG_POP  AC_LANG_POP
327  fi  fi
328  # 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 283  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, Line 338  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES,
338  AC_C_CONST  AC_C_CONST
339  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
340    
341  AC_CHECK_TYPES([long long],  pcre_have_strotolonglong=0
342                 [pcre_have_long_long="1"],  AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break])
343                 [pcre_have_long_long="0"])  # If we can't convert a string to a long long, pretend we don't even
344  AC_CHECK_TYPES([unsigned long long],  # have a long long.
345                 [pcre_have_ulong_long="1"],  if test $pcre_have_strotolonglong = "0"; then
346                 [pcre_have_ulong_long="0"])     pcre_have_long_long="0"
347       pcre_have_ulong_long="0"
348    else
349      AC_CHECK_TYPES([long long],
350                     [pcre_have_long_long="1"],
351                     [pcre_have_long_long="0"])
352      AC_CHECK_TYPES([unsigned long long],
353                     [pcre_have_ulong_long="1"],
354                     [pcre_have_ulong_long="0"])
355    fi
356  AC_SUBST(pcre_have_long_long)  AC_SUBST(pcre_have_long_long)
357  AC_SUBST(pcre_have_ulong_long)  AC_SUBST(pcre_have_ulong_long)
358    
359  # Checks for library functions.  # Checks for library functions.
360    
361  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll)  AC_CHECK_FUNCS(bcopy memmove strerror)
362    
363    # Check for the availability of libz (aka zlib)
364    
365    AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
366    AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
367    
368    # Check for the availability of libbz2
369    
370    AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
371    AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
372    
373    # Check for the availabiity of libreadline
374    
375    AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1])
376    AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1])
377    AC_CHECK_LIB([readline], [readline], [HAVE_LIB_READLINE=1])
378    
379  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
380  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
# Line 308  fi Line 388  fi
388    
389  if test "$enable_utf8" = "yes"; then  if test "$enable_utf8" = "yes"; then
390    AC_DEFINE([SUPPORT_UTF8], [], [    AC_DEFINE([SUPPORT_UTF8], [], [
391      Define to enable support for the UTF-8 Unicode encoding.])      Define to enable support for the UTF-8 Unicode encoding. This will
392        work even in an EBCDIC environment, but it is incompatible with
393        the EBCDIC macro. That is, PCRE can support *either* EBCDIC code
394        *or* ASCII/UTF-8, but not both at once.])
395  fi  fi
396    
397  if test "$enable_unicode_properties" = "yes"; then  if test "$enable_unicode_properties" = "yes"; then
# Line 329  if test "$enable_stack_for_recursion" = Line 412  if test "$enable_stack_for_recursion" =
412      (use --disable-stack-for-recursion).])      (use --disable-stack-for-recursion).])
413  fi  fi
414    
415    if test "$enable_pcregrep_libz" = "yes"; then
416      AC_DEFINE([SUPPORT_LIBZ], [], [
417        Define to allow pcregrep to be linked with libz, so that it is
418        able to handle .gz files.])
419    fi
420    
421    if test "$enable_pcregrep_libbz2" = "yes"; then
422      AC_DEFINE([SUPPORT_LIBBZ2], [], [
423        Define to allow pcregrep to be linked with libbz2, so that it is
424        able to handle .bz2 files.])
425    fi
426    
427    if test "$enable_pcretest_libreadline" = "yes"; then
428      AC_DEFINE([SUPPORT_LIBREADLINE], [], [
429        Define to allow pcretest to be linked with libreadline.])
430    fi
431    
432  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [  AC_DEFINE_UNQUOTED([NEWLINE], [$ac_pcre_newline_value], [
433    The value of NEWLINE determines the newline character sequence. On    The value of NEWLINE determines the newline character sequence. On
434    systems that support it, "configure" can be used to override the    systems that support it, "configure" can be used to override the
# Line 412  if test "$enable_ebcdic" = "yes"; then Line 512  if test "$enable_ebcdic" = "yes"; then
512    AC_DEFINE_UNQUOTED([EBCDIC], [], [    AC_DEFINE_UNQUOTED([EBCDIC], [], [
513      If you are compiling for a system that uses EBCDIC instead of ASCII      If you are compiling for a system that uses EBCDIC instead of ASCII
514      character codes, define this macro as 1. On systems that can use      character codes, define this macro as 1. On systems that can use
515      "configure", this can be done via --enable-ebcdic.])      "configure", this can be done via --enable-ebcdic. PCRE will then
516        assume that all input strings are in EBCDIC. If you do not define
517        this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.
518        It is not possible to build a version of PCRE that supports both
519        EBCDIC and UTF-8.])
520  fi  fi
521    
522  # Platform specific issues  # Platform specific issues
# Line 430  esac Line 534  esac
534  # The extra LDFLAGS for each particular library  # The extra LDFLAGS for each particular library
535  # (Note: The libpcre*_version bits are m4 variables, assigned above)  # (Note: The libpcre*_version bits are m4 variables, assigned above)
536    
537  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"  EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
538                           $NO_UNDEFINED -version-info libpcre_version"
539    
540  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"  EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
541                                $NO_UNDEFINED -version-info libpcreposix_version"
542    
543  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"  EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
544                              $NO_UNDEFINED -version-info libpcrecpp_version \
545                              $EXPORT_ALL_SYMBOLS"
546    
547  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
548  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
# Line 444  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS) Line 552  AC_SUBST(EXTRA_LIBPCRECPP_LDFLAGS)
552  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp --enable-unicode-properties"
553  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
554    
555    # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is
556    # specified, the relevant library is available.
557    
558    if test "$enable_pcregrep_libz" = "yes"; then
559      if test "$HAVE_ZLIB_H" != "1"; then
560        echo "** Cannot --enable-pcregrep-libz because zlib.h was not found"
561        exit 1
562      fi
563      if test "$HAVE_LIBZ" != "1"; then
564        echo "** Cannot --enable-pcregrep-libz because libz was not found"
565        exit 1
566      fi
567      LIBZ="-lz"
568    fi
569    AC_SUBST(LIBZ)
570    
571    if test "$enable_pcregrep_libbz2" = "yes"; then
572      if test "$HAVE_BZLIB_H" != "1"; then
573        echo "** Cannot --enable-pcregrep-libbz2 because bzlib.h was not found"
574        exit 1
575      fi
576      if test "$HAVE_LIBBZ2" != "1"; then
577        echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"
578        exit 1
579      fi
580      LIBBZ2="-lbz2"
581    fi
582    AC_SUBST(LIBBZ2)
583    
584    # Similarly for --enable-pcretest-readline
585    
586    if test "$enable_pcretest_libreadline" = "yes"; then
587      if test "$HAVE_READLINE_H" != "1"; then
588        echo "** Cannot --enable-pcretest-readline because readline/readline.h was not found."
589        exit 1
590      fi
591      if test "$HAVE_HISTORY_H" != "1"; then
592        echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."
593        exit 1
594      fi
595      LIBREADLINE="-lreadline"
596    fi
597    AC_SUBST(LIBREADLINE)
598    
599  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
600  AC_CONFIG_FILES(  AC_CONFIG_FILES(
601          Makefile          Makefile
# Line 466  AC_OUTPUT Line 618  AC_OUTPUT
618    
619  # Print out a nice little message after configure is run displaying your  # Print out a nice little message after configure is run displaying your
620  # chosen options.  # chosen options.
621  #  
622  cat <<EOF  cat <<EOF
623    
624  $PACKAGE-$VERSION configuration summary:  $PACKAGE-$VERSION configuration summary:
625    
626      Install prefix ........... : ${prefix}      Install prefix .................. : ${prefix}
627      C preprocessor ........... : ${CPP}      C preprocessor .................. : ${CPP}
628      C compiler ............... : ${CC}      C compiler ...................... : ${CC}
629      C++ preprocessor ......... : ${CXXCPP}      C++ preprocessor ................ : ${CXXCPP}
630      C++ compiler ............. : ${CXX}      C++ compiler .................... : ${CXX}
631      Linker ................... : ${LD}      Linker .......................... : ${LD}
632      C preprocessor flags ..... : ${CPPFLAGS}      C preprocessor flags ............ : ${CPPFLAGS}
633      C compiler flags ......... : ${CFLAGS}      C compiler flags ................ : ${CFLAGS}
634      C++ compiler flags ....... : ${CXXFLAGS}      C++ compiler flags .............. : ${CXXFLAGS}
635      Linker flags ............. : ${LDFLAGS}      Linker flags .................... : ${LDFLAGS}
636      Extra libraries .......... : ${LIBS}      Extra libraries ................. : ${LIBS}
637    
638      Build C++ library ........ : ${enable_cpp}      Build C++ library ............... : ${enable_cpp}
639      Enable UTF-8 support ..... : ${enable_utf8}      Enable UTF-8 support ............ : ${enable_utf8}
640      Unicode properties ....... : ${enable_unicode_properties}      Unicode properties .............. : ${enable_unicode_properties}
641      Newline char/sequence .... : ${enable_newline}      Newline char/sequence ........... : ${enable_newline}
642      \R matches only ANYCRLF .. : ${enable_bsr_anycrlf}      \R matches only ANYCRLF ......... : ${enable_bsr_anycrlf}
643      EBCDIC coding ............ : ${enable_ebcdic}      EBCDIC coding ................... : ${enable_ebcdic}
644      Rebuild char tables ...... : ${enable_rebuild_chartables}      Rebuild char tables ............. : ${enable_rebuild_chartables}
645      Use stack recursion ...... : ${enable_stack_for_recursion}      Use stack recursion ............. : ${enable_stack_for_recursion}
646      POSIX mem threshold ...... : ${with_posix_malloc_threshold}      POSIX mem threshold ............. : ${with_posix_malloc_threshold}
647      Internal link size ....... : ${with_link_size}      Internal link size .............. : ${with_link_size}
648      Match limit .............. : ${with_match_limit}      Match limit ..................... : ${with_match_limit}
649      Match limit recursion .... : ${with_match_limit_recursion}      Match limit recursion ........... : ${with_match_limit_recursion}
650      Build shared libs ........ : ${enable_shared}      Build shared libs ............... : ${enable_shared}
651      Build static libs ........ : ${enable_static}      Build static libs ............... : ${enable_static}
652        Link pcregrep with libz ......... : ${enable_pcregrep_libz}
653        Link pcregrep with libbz2 ....... : ${enable_pcregrep_libbz2}
654        Link pcretest with libreadline .. : ${enable_pcretest_libreadline}
655    
656  EOF  EOF
657    

Legend:
Removed from v.247  
changed lines
  Added in v.392

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12