/[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 298 by ph10, Thu Jan 10 17:09:12 2008 UTC revision 479 by ph10, Sun Jan 3 16:31:39 2010 UTC
# Line 6  dnl PCRE_PRERELEASE feature is for ident Line 6  dnl PCRE_PRERELEASE feature is for ident
6  dnl be defined as -RC2, for example. For real releases, it should be defined  dnl be defined as -RC2, for example. For real releases, it should be defined
7  dnl empty.  dnl empty.
8    
9  m4_define(pcre_major, [7])  m4_define(pcre_major, [8])
10  m4_define(pcre_minor, [5])  m4_define(pcre_minor, [01])
11  m4_define(pcre_prerelease, [])  m4_define(pcre_prerelease, [-RC1])
12  m4_define(pcre_date, [2008-01-10])  m4_define(pcre_date, [2010-01-02])
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 22  AC_CONFIG_SRCDIR([pcre.h.in]) Line 22  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    # This was added at the suggestion of libtoolize (03-Jan-10)
26    AC_CONFIG_MACRO_DIR([m4])
27    
28  # The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just  # The default CFLAGS and CXXFLAGS in Autoconf are "-g -O2" for gcc and just
29  # "-g" for any other compiler. There doesn't seem to be a standard way of  # "-g" for any other compiler. There doesn't seem to be a standard way of
30  # getting rid of the -g (which I don't think is needed for a production  # getting rid of the -g (which I don't think is needed for a production
# Line 60  then Line 63  then
63    fi    fi
64  fi  fi
65    
66    # AC_PROG_CXX will return "g++" even if no c++ compiler is installed.
67    # Check for that case, and just disable c++ code if g++ doesn't run.
68    AC_LANG_PUSH(C++)
69    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")
70    AC_LANG_POP
71    
72    # Check for a 64-bit integer type
73    AC_TYPE_INT64_T
74    
75  AC_PROG_INSTALL  AC_PROG_INSTALL
76  AC_LIBTOOL_WIN32_DLL  AC_LIBTOOL_WIN32_DLL
# Line 97  AC_ARG_ENABLE(rebuild-chartables, Line 108  AC_ARG_ENABLE(rebuild-chartables,
108  # Handle --enable-utf8 (disabled by default)  # Handle --enable-utf8 (disabled by default)
109  AC_ARG_ENABLE(utf8,  AC_ARG_ENABLE(utf8,
110                AS_HELP_STRING([--enable-utf8],                AS_HELP_STRING([--enable-utf8],
111                               [enable UTF-8 support]),                               [enable UTF-8 support (incompatible with --enable-ebcdic)]),
112                , enable_utf8=unset)                , enable_utf8=unset)
113    
114  # Handle --enable-unicode-properties  # Handle --enable-unicode-properties
# Line 145  AC_ARG_ENABLE(bsr-anycrlf, Line 156  AC_ARG_ENABLE(bsr-anycrlf,
156  # Handle --enable-ebcdic  # Handle --enable-ebcdic
157  AC_ARG_ENABLE(ebcdic,  AC_ARG_ENABLE(ebcdic,
158                AS_HELP_STRING([--enable-ebcdic],                AS_HELP_STRING([--enable-ebcdic],
159                               [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]),
160                , enable_ebcdic=no)                , enable_ebcdic=no)
161    
162  # Handle --disable-stack-for-recursion  # Handle --disable-stack-for-recursion
# Line 221  then Line 232  then
232  fi  fi
233    
234  # 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.
235    # Also check that UTF-8 support is not requested, because PCRE cannot handle
236    # EBCDIC and UTF-8 in the same build. To do so it would need to use different
237    # character constants depending on the mode.
238  #  #
239  if test "x$enable_ebcdic" = "xyes"  if test "x$enable_ebcdic" = "xyes"
240  then  then
241    enable_rebuild_chartables=yes    enable_rebuild_chartables=yes
242      if test "x$enable_utf8" = "xyes"
243      then
244        AC_MSG_ERROR([support for EBCDIC and UTF-8 cannot be enabled at the same time])
245      fi
246  fi  fi
247    
248  # Convert the newline identifier into the appropriate integer value.  # Convert the newline identifier into the appropriate integer value.
# Line 277  if test "x$enable_cpp" = "xyes" -a -n "$ Line 295  if test "x$enable_cpp" = "xyes" -a -n "$
295  then  then
296  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
297    
298    # Older versions of pcre defined pcrecpp::no_arg, but in new versions
299    # it's called pcrecpp::RE::no_arg.  For backwards ABI compatibility,
300    # we want to make one an alias for the other.  Different systems do
301    # this in different ways.  Some systems, for instance, can do it via
302    # a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4).
303    OLD_LDFLAGS="$LDFLAGS"
304    for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \
305                "-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do
306      AC_MSG_CHECKING([for alias support in the linker])
307      LDFLAGS="$OLD_LDFLAGS -Wl,$flag"
308      # We try to run the linker with this new ld flag.  If the link fails,
309      # we give up and remove the new flag from LDFLAGS.
310      AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp {
311                                        class RE { static int no_arg; };
312                                        int RE::no_arg;
313                                      }],
314                                     []),
315                     [AC_MSG_RESULT([yes]);
316                      EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag";
317                      break;],
318                     AC_MSG_RESULT([no]))
319    done
320    LDFLAGS="$OLD_LDFLAGS"
321    
322  # 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
323  # (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
324  # 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 286  AC_CHECK_HEADERS(bits/type_traits.h, [pc Line 328  AC_CHECK_HEADERS(bits/type_traits.h, [pc
328                                       [pcre_have_bits_type_traits="0"])                                       [pcre_have_bits_type_traits="0"])
329  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
330                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
331    
332  AC_LANG_POP  AC_LANG_POP
333  fi  fi
334  # 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 301  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, Line 344  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES,
344  AC_C_CONST  AC_C_CONST
345  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
346    
347  AC_CHECK_TYPES([long long],  pcre_have_strotolonglong=0
348                 [pcre_have_long_long="1"],  AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break])
349                 [pcre_have_long_long="0"])  # If we can't convert a string to a long long, pretend we don't even
350  AC_CHECK_TYPES([unsigned long long],  # have a long long.
351                 [pcre_have_ulong_long="1"],  if test $pcre_have_strotolonglong = "0"; then
352                 [pcre_have_ulong_long="0"])     pcre_have_long_long="0"
353       pcre_have_ulong_long="0"
354    else
355      AC_CHECK_TYPES([long long],
356                     [pcre_have_long_long="1"],
357                     [pcre_have_long_long="0"])
358      AC_CHECK_TYPES([unsigned long long],
359                     [pcre_have_ulong_long="1"],
360                     [pcre_have_ulong_long="0"])
361    fi
362  AC_SUBST(pcre_have_long_long)  AC_SUBST(pcre_have_long_long)
363  AC_SUBST(pcre_have_ulong_long)  AC_SUBST(pcre_have_ulong_long)
364    
365  # Checks for library functions.  # Checks for library functions.
366    
367  AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll _strtoi64)  AC_CHECK_FUNCS(bcopy memmove strerror)
368    
369  # Check for the availability of libz (aka zlib)  # Check for the availability of libz (aka zlib)
370    
371  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
372  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
373    
374  # Check for the availability of libbz2  # Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
375    # as for libz. However, this had the following problem, diagnosed and fixed by
376    # a user:
377    #
378    #   - libbz2 uses the Pascal calling convention (WINAPI) for the functions
379    #     under Win32.
380    #   - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
381    #     therefore missing the function definition.
382    #   - The compiler thus generates a "C" signature for the test function.
383    #   - The linker fails to find the "C" function.
384    #   - PCRE fails to configure if asked to do so against libbz2.
385    #
386    # Solution:
387    #
388    #   - Replace the AC_CHECK_LIB test with a custom test.
389    
390  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
391  AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])  # Original test
392    # AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
393    #
394    # Custom test follows
395    
396    AC_MSG_CHECKING([for libbz2])
397    OLD_LIBS="$LIBS"
398    LIBS="$LIBS -lbz2"
399    AC_LINK_IFELSE( AC_LANG_PROGRAM([[
400    #ifdef HAVE_BZLIB_H
401    #include <bzlib.h>
402    #endif]],
403    [[return (int)BZ2_bzopen("conftest", "rb");]]),
404    [AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
405    AC_MSG_RESULT([no]))
406    LIBS="$OLD_LIBS"
407    
408  # Check for the availabiity of libreadline  # Check for the availabiity of libreadline
409    
# Line 333  AC_CHECK_LIB([readline], [readline], [HA Line 414  AC_CHECK_LIB([readline], [readline], [HA
414  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
415  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
416    
417    PCRE_STATIC_CFLAG=""
418  if test "x$enable_shared" = "xno" ; then  if test "x$enable_shared" = "xno" ; then
419    AC_DEFINE([PCRE_STATIC], [1], [    AC_DEFINE([PCRE_STATIC], [1], [
420      Define if linking statically (TODO: make nice with Libtool)])      Define if linking statically (TODO: make nice with Libtool)])
421      PCRE_STATIC_CFLAG="-DPCRE_STATIC"
422  fi  fi
423    AC_SUBST(PCRE_STATIC_CFLAG)
424    
425  # Here is where pcre specific defines are handled  # Here is where pcre specific defines are handled
426    
427  if test "$enable_utf8" = "yes"; then  if test "$enable_utf8" = "yes"; then
428    AC_DEFINE([SUPPORT_UTF8], [], [    AC_DEFINE([SUPPORT_UTF8], [], [
429      Define to enable support for the UTF-8 Unicode encoding.])      Define to enable support for the UTF-8 Unicode encoding. This will
430        work even in an EBCDIC environment, but it is incompatible with
431        the EBCDIC macro. That is, PCRE can support *either* EBCDIC code
432        *or* ASCII/UTF-8, but not both at once.])
433  fi  fi
434    
435  if test "$enable_unicode_properties" = "yes"; then  if test "$enable_unicode_properties" = "yes"; then
# Line 463  if test "$enable_ebcdic" = "yes"; then Line 550  if test "$enable_ebcdic" = "yes"; then
550    AC_DEFINE_UNQUOTED([EBCDIC], [], [    AC_DEFINE_UNQUOTED([EBCDIC], [], [
551      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
552      character codes, define this macro as 1. On systems that can use      character codes, define this macro as 1. On systems that can use
553      "configure", this can be done via --enable-ebcdic.])      "configure", this can be done via --enable-ebcdic. PCRE will then
554        assume that all input strings are in EBCDIC. If you do not define
555        this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.
556        It is not possible to build a version of PCRE that supports both
557        EBCDIC and UTF-8.])
558  fi  fi
559    
560  # Platform specific issues  # Platform specific issues
# Line 481  esac Line 572  esac
572  # The extra LDFLAGS for each particular library  # The extra LDFLAGS for each particular library
573  # (Note: The libpcre*_version bits are m4 variables, assigned above)  # (Note: The libpcre*_version bits are m4 variables, assigned above)
574    
575  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"  EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
576                           $NO_UNDEFINED -version-info libpcre_version"
577    
578  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"  EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
579                                $NO_UNDEFINED -version-info libpcreposix_version"
580    
581  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"  EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
582                              $NO_UNDEFINED -version-info libpcrecpp_version \
583                              $EXPORT_ALL_SYMBOLS"
584    
585  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
586  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
# Line 496  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp Line 591  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp
591  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
592    
593  # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is  # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is
594  # specified, the relevant library is available. If so, add it to LIBS.  # specified, the relevant library is available.
595    
596  if test "$enable_pcregrep_libz" = "yes"; then  if test "$enable_pcregrep_libz" = "yes"; then
597    if test "$HAVE_ZLIB_H" != "1"; then    if test "$HAVE_ZLIB_H" != "1"; then
# Line 507  if test "$enable_pcregrep_libz" = "yes"; Line 602  if test "$enable_pcregrep_libz" = "yes";
602      echo "** Cannot --enable-pcregrep-libz because libz was not found"      echo "** Cannot --enable-pcregrep-libz because libz was not found"
603      exit 1      exit 1
604    fi    fi
605    if test "$LIBS" = ""; then LIBS=-lz; else LIBS="$LIBS -lz"; fi    LIBZ="-lz"
606  fi  fi
607    AC_SUBST(LIBZ)
608    
609  if test "$enable_pcregrep_libbz2" = "yes"; then  if test "$enable_pcregrep_libbz2" = "yes"; then
610    if test "$HAVE_BZLIB_H" != "1"; then    if test "$HAVE_BZLIB_H" != "1"; then
# Line 519  if test "$enable_pcregrep_libbz2" = "yes Line 615  if test "$enable_pcregrep_libbz2" = "yes
615      echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"      echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"
616      exit 1      exit 1
617    fi    fi
618    if test "$LIBS" = ""; then LIBS=-lbz2; else LIBS="$LIBS -lbz2"; fi    LIBBZ2="-lbz2"
619  fi  fi
620    AC_SUBST(LIBBZ2)
621    
622  # Similarly for --enable-pcretest-readline  # Similarly for --enable-pcretest-readline
623    
# Line 533  if test "$enable_pcretest_libreadline" = Line 630  if test "$enable_pcretest_libreadline" =
630      echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."      echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."
631      exit 1      exit 1
632    fi    fi
633    if test "$LIBS" = ""; then LIBS=-lreadline; else LIBS="$LIBS -lreadline"; fi    LIBREADLINE="-lreadline"
634  fi  fi
635    AC_SUBST(LIBREADLINE)
636    
637  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
638  AC_CONFIG_FILES(  AC_CONFIG_FILES(
639          Makefile          Makefile
640          libpcre.pc          libpcre.pc
641            libpcreposix.pc
642          libpcrecpp.pc          libpcrecpp.pc
643          pcre-config          pcre-config
644          pcre.h          pcre.h

Legend:
Removed from v.298  
changed lines
  Added in v.479

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12