/[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 415 by ph10, Sat Apr 11 14:22:17 2009 UTC revision 579 by ph10, Wed Nov 24 17:39:25 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  m4_define(pcre_major, [7])  dnl be defined as -RC2, for example. For real releases, it should be empty.
10  m4_define(pcre_minor, [9])  
11  m4_define(pcre_prerelease, [])  m4_define(pcre_major, [8])
12  m4_define(pcre_date, [2009-04-11])  m4_define(pcre_minor, [11])
13    m4_define(pcre_prerelease, [-RC1])
14    m4_define(pcre_date, [2010-11-24])
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 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.415  
changed lines
  Added in v.579

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12