/[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 321 by ph10, Wed Mar 5 17:10:45 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.
 dnl empty.  
7    
8  m4_define(pcre_major, [7])  dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might
9  m4_define(pcre_minor, [7])  dnl be defined as -RC2, for example. For real releases, it should be empty.
10    
11    m4_define(pcre_major, [8])
12    m4_define(pcre_minor, [01])
13  m4_define(pcre_prerelease, [-RC1])  m4_define(pcre_prerelease, [-RC1])
14  m4_define(pcre_date, [2008-03-05])  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 60  then Line 65  then
65    fi    fi
66  fi  fi
67    
68    # AC_PROG_CXX will return "g++" even if no c++ compiler is installed.
69    # Check for that case, and just disable c++ code if g++ doesn't run.
70    AC_LANG_PUSH(C++)
71    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[]),, CXX=""; CXXCP=""; CXXFLAGS="")
72    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
# Line 71  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 97  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 145  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 221  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 277  if test "x$enable_cpp" = "xyes" -a -n "$ Line 306  if test "x$enable_cpp" = "xyes" -a -n "$
306  then  then
307  AC_LANG_PUSH(C++)  AC_LANG_PUSH(C++)
308    
309    # Older versions of pcre defined pcrecpp::no_arg, but in new versions
310    # it's called pcrecpp::RE::no_arg.  For backwards ABI compatibility,
311    # we want to make one an alias for the other.  Different systems do
312    # this in different ways.  Some systems, for instance, can do it via
313    # a linker flag: -alias (for os x 10.5) or -i (for os x <=10.4).
314    OLD_LDFLAGS="$LDFLAGS"
315    for flag in "-alias,__ZN7pcrecpp2RE6no_argE,__ZN7pcrecpp6no_argE" \
316                "-i__ZN7pcrecpp6no_argE:__ZN7pcrecpp2RE6no_argE"; do
317      AC_MSG_CHECKING([for alias support in the linker])
318      LDFLAGS="$OLD_LDFLAGS -Wl,$flag"
319      # We try to run the linker with this new ld flag.  If the link fails,
320      # we give up and remove the new flag from LDFLAGS.
321      AC_LINK_IFELSE(AC_LANG_PROGRAM([namespace pcrecpp {
322                                        class RE { static int no_arg; };
323                                        int RE::no_arg;
324                                      }],
325                                     []),
326                     [AC_MSG_RESULT([yes]);
327                      EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS -Wl,$flag";
328                      break;],
329                     AC_MSG_RESULT([no]))
330    done
331    LDFLAGS="$OLD_LDFLAGS"
332    
333  # 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
334  # (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
335  # 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 339  AC_CHECK_HEADERS(bits/type_traits.h, [pc
339                                       [pcre_have_bits_type_traits="0"])                                       [pcre_have_bits_type_traits="0"])
340  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
341                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
342    
343  AC_LANG_POP  AC_LANG_POP
344  fi  fi
345  # 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 328  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 342  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 472  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 490  esac Line 583  esac
583  # The extra LDFLAGS for each particular library  # The extra LDFLAGS for each particular library
584  # (Note: The libpcre*_version bits are m4 variables, assigned above)  # (Note: The libpcre*_version bits are m4 variables, assigned above)
585    
586  EXTRA_LIBPCRE_LDFLAGS="$NO_UNDEFINED -version-info libpcre_version"  EXTRA_LIBPCRE_LDFLAGS="$EXTRA_LIBPCRE_LDFLAGS \
587                           $NO_UNDEFINED -version-info libpcre_version"
588    
589  EXTRA_LIBPCREPOSIX_LDFLAGS="$NO_UNDEFINED -version-info libpcreposix_version"  EXTRA_LIBPCREPOSIX_LDFLAGS="$EXTRA_LIBPCREPOSIX_LDFLAGS \
590                                $NO_UNDEFINED -version-info libpcreposix_version"
591    
592  EXTRA_LIBPCRECPP_LDFLAGS="$NO_UNDEFINED $EXPORT_ALL_SYMBOLS -version-info libpcrecpp_version"  EXTRA_LIBPCRECPP_LDFLAGS="$EXTRA_LIBPCRECPP_LDFLAGS \
593                              $NO_UNDEFINED -version-info libpcrecpp_version \
594                              $EXPORT_ALL_SYMBOLS"
595    
596  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)  AC_SUBST(EXTRA_LIBPCRE_LDFLAGS)
597  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)  AC_SUBST(EXTRA_LIBPCREPOSIX_LDFLAGS)
# Line 505  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 516  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 528  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 542  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.321  
changed lines
  Added in v.481

  ViewVC Help
Powered by ViewVC 1.1.5