/[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 349 by ph10, Wed Jul 2 18:42:11 2008 UTC revision 481 by ph10, Sun Jan 3 17:45:53 2010 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  dnl NOTE FOR MAINTAINERS: Do not use minor version numbers 08 or 09 because
4  dnl leading zeros, because they may be treated as octal constants. The  dnl the leading zeros may cause them to be treated as invalid octal constants
5  dnl PCRE_PRERELEASE feature is for identifying release candidates. It might  dnl if a PCRE user writes code that uses PCRE_MINOR as a number. There is now
6  dnl be defined as -RC2, for example. For real releases, it should be defined  dnl a check further down that throws an error if 08 or 09 are used.
7  dnl empty.  
8    dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might
9    dnl be defined as -RC2, for example. For real releases, it should be empty.
10    
11  m4_define(pcre_major, [8])  m4_define(pcre_major, [8])
12  m4_define(pcre_minor, [0])  m4_define(pcre_minor, [01])
13  m4_define(pcre_prerelease, [-RC1])  m4_define(pcre_prerelease, [-RC1])
14  m4_define(pcre_date, [2008-07-01])  m4_define(pcre_date, [2010-01-02])
15    
16  # Libtool shared library interface versions (current:revision:age)  # Libtool shared library interface versions (current:revision:age)
17  m4_define(libpcre_version, [0:1:0])  m4_define(libpcre_version, [0:1:0])
# Line 22  AC_CONFIG_SRCDIR([pcre.h.in]) Line 24  AC_CONFIG_SRCDIR([pcre.h.in])
24  AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])  AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
25  AC_CONFIG_HEADERS(config.h)  AC_CONFIG_HEADERS(config.h)
26    
27    # This was added at the suggestion of libtoolize (03-Jan-10)
28    AC_CONFIG_MACRO_DIR([m4])
29    
30  # 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
31  # "-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
32  # 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 66  AC_LANG_PUSH(C++) Line 71  AC_LANG_PUSH(C++)
71  AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")  AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")
72  AC_LANG_POP  AC_LANG_POP
73    
74    # Check for a 64-bit integer type
75    AC_TYPE_INT64_T
76    
77  AC_PROG_INSTALL  AC_PROG_INSTALL
78  AC_LIBTOOL_WIN32_DLL  AC_LIBTOOL_WIN32_DLL
79  AC_PROG_LIBTOOL  AC_PROG_LIBTOOL
# Line 76  PCRE_MINOR="pcre_minor" Line 84  PCRE_MINOR="pcre_minor"
84  PCRE_PRERELEASE="pcre_prerelease"  PCRE_PRERELEASE="pcre_prerelease"
85  PCRE_DATE="pcre_date"  PCRE_DATE="pcre_date"
86    
87    if test "$PCRE_MINOR" = "08" -o "$PCRE_MINOR" = "09"
88    then
89      echo "***"
90      echo "*** Minor version number $PCRE_MINOR must not be used. ***"
91      echo "*** Use only 01 to 07 or 10 onwards, to avoid octal issues. ***"
92      echo "***"
93      exit 1
94    fi
95    
96  AC_SUBST(PCRE_MAJOR)  AC_SUBST(PCRE_MAJOR)
97  AC_SUBST(PCRE_MINOR)  AC_SUBST(PCRE_MINOR)
98  AC_SUBST(PCRE_PRERELEASE)  AC_SUBST(PCRE_PRERELEASE)
# Line 102  AC_ARG_ENABLE(rebuild-chartables, Line 119  AC_ARG_ENABLE(rebuild-chartables,
119  # Handle --enable-utf8 (disabled by default)  # Handle --enable-utf8 (disabled by default)
120  AC_ARG_ENABLE(utf8,  AC_ARG_ENABLE(utf8,
121                AS_HELP_STRING([--enable-utf8],                AS_HELP_STRING([--enable-utf8],
122                               [enable UTF-8 support]),                               [enable UTF-8 support (incompatible with --enable-ebcdic)]),
123                , enable_utf8=unset)                , enable_utf8=unset)
124    
125  # Handle --enable-unicode-properties  # Handle --enable-unicode-properties
# Line 150  AC_ARG_ENABLE(bsr-anycrlf, Line 167  AC_ARG_ENABLE(bsr-anycrlf,
167  # Handle --enable-ebcdic  # Handle --enable-ebcdic
168  AC_ARG_ENABLE(ebcdic,  AC_ARG_ENABLE(ebcdic,
169                AS_HELP_STRING([--enable-ebcdic],                AS_HELP_STRING([--enable-ebcdic],
170                               [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]),
171                , enable_ebcdic=no)                , enable_ebcdic=no)
172    
173  # Handle --disable-stack-for-recursion  # Handle --disable-stack-for-recursion
# Line 226  then Line 243  then
243  fi  fi
244    
245  # 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.
246    # Also check that UTF-8 support is not requested, because PCRE cannot handle
247    # EBCDIC and UTF-8 in the same build. To do so it would need to use different
248    # character constants depending on the mode.
249  #  #
250  if test "x$enable_ebcdic" = "xyes"  if test "x$enable_ebcdic" = "xyes"
251  then  then
252    enable_rebuild_chartables=yes    enable_rebuild_chartables=yes
253      if test "x$enable_utf8" = "xyes"
254      then
255        AC_MSG_ERROR([support for EBCDIC and UTF-8 cannot be enabled at the same time])
256      fi
257  fi  fi
258    
259  # Convert the newline identifier into the appropriate integer value.  # Convert the newline identifier into the appropriate integer value.
# Line 358  AC_CHECK_FUNCS(bcopy memmove strerror) Line 382  AC_CHECK_FUNCS(bcopy memmove strerror)
382  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
383  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
384    
385  # Check for the availability of libbz2  # Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
386    # as for libz. However, this had the following problem, diagnosed and fixed by
387    # a user:
388    #
389    #   - libbz2 uses the Pascal calling convention (WINAPI) for the functions
390    #     under Win32.
391    #   - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
392    #     therefore missing the function definition.
393    #   - The compiler thus generates a "C" signature for the test function.
394    #   - The linker fails to find the "C" function.
395    #   - PCRE fails to configure if asked to do so against libbz2.
396    #
397    # Solution:
398    #
399    #   - Replace the AC_CHECK_LIB test with a custom test.
400    
401  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
402  AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])  # Original test
403    # AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
404    #
405    # Custom test follows
406    
407    AC_MSG_CHECKING([for libbz2])
408    OLD_LIBS="$LIBS"
409    LIBS="$LIBS -lbz2"
410    AC_LINK_IFELSE( AC_LANG_PROGRAM([[
411    #ifdef HAVE_BZLIB_H
412    #include <bzlib.h>
413    #endif]],
414    [[return (int)BZ2_bzopen("conftest", "rb");]]),
415    [AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
416    AC_MSG_RESULT([no]))
417    LIBS="$OLD_LIBS"
418    
419  # Check for the availabiity of libreadline  # Check for the availabiity of libreadline
420    
# Line 372  AC_CHECK_LIB([readline], [readline], [HA Line 425  AC_CHECK_LIB([readline], [readline], [HA
425  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
426  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
427    
428    PCRE_STATIC_CFLAG=""
429  if test "x$enable_shared" = "xno" ; then  if test "x$enable_shared" = "xno" ; then
430    AC_DEFINE([PCRE_STATIC], [1], [    AC_DEFINE([PCRE_STATIC], [1], [
431      Define if linking statically (TODO: make nice with Libtool)])      Define if linking statically (TODO: make nice with Libtool)])
432      PCRE_STATIC_CFLAG="-DPCRE_STATIC"
433  fi  fi
434    AC_SUBST(PCRE_STATIC_CFLAG)
435    
436  # Here is where pcre specific defines are handled  # Here is where pcre specific defines are handled
437    
438  if test "$enable_utf8" = "yes"; then  if test "$enable_utf8" = "yes"; then
439    AC_DEFINE([SUPPORT_UTF8], [], [    AC_DEFINE([SUPPORT_UTF8], [], [
440      Define to enable support for the UTF-8 Unicode encoding.])      Define to enable support for the UTF-8 Unicode encoding. This will
441        work even in an EBCDIC environment, but it is incompatible with
442        the EBCDIC macro. That is, PCRE can support *either* EBCDIC code
443        *or* ASCII/UTF-8, but not both at once.])
444  fi  fi
445    
446  if test "$enable_unicode_properties" = "yes"; then  if test "$enable_unicode_properties" = "yes"; then
# Line 502  if test "$enable_ebcdic" = "yes"; then Line 561  if test "$enable_ebcdic" = "yes"; then
561    AC_DEFINE_UNQUOTED([EBCDIC], [], [    AC_DEFINE_UNQUOTED([EBCDIC], [], [
562      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
563      character codes, define this macro as 1. On systems that can use      character codes, define this macro as 1. On systems that can use
564      "configure", this can be done via --enable-ebcdic.])      "configure", this can be done via --enable-ebcdic. PCRE will then
565        assume that all input strings are in EBCDIC. If you do not define
566        this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.
567        It is not possible to build a version of PCRE that supports both
568        EBCDIC and UTF-8.])
569  fi  fi
570    
571  # Platform specific issues  # Platform specific issues
# Line 539  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp Line 602  DISTCHECK_CONFIGURE_FLAGS="--enable-cpp
602  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)  AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
603    
604  # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is  # Check that, if --enable-pcregrep-libz or --enable-pcregrep-libbz2 is
605  # specified, the relevant library is available. If so, add it to LIBS.  # specified, the relevant library is available.
606    
607  if test "$enable_pcregrep_libz" = "yes"; then  if test "$enable_pcregrep_libz" = "yes"; then
608    if test "$HAVE_ZLIB_H" != "1"; then    if test "$HAVE_ZLIB_H" != "1"; then
# Line 550  if test "$enable_pcregrep_libz" = "yes"; Line 613  if test "$enable_pcregrep_libz" = "yes";
613      echo "** Cannot --enable-pcregrep-libz because libz was not found"      echo "** Cannot --enable-pcregrep-libz because libz was not found"
614      exit 1      exit 1
615    fi    fi
616    if test "$LIBS" = ""; then LIBS=-lz; else LIBS="$LIBS -lz"; fi    LIBZ="-lz"
617  fi  fi
618    AC_SUBST(LIBZ)
619    
620  if test "$enable_pcregrep_libbz2" = "yes"; then  if test "$enable_pcregrep_libbz2" = "yes"; then
621    if test "$HAVE_BZLIB_H" != "1"; then    if test "$HAVE_BZLIB_H" != "1"; then
# Line 562  if test "$enable_pcregrep_libbz2" = "yes Line 626  if test "$enable_pcregrep_libbz2" = "yes
626      echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"      echo "** Cannot --enable-pcregrep-libbz2 because libbz2 was not found"
627      exit 1      exit 1
628    fi    fi
629    if test "$LIBS" = ""; then LIBS=-lbz2; else LIBS="$LIBS -lbz2"; fi    LIBBZ2="-lbz2"
630  fi  fi
631    AC_SUBST(LIBBZ2)
632    
633  # Similarly for --enable-pcretest-readline  # Similarly for --enable-pcretest-readline
634    
# Line 576  if test "$enable_pcretest_libreadline" = Line 641  if test "$enable_pcretest_libreadline" =
641      echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."      echo "** Cannot --enable-pcretest-readline because readline/history.h was not found."
642      exit 1      exit 1
643    fi    fi
644    if test "$LIBS" = ""; then LIBS=-lreadline; else LIBS="$LIBS -lreadline"; fi    LIBREADLINE="-lreadline"
645  fi  fi
646    AC_SUBST(LIBREADLINE)
647    
648  # Produce these files, in addition to config.h.  # Produce these files, in addition to config.h.
649  AC_CONFIG_FILES(  AC_CONFIG_FILES(
650          Makefile          Makefile
651          libpcre.pc          libpcre.pc
652            libpcreposix.pc
653          libpcrecpp.pc          libpcrecpp.pc
654          pcre-config          pcre-config
655          pcre.h          pcre.h

Legend:
Removed from v.349  
changed lines
  Added in v.481

  ViewVC Help
Powered by ViewVC 1.1.5