/[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 391 by ph10, Tue Mar 17 21:16:01 2009 UTC revision 550 by ph10, Sun Oct 10 16:24:11 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, [9])  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, [11])
13  m4_define(pcre_prerelease, [-RC1])  m4_define(pcre_prerelease, [-RC1])
14  m4_define(pcre_date, [2009-02-27])  m4_define(pcre_date, [2010-10-09])
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 87  then Line 104  then
104    htmldir='${docdir}/html'    htmldir='${docdir}/html'
105  fi  fi
106    
107  # Handle --disable-cpp  # Handle --disable-cpp. The substitution of enable_cpp is needed for use in
108    # pcre-config.
109  AC_ARG_ENABLE(cpp,  AC_ARG_ENABLE(cpp,
110                AS_HELP_STRING([--disable-cpp],                AS_HELP_STRING([--disable-cpp],
111                               [disable C++ support]),                               [disable C++ support]),
112                , enable_cpp=yes)                , enable_cpp=yes)
113    AC_SUBST(enable_cpp)
114    
115  # Handle --enable-rebuild-chartables  # Handle --enable-rebuild-chartables
116  AC_ARG_ENABLE(rebuild-chartables,  AC_ARG_ENABLE(rebuild-chartables,
# Line 323  AC_CHECK_HEADERS(bits/type_traits.h, [pc Line 342  AC_CHECK_HEADERS(bits/type_traits.h, [pc
342  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],  AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"],
343                                  [pcre_have_type_traits="0"])                                  [pcre_have_type_traits="0"])
344    
345    # (This isn't c++-specific, but is only used in pcrecpp.cc, so try this
346    # in a c++ context.  This matters becuase strtoimax is C99 and may not
347    # be supported by the C++ compiler.)
348    # Figure out how to create a longlong from a string: strtoll and
349    # equiv.  It's not enough to call AC_CHECK_FUNCS: hpux has a
350    # strtoll, for instance, but it only takes 2 args instead of 3!
351    # We have to call AH_TEMPLATE since AC_DEFINE_UNQUOTED below is complex.
352    AH_TEMPLATE(HAVE_STRTOQ, [Define to 1 if you have `strtoq'.])
353    AH_TEMPLATE(HAVE_STRTOLL, [Define to 1 if you have `strtoll'.])
354    AH_TEMPLATE(HAVE__STRTOI64, [Define to 1 if you have `_strtoi64'.])
355    AH_TEMPLATE(HAVE_STRTOIMAX, [Define to 1 if you have `strtoimax'.])
356    have_strto_fn=0
357    for fn in strtoq strtoll _strtoi64 strtoimax; do
358      AC_MSG_CHECKING([for $fn])
359      if test "$fn" = strtoimax; then
360        include=stdint.h
361      else
362        include=stdlib.h
363      fi
364      AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <$include>],
365                                        [char* e; return $fn("100", &e, 10)]),
366                        [AC_MSG_RESULT(yes)
367                         AC_DEFINE_UNQUOTED(HAVE_`echo $fn | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`, 1,
368                                            [Define to 1 if you have `$fn'.])
369                         have_strto_fn=1
370                         break],
371                        [AC_MSG_RESULT(no)])
372    done
373    
374    if test "$have_strto_fn" = 1; then
375      AC_CHECK_TYPES([long long],
376                     [pcre_have_long_long="1"],
377                     [pcre_have_long_long="0"])
378      AC_CHECK_TYPES([unsigned long long],
379                     [pcre_have_ulong_long="1"],
380                     [pcre_have_ulong_long="0"])
381    else
382      pcre_have_long_long="0"
383      pcre_have_ulong_long="0"
384    fi
385    AC_SUBST(pcre_have_long_long)
386    AC_SUBST(pcre_have_ulong_long)
387    
388  AC_LANG_POP  AC_LANG_POP
389  fi  fi
390  # 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 338  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, Line 400  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES,
400  AC_C_CONST  AC_C_CONST
401  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
402    
 pcre_have_strotolonglong=0  
 AC_CHECK_FUNCS(strtoq strtoll _strtoi64, [pcre_have_strotolonglong="1"; break])  
 # If we can't convert a string to a long long, pretend we don't even  
 # have a long long.  
 if test $pcre_have_strotolonglong = "0"; then  
    pcre_have_long_long="0"  
    pcre_have_ulong_long="0"  
 else  
   AC_CHECK_TYPES([long long],  
                  [pcre_have_long_long="1"],  
                  [pcre_have_long_long="0"])  
   AC_CHECK_TYPES([unsigned long long],  
                  [pcre_have_ulong_long="1"],  
                  [pcre_have_ulong_long="0"])  
 fi  
 AC_SUBST(pcre_have_long_long)  
 AC_SUBST(pcre_have_ulong_long)  
   
403  # Checks for library functions.  # Checks for library functions.
404    
405  AC_CHECK_FUNCS(bcopy memmove strerror)  AC_CHECK_FUNCS(bcopy memmove strerror)
# Line 365  AC_CHECK_FUNCS(bcopy memmove strerror) Line 409  AC_CHECK_FUNCS(bcopy memmove strerror)
409  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
410  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
411    
412  # Check for the availability of libbz2  # Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
413    # as for libz. However, this had the following problem, diagnosed and fixed by
414    # a user:
415    #
416    #   - libbz2 uses the Pascal calling convention (WINAPI) for the functions
417    #     under Win32.
418    #   - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
419    #     therefore missing the function definition.
420    #   - The compiler thus generates a "C" signature for the test function.
421    #   - The linker fails to find the "C" function.
422    #   - PCRE fails to configure if asked to do so against libbz2.
423    #
424    # Solution:
425    #
426    #   - Replace the AC_CHECK_LIB test with a custom test.
427    
428  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
429  AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])  # Original test
430    # AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
431    #
432    # Custom test follows
433    
434    AC_MSG_CHECKING([for libbz2])
435    OLD_LIBS="$LIBS"
436    LIBS="$LIBS -lbz2"
437    AC_LINK_IFELSE( AC_LANG_PROGRAM([[
438    #ifdef HAVE_BZLIB_H
439    #include <bzlib.h>
440    #endif]],
441    [[return (int)BZ2_bzopen("conftest", "rb");]]),
442    [AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
443    AC_MSG_RESULT([no]))
444    LIBS="$OLD_LIBS"
445    
446  # Check for the availabiity of libreadline  # Check for the availabiity of libreadline
447    
# Line 379  AC_CHECK_LIB([readline], [readline], [HA Line 452  AC_CHECK_LIB([readline], [readline], [HA
452  # This facilitates -ansi builds under Linux  # This facilitates -ansi builds under Linux
453  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])  dnl AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions in glibc])
454    
455    PCRE_STATIC_CFLAG=""
456  if test "x$enable_shared" = "xno" ; then  if test "x$enable_shared" = "xno" ; then
457    AC_DEFINE([PCRE_STATIC], [1], [    AC_DEFINE([PCRE_STATIC], [1], [
458      Define if linking statically (TODO: make nice with Libtool)])      Define if linking statically (TODO: make nice with Libtool)])
459      PCRE_STATIC_CFLAG="-DPCRE_STATIC"
460  fi  fi
461    AC_SUBST(PCRE_STATIC_CFLAG)
462    
463  # Here is where pcre specific defines are handled  # Here is where pcre specific defines are handled
464    
# Line 513  if test "$enable_ebcdic" = "yes"; then Line 589  if test "$enable_ebcdic" = "yes"; then
589      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
590      character codes, define this macro as 1. On systems that can use      character codes, define this macro as 1. On systems that can use
591      "configure", this can be done via --enable-ebcdic. PCRE will then      "configure", this can be done via --enable-ebcdic. PCRE will then
592      assume that all input strings are in EBCDIC. If you do not define      assume that all input strings are in EBCDIC. If you do not define
593      this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.      this macro, PCRE will assume input strings are ASCII or UTF-8 Unicode.
594      It is not possible to build a version of PCRE that supports both      It is not possible to build a version of PCRE that supports both
595      EBCDIC and UTF-8.])      EBCDIC and UTF-8.])
596  fi  fi
# Line 600  AC_SUBST(LIBREADLINE) Line 676  AC_SUBST(LIBREADLINE)
676  AC_CONFIG_FILES(  AC_CONFIG_FILES(
677          Makefile          Makefile
678          libpcre.pc          libpcre.pc
679            libpcreposix.pc
680          libpcrecpp.pc          libpcrecpp.pc
681          pcre-config          pcre-config
682          pcre.h          pcre.h

Legend:
Removed from v.391  
changed lines
  Added in v.550

  ViewVC Help
Powered by ViewVC 1.1.5