/[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 464 by ph10, Sun Oct 18 19:50:34 2009 UTC revision 491 by ph10, Mon Mar 1 17:45:08 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, [00])  m4_define(pcre_minor, [02])
13  m4_define(pcre_prerelease, [])  m4_define(pcre_prerelease, [-RC1])
14  m4_define(pcre_date, [2009-10-19])  m4_define(pcre_date, [2010-03-01])
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 323  AC_CHECK_HEADERS(bits/type_traits.h, [pc Line 340  AC_CHECK_HEADERS(bits/type_traits.h, [pc
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    # (This isn't c++-specific, but is only used in pcrecpp.cc, so try this
344    # in a c++ context.  This matters becuase strtoimax is C99 and may not
345    # be supported by the C++ compiler.)
346    # Figure out how to create a longlong from a string: strtoll and
347    # equiv.  It's not enough to call AC_CHECK_FUNCS: hpux has a
348    # strtoll, for instance, but it only takes 2 args instead of 3!
349    # We have to call AH_TEMPLATE since AC_DEFINE_UNQUOTED below is complex.
350    AH_TEMPLATE(HAVE_STRTOQ, [Define to 1 if you have `strtoq'.])
351    AH_TEMPLATE(HAVE_STRTOLL, [Define to 1 if you have `strtoll'.])
352    AH_TEMPLATE(HAVE__STRTOI64, [Define to 1 if you have `_strtoi64'.])
353    AH_TEMPLATE(HAVE_STRTOIMAX, [Define to 1 if you have `strtoimax'.])
354    have_strto_fn=0
355    for fn in srtoq strtoll _strtoi64 strtoimax; do
356      AC_MSG_CHECKING([for $fn])
357      if test "$fn" = strtoimax; then
358        include=stdint.h
359      else
360        include=stdlib.h
361      fi
362      AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <$include>],
363                                        [char* e; return $fn("100", &e, 10)]),
364                        [AC_MSG_RESULT(yes)
365                         AC_DEFINE_UNQUOTED(HAVE_`echo $fn | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`, 1,
366                                            [Define to 1 if you have `$fn'.])
367                         have_strto_fn=1
368                         break],
369                        [AC_MSG_RESULT(no)])
370    done
371    
372    if test "$have_strto_fn" = 1; then
373      AC_CHECK_TYPES([long long],
374                     [pcre_have_long_long="1"],
375                     [pcre_have_long_long="0"])
376      AC_CHECK_TYPES([unsigned long long],
377                     [pcre_have_ulong_long="1"],
378                     [pcre_have_ulong_long="0"])
379    else
380      pcre_have_long_long="0"
381      pcre_have_ulong_long="0"
382    fi
383    AC_SUBST(pcre_have_long_long)
384    AC_SUBST(pcre_have_ulong_long)
385    
386  AC_LANG_POP  AC_LANG_POP
387  fi  fi
388  # 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 398  AM_CONDITIONAL(WITH_REBUILD_CHARTABLES,
398  AC_C_CONST  AC_C_CONST
399  AC_TYPE_SIZE_T  AC_TYPE_SIZE_T
400    
 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)  
   
401  # Checks for library functions.  # Checks for library functions.
402    
403  AC_CHECK_FUNCS(bcopy memmove strerror)  AC_CHECK_FUNCS(bcopy memmove strerror)
# Line 365  AC_CHECK_FUNCS(bcopy memmove strerror) Line 407  AC_CHECK_FUNCS(bcopy memmove strerror)
407  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])  AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
408  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])  AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
409    
410  # Check for the availability of libbz2  # Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
411    # as for libz. However, this had the following problem, diagnosed and fixed by
412    # a user:
413    #
414    #   - libbz2 uses the Pascal calling convention (WINAPI) for the functions
415    #     under Win32.
416    #   - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
417    #     therefore missing the function definition.
418    #   - The compiler thus generates a "C" signature for the test function.
419    #   - The linker fails to find the "C" function.
420    #   - PCRE fails to configure if asked to do so against libbz2.
421    #
422    # Solution:
423    #
424    #   - Replace the AC_CHECK_LIB test with a custom test.
425    
426  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])  AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
427  AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])  # Original test
428    # AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
429    #
430    # Custom test follows
431    
432    AC_MSG_CHECKING([for libbz2])
433    OLD_LIBS="$LIBS"
434    LIBS="$LIBS -lbz2"
435    AC_LINK_IFELSE( AC_LANG_PROGRAM([[
436    #ifdef HAVE_BZLIB_H
437    #include <bzlib.h>
438    #endif]],
439    [[return (int)BZ2_bzopen("conftest", "rb");]]),
440    [AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
441    AC_MSG_RESULT([no]))
442    LIBS="$OLD_LIBS"
443    
444  # Check for the availabiity of libreadline  # Check for the availabiity of libreadline
445    

Legend:
Removed from v.464  
changed lines
  Added in v.491

  ViewVC Help
Powered by ViewVC 1.1.5