Blame configure.ac

Packit 4e8bc4
AC_PREREQ(2.52)
Packit 4e8bc4
m4_include([version.m4])
Packit 4e8bc4
m4_include([m4/c99-backport.m4])
Packit 4e8bc4
AC_INIT([memcached], [VERSION_NUMBER], [memcached@googlegroups.com])
Packit 4e8bc4
AC_CANONICAL_HOST
Packit 4e8bc4
AC_CONFIG_SRCDIR([memcached.c])
Packit 4e8bc4
AM_INIT_AUTOMAKE([foreign])
Packit 4e8bc4
AM_CONFIG_HEADER([config.h])
Packit 4e8bc4
Packit 4e8bc4
AC_PROG_CC
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_ICC ([ACTION-IF-YES], [ACTION-IF-NO])
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if this is the Intel ICC compiler, and if so run the ACTION-IF-YES
Packit 4e8bc4
dnl sets the $ICC variable to "yes" or "no"
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([DETECT_ICC],
Packit 4e8bc4
[
Packit 4e8bc4
    ICC="no"
Packit 4e8bc4
    AC_MSG_CHECKING([for icc in use])
Packit 4e8bc4
    if test "$GCC" = "yes"; then
Packit 4e8bc4
       dnl check if this is icc acting as gcc in disguise
Packit 4e8bc4
       AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
Packit 4e8bc4
         AC_MSG_RESULT([no])
Packit 4e8bc4
         [$2],
Packit 4e8bc4
         AC_MSG_RESULT([yes])
Packit 4e8bc4
         [$1]
Packit 4e8bc4
         ICC="yes")
Packit 4e8bc4
    else
Packit 4e8bc4
       AC_MSG_RESULT([no])
Packit 4e8bc4
       [$2]
Packit 4e8bc4
    fi
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
DETECT_ICC([], [])
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_CLANG ([ACTION-IF-YES], [ACTION-IF-NO])
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if compiler is clang, and if so run the ACTION-IF-YES sets the
Packit 4e8bc4
dnl $CLANG variable to "yes" or "no"
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([DETECT_CLANG],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_MSG_CHECKING([for clang in use])
Packit 4e8bc4
    AC_COMPILE_IFELSE(
Packit 4e8bc4
    [AC_LANG_PROGRAM([], [[
Packit 4e8bc4
    #ifndef __clang__
Packit 4e8bc4
           not clang
Packit 4e8bc4
    #endif
Packit 4e8bc4
    ]])],
Packit 4e8bc4
    [CLANG=yes], [CLANG=no])
Packit 4e8bc4
    AC_MSG_RESULT([$CLANG])
Packit 4e8bc4
    AS_IF([test "$CLANG" = "yes"],[$1],[$2])
Packit 4e8bc4
])
Packit 4e8bc4
DETECT_CLANG([],[])
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_SUNCC ([ACTION-IF-YES], [ACTION-IF-NO])
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if this is the Sun Studio compiler, and if so run the ACTION-IF-YES
Packit 4e8bc4
dnl sets the $SUNCC variable to "yes" or "no"
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([DETECT_SUNCC],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
Packit 4e8bc4
    AS_IF(test "x$SUNCC" = "xyes", [$1], [$2])
Packit 4e8bc4
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
DETECT_SUNCC([CFLAGS="-mt $CFLAGS"], [])
Packit 4e8bc4
AS_IF([test "$ICC" = "yes" -o "$GCC" = "yes"],
Packit 4e8bc4
[
Packit 4e8bc4
    AS_IF(test "$CLANG" = "no",[CFLAGS="$CFLAGS -pthread"])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
if test "$ICC" = "no"; then
Packit 4e8bc4
   AC_PROG_CC_C99
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
AM_PROG_CC_C_O
Packit 4e8bc4
AC_PROG_INSTALL
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(arm_crc32,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-arm-crc32], [Enable ARMv8 CRC32 instructions])])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(extstore,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-extstore], [Enable external storage EXPERIMENTAL ])])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(seccomp,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-seccomp],[Enable seccomp restrictions EXPERIMENTAL])])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(sasl,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-sasl],[Enable SASL authentication])])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(sasl_pwdb,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-sasl-pwdb],[Enable plaintext password db])])
Packit 4e8bc4
Packit 4e8bc4
AS_IF([test "x$enable_sasl_pwdb" = "xyes"],
Packit 4e8bc4
      [enable_sasl=yes ])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(tls,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-tls], [Enable Transport Layer Security EXPERIMENTAL ])])
Packit 4e8bc4
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(asan,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-asan], [Compile with ASAN EXPERIMENTAL ])])
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_SASL_CB_GETCONF
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if we can use SASL_CB_GETCONF
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([AC_C_DETECT_SASL_CB_GETCONF],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_CACHE_CHECK([for SASL_CB_GETCONF],
Packit 4e8bc4
        [ac_cv_c_sasl_cb_getconf],
Packit 4e8bc4
        [AC_TRY_COMPILE(
Packit 4e8bc4
            [
Packit 4e8bc4
#include <sasl/sasl.h>
Packit 4e8bc4
            ], [
Packit 4e8bc4
unsigned long val = SASL_CB_GETCONF;
Packit 4e8bc4
            ],
Packit 4e8bc4
            [ ac_cv_c_sasl_cb_getconf=yes ],
Packit 4e8bc4
            [ ac_cv_c_sasl_cb_getconf=no ])
Packit 4e8bc4
        ])
Packit 4e8bc4
    AS_IF([test "$ac_cv_c_sasl_cb_getconf" = "yes"],
Packit 4e8bc4
          [AC_DEFINE([HAVE_SASL_CB_GETCONF], 1,
Packit 4e8bc4
                     [Set to nonzero if your SASL implementation supports SASL_CB_GETCONF])])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_SASL_CB_GETCONFPATH
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if we can use SASL_CB_GETCONFPATH
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([AC_C_DETECT_SASL_CB_GETCONFPATH],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_CACHE_CHECK([for SASL_CB_GETCONFPATH],
Packit 4e8bc4
        [ac_cv_c_sasl_cb_getconfpath],
Packit 4e8bc4
        [AC_TRY_COMPILE(
Packit 4e8bc4
            [
Packit 4e8bc4
#include <sasl/sasl.h>
Packit 4e8bc4
            ], [
Packit 4e8bc4
unsigned long val = SASL_CB_GETCONFPATH;
Packit 4e8bc4
            ],
Packit 4e8bc4
            [ ac_cv_c_sasl_cb_getconfpath=yes ],
Packit 4e8bc4
            [ ac_cv_c_sasl_cb_getconfpath=no ])
Packit 4e8bc4
        ])
Packit 4e8bc4
    AS_IF([test "$ac_cv_c_sasl_cb_getconfpath" = "yes"],
Packit 4e8bc4
          [AC_DEFINE([HAVE_SASL_CB_GETCONFPATH], 1,
Packit 4e8bc4
                     [Set to nonzero if your SASL implementation supports SASL_CB_GETCONFPATH])])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_HEADERS([sasl/sasl.h])
Packit 4e8bc4
if test "x$enable_sasl" = "xyes"; then
Packit 4e8bc4
  AC_C_DETECT_SASL_CB_GETCONF
Packit 4e8bc4
  AC_C_DETECT_SASL_CB_GETCONFPATH
Packit 4e8bc4
  AC_DEFINE([ENABLE_SASL],1,[Set to nonzero if you want to include SASL])
Packit 4e8bc4
  AC_SEARCH_LIBS([sasl_server_init], [sasl2 sasl], [],
Packit 4e8bc4
    [
Packit 4e8bc4
      AC_MSG_ERROR([Failed to locate the library containing sasl_server_init])
Packit 4e8bc4
    ])
Packit 4e8bc4
Packit 4e8bc4
  AS_IF([test "x$enable_sasl_pwdb" = "xyes"],
Packit 4e8bc4
        [AC_DEFINE([ENABLE_SASL_PWDB], 1,
Packit 4e8bc4
                   [Set to nonzero if you want to enable a SASL pwdb])])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(dtrace,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-dtrace],[Enable dtrace probes])])
Packit 4e8bc4
if test "x$enable_dtrace" = "xyes"; then
Packit 4e8bc4
  AC_PATH_PROG([DTRACE], [dtrace], "no", [/usr/sbin:$PATH])
Packit 4e8bc4
  if test "x$DTRACE" != "xno"; then
Packit 4e8bc4
    AC_DEFINE([ENABLE_DTRACE],1,[Set to nonzero if you want to include DTRACE])
Packit 4e8bc4
    build_dtrace=yes
Packit 4e8bc4
    $DTRACE -h -o conftest.h -s memcached_dtrace.d 2>/dev/zero
Packit 4e8bc4
    if test $? -eq 0
Packit 4e8bc4
    then
Packit 4e8bc4
        dtrace_instrument_obj=yes
Packit 4e8bc4
        rm conftest.h
Packit 4e8bc4
    fi
Packit 4e8bc4
Packit 4e8bc4
    if test "`which tr`" = "/usr/ucb/tr"; then
Packit 4e8bc4
        AC_MSG_ERROR([Please remove /usr/ucb from your path. See man standards for more info])
Packit 4e8bc4
    fi
Packit 4e8bc4
  else
Packit 4e8bc4
    AC_MSG_ERROR([Need dtrace binary and OS support.])
Packit 4e8bc4
  fi
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
if test "x$enable_extstore" = "xyes"; then
Packit 4e8bc4
    AC_DEFINE([EXTSTORE],1,[Set to nonzero if you want to enable extstore])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
if test "x$enable_tls" = "xyes"; then
Packit 4e8bc4
    AC_DEFINE([TLS],1,[Set to nonzero if you want to enable TLS])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
if test "x$enable_arm_crc32" = "xyes"; then
Packit 4e8bc4
    AC_DEFINE([ARM_CRC32],1,[Set to nonzero if you want to enable ARMv8 crc32])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
if test "x$enable_asan" = "xyes"; then
Packit 4e8bc4
    AC_DEFINE([ASAN],1,[Set to nonzero if you want to compile using ASAN])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
AM_CONDITIONAL([BUILD_DTRACE],[test "$build_dtrace" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([DTRACE_INSTRUMENT_OBJ],[test "$dtrace_instrument_obj" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([ENABLE_SASL],[test "$enable_sasl" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([ENABLE_EXTSTORE],[test "$enable_extstore" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([ENABLE_ARM_CRC32],[test "$enable_arm_crc32" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([ENABLE_TLS],[test "$enable_tls" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([ENABLE_ASAN],[test "$enable_asan" = "yes"])
Packit 4e8bc4
Packit 4e8bc4
Packit 4e8bc4
AC_SUBST(DTRACE)
Packit 4e8bc4
AC_SUBST(DTRACEFLAGS)
Packit 4e8bc4
AC_SUBST(ENABLE_SASL)
Packit 4e8bc4
AC_SUBST(PROFILER_LDFLAGS)
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(coverage,
Packit 4e8bc4
  [AS_HELP_STRING([--disable-coverage],[Disable code coverage])])
Packit 4e8bc4
Packit 4e8bc4
if test "x$enable_coverage" != "xno"; then
Packit 4e8bc4
   if test "$GCC" = "yes" -a "$ICC" != "yes" -a "$CLANG" != "yes"
Packit 4e8bc4
   then
Packit 4e8bc4
      CFLAGS="$CFLAGS -pthread"
Packit 4e8bc4
      AC_PATH_PROG([PROFILER], [gcov], "no", [$PATH])
Packit 4e8bc4
      if test "x$PROFILER" != "xno"; then
Packit 4e8bc4
         # Issue 97: The existence of gcov doesn't mean we have -lgcov
Packit 4e8bc4
         AC_CHECK_LIB(gcov, main,
Packit 4e8bc4
                    [
Packit 4e8bc4
                      PROFILER_FLAGS="-fprofile-arcs -ftest-coverage"
Packit 4e8bc4
                      PROFILER_LDFLAGS="-lgcov"
Packit 4e8bc4
                    ], [
Packit 4e8bc4
                      PROFILER_FLAGS=
Packit 4e8bc4
                      PROFILER_LDFLAGS=
Packit 4e8bc4
                    ])
Packit 4e8bc4
      fi
Packit 4e8bc4
   elif test "$SUNCC" = "yes"
Packit 4e8bc4
   then
Packit 4e8bc4
      AC_PATH_PROG([PROFILER], [tcov], "no", [$PATH])
Packit 4e8bc4
      if test "x$PROFILER" != "xno"; then
Packit 4e8bc4
         PROFILER_FLAGS=-xprofile=tcov
Packit 4e8bc4
      fi
Packit 4e8bc4
   elif test "x$CLANG" != "xno"
Packit 4e8bc4
   then
Packit 4e8bc4
      AC_PATH_PROG([PROFILER], [gcov], "no", [$PATH])
Packit 4e8bc4
      if test "x$PROFILER" != "xno"
Packit 4e8bc4
      then
Packit 4e8bc4
          PROFILER_FLAGS="-fprofile-arcs -ftest-coverage"
Packit 4e8bc4
          PROFILER_LDFLAGS=
Packit 4e8bc4
      fi
Packit 4e8bc4
   fi
Packit 4e8bc4
fi
Packit 4e8bc4
AC_SUBST(PROFILER_FLAGS)
Packit 4e8bc4
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(64bit,
Packit 4e8bc4
  [AS_HELP_STRING([--enable-64bit],[build 64bit version])])
Packit 4e8bc4
if test "x$enable_64bit" = "xyes"
Packit 4e8bc4
then
Packit 4e8bc4
    org_cflags=$CFLAGS
Packit 4e8bc4
    CFLAGS=-m64
Packit 4e8bc4
    AC_RUN_IFELSE(
Packit 4e8bc4
      [AC_LANG_PROGRAM([], [dnl
Packit 4e8bc4
return sizeof(void*) == 8 ? 0 : 1;
Packit 4e8bc4
      ])
Packit 4e8bc4
    ],[
Packit 4e8bc4
      CFLAGS="-m64 $org_cflags"
Packit 4e8bc4
    ],[
Packit 4e8bc4
      AC_MSG_ERROR([Don't know how to build a 64-bit object.])
Packit 4e8bc4
    ],[
Packit 4e8bc4
       dnl cross compile
Packit 4e8bc4
       AC_MSG_WARN([Assuming no extra CFLAGS are required for cross-compiling 64bit version.])
Packit 4e8bc4
    ])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
dnl Check if data pointer is 64bit or not
Packit 4e8bc4
AC_CHECK_SIZEOF([void *])
Packit 4e8bc4
Packit 4e8bc4
# Issue 213: Search for clock_gettime to help people linking
Packit 4e8bc4
#            with a static version of libevent
Packit 4e8bc4
AC_SEARCH_LIBS(clock_gettime, rt)
Packit 4e8bc4
# Issue 214: Search for the network libraries _before_ searching
Packit 4e8bc4
#            for libevent (to help people linking with static libevent)
Packit 4e8bc4
AC_SEARCH_LIBS(socket, socket)
Packit 4e8bc4
AC_SEARCH_LIBS(gethostbyname, nsl)
Packit 4e8bc4
Packit 4e8bc4
trylibeventdir=""
Packit 4e8bc4
AC_ARG_WITH(libevent,
Packit 4e8bc4
       [  --with-libevent=PATH     Specify path to libevent installation ],
Packit 4e8bc4
       [
Packit 4e8bc4
                if test "x$withval" != "xno" ; then
Packit 4e8bc4
                        trylibeventdir=$withval
Packit 4e8bc4
                fi
Packit 4e8bc4
       ]
Packit 4e8bc4
)
Packit 4e8bc4
Packit 4e8bc4
dnl ------------------------------------------------------
Packit 4e8bc4
dnl libevent detection.  swiped from Tor.  modified a bit.
Packit 4e8bc4
Packit 4e8bc4
LIBEVENT_URL=https://www.monkey.org/~provos/libevent/
Packit 4e8bc4
Packit 4e8bc4
AC_CACHE_CHECK([for libevent directory], ac_cv_libevent_dir, [
Packit 4e8bc4
  saved_LIBS="$LIBS"
Packit 4e8bc4
  saved_LDFLAGS="$LDFLAGS"
Packit 4e8bc4
  saved_CPPFLAGS="$CPPFLAGS"
Packit 4e8bc4
  le_found=no
Packit 4e8bc4
  for ledir in $trylibeventdir "" $prefix /usr/local ; do
Packit 4e8bc4
    LDFLAGS="$saved_LDFLAGS"
Packit 4e8bc4
    LIBS="-levent $saved_LIBS"
Packit 4e8bc4
Packit 4e8bc4
    # Skip the directory if it isn't there.
Packit 4e8bc4
    if test ! -z "$ledir" -a ! -d "$ledir" ; then
Packit 4e8bc4
       continue;
Packit 4e8bc4
    fi
Packit 4e8bc4
    if test ! -z "$ledir" ; then
Packit 4e8bc4
      if test -d "$ledir/lib" ; then
Packit 4e8bc4
        LDFLAGS="-L$ledir/lib $LDFLAGS"
Packit 4e8bc4
      else
Packit 4e8bc4
        LDFLAGS="-L$ledir $LDFLAGS"
Packit 4e8bc4
      fi
Packit 4e8bc4
      if test -d "$ledir/include" ; then
Packit 4e8bc4
        CPPFLAGS="-I$ledir/include $CPPFLAGS"
Packit 4e8bc4
      else
Packit 4e8bc4
        CPPFLAGS="-I$ledir $CPPFLAGS"
Packit 4e8bc4
      fi
Packit 4e8bc4
    fi
Packit 4e8bc4
    # Can I compile and link it?
Packit 4e8bc4
    AC_TRY_LINK([#include <sys/time.h>
Packit 4e8bc4
#include <sys/types.h>
Packit 4e8bc4
#include <event.h>], [ event_init(); ],
Packit 4e8bc4
       [ libevent_linked=yes ], [ libevent_linked=no ])
Packit 4e8bc4
    if test $libevent_linked = yes; then
Packit 4e8bc4
       if test ! -z "$ledir" ; then
Packit 4e8bc4
         ac_cv_libevent_dir=$ledir
Packit 4e8bc4
         _myos=`echo $target_os | cut -f 1 -d .`
Packit 4e8bc4
         AS_IF(test "$SUNCC" = "yes" -o "x$_myos" = "xsolaris2",
Packit 4e8bc4
               [saved_LDFLAGS="$saved_LDFLAGS -Wl,-R$ledir/lib"],
Packit 4e8bc4
               [AS_IF(test "$GCC" = "yes",
Packit 4e8bc4
                     [saved_LDFLAGS="$saved_LDFLAGS -Wl,-rpath,$ledir/lib"])])
Packit 4e8bc4
       else
Packit 4e8bc4
         ac_cv_libevent_dir="(system)"
Packit 4e8bc4
       fi
Packit 4e8bc4
       le_found=yes
Packit 4e8bc4
       break
Packit 4e8bc4
    fi
Packit 4e8bc4
  done
Packit 4e8bc4
  LIBS="$saved_LIBS"
Packit 4e8bc4
  LDFLAGS="$saved_LDFLAGS"
Packit 4e8bc4
  CPPFLAGS="$saved_CPPFLAGS"
Packit 4e8bc4
  if test $le_found = no ; then
Packit 4e8bc4
    AC_MSG_ERROR([libevent is required.  You can get it from $LIBEVENT_URL
Packit 4e8bc4
Packit 4e8bc4
      If it's already installed, specify its path using --with-libevent=/dir/
Packit 4e8bc4
])
Packit 4e8bc4
  fi
Packit 4e8bc4
])
Packit 4e8bc4
LIBS="-levent $LIBS"
Packit 4e8bc4
if test $ac_cv_libevent_dir != "(system)"; then
Packit 4e8bc4
  if test -d "$ac_cv_libevent_dir/lib" ; then
Packit 4e8bc4
    LDFLAGS="-L$ac_cv_libevent_dir/lib $LDFLAGS"
Packit 4e8bc4
    le_libdir="$ac_cv_libevent_dir/lib"
Packit 4e8bc4
  else
Packit 4e8bc4
    LDFLAGS="-L$ac_cv_libevent_dir $LDFLAGS"
Packit 4e8bc4
    le_libdir="$ac_cv_libevent_dir"
Packit 4e8bc4
  fi
Packit 4e8bc4
  if test -d "$ac_cv_libevent_dir/include" ; then
Packit 4e8bc4
    CPPFLAGS="-I$ac_cv_libevent_dir/include $CPPFLAGS"
Packit 4e8bc4
  else
Packit 4e8bc4
    CPPFLAGS="-I$ac_cv_libevent_dir $CPPFLAGS"
Packit 4e8bc4
  fi
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
trylibssldir=""
Packit 4e8bc4
AC_ARG_WITH(libssl,
Packit 4e8bc4
       [  --with-libssl=PATH     Specify path to libssl installation ],
Packit 4e8bc4
       [
Packit 4e8bc4
                if test "x$withval" != "xno" ; then
Packit 4e8bc4
                        trylibssldir=$withval
Packit 4e8bc4
                fi
Packit 4e8bc4
       ]
Packit 4e8bc4
)
Packit 4e8bc4
Packit 4e8bc4
dnl ----------------------------------------------------------------------------
Packit 4e8bc4
dnl libssl detection.  swiped from libevent.  modified for openssl detection.
Packit 4e8bc4
Packit 4e8bc4
OPENSSL_URL=https://www.openssl.org/
Packit 4e8bc4
if test "x$enable_tls" = "xyes"; then
Packit 4e8bc4
  AC_CACHE_CHECK([for libssl directory], ac_cv_libssl_dir, [
Packit 4e8bc4
    saved_LIBS="$LIBS"
Packit 4e8bc4
    saved_LDFLAGS="$LDFLAGS"
Packit 4e8bc4
    saved_CPPFLAGS="$CPPFLAGS"
Packit 4e8bc4
    le_found=no
Packit 4e8bc4
    for ledir in $trylibssldir "" $prefix /usr/local ; do
Packit 4e8bc4
      LDFLAGS="$saved_LDFLAGS"
Packit 4e8bc4
      LIBS="-lssl -lcrypto $saved_LIBS"
Packit 4e8bc4
Packit 4e8bc4
      # Skip the directory if it isn't there.
Packit 4e8bc4
      if test ! -z "$ledir" -a ! -d "$ledir" ; then
Packit 4e8bc4
         continue;
Packit 4e8bc4
      fi
Packit 4e8bc4
      if test ! -z "$ledir" ; then
Packit 4e8bc4
        if test -d "$ledir/lib" ; then
Packit 4e8bc4
          LDFLAGS="-L$ledir/lib $LDFLAGS"
Packit 4e8bc4
        else
Packit 4e8bc4
          LDFLAGS="-L$ledir $LDFLAGS"
Packit 4e8bc4
        fi
Packit 4e8bc4
        if test -d "$ledir/include" ; then
Packit 4e8bc4
          CPPFLAGS="-I$ledir/include $CPPFLAGS"
Packit 4e8bc4
        else
Packit 4e8bc4
          CPPFLAGS="-I$ledir $CPPFLAGS"
Packit 4e8bc4
        fi
Packit 4e8bc4
      fi
Packit 4e8bc4
      # Can I compile and link it?
Packit 4e8bc4
      AC_TRY_LINK([#include <sys/time.h>
Packit 4e8bc4
  #include <sys/types.h>
Packit 4e8bc4
  #include <assert.h>
Packit 4e8bc4
  #include <openssl/ssl.h>], [ SSL_CTX* ssl_ctx = SSL_CTX_new(TLS_server_method());
Packit 4e8bc4
                              assert(OPENSSL_VERSION_NUMBER >= 0x10100000L);],
Packit 4e8bc4
         [ libssl_linked=yes ], [ libssl_linked=no ])
Packit 4e8bc4
      if test $libssl_linked = yes; then
Packit 4e8bc4
         if test ! -z "$ledir" ; then
Packit 4e8bc4
           ac_cv_libssl_dir=$ledir
Packit 4e8bc4
           _myos=`echo $target_os | cut -f 1 -d .`
Packit 4e8bc4
           AS_IF(test "$SUNCC" = "yes" -o "x$_myos" = "xsolaris2",
Packit 4e8bc4
                 [saved_LDFLAGS="$saved_LDFLAGS -Wl,-R$ledir/lib"],
Packit 4e8bc4
                 [AS_IF(test "$GCC" = "yes",
Packit 4e8bc4
                       [saved_LDFLAGS="$saved_LDFLAGS -Wl,-rpath,$ledir/lib"])])
Packit 4e8bc4
         else
Packit 4e8bc4
           ac_cv_libssl_dir="(system)"
Packit 4e8bc4
         fi
Packit 4e8bc4
         le_found=yes
Packit 4e8bc4
         break
Packit 4e8bc4
      fi
Packit 4e8bc4
    done
Packit 4e8bc4
    LIBS="$saved_LIBS"
Packit 4e8bc4
    LDFLAGS="$saved_LDFLAGS"
Packit 4e8bc4
    CPPFLAGS="$saved_CPPFLAGS"
Packit 4e8bc4
    if test $le_found = no ; then
Packit 4e8bc4
      AC_MSG_ERROR([libssl (at least version 1.1.0) is required.  You can get it from $OPENSSL_URL
Packit 4e8bc4
Packit 4e8bc4
        If it's already installed, specify its path using --with-libssl=/dir/
Packit 4e8bc4
  ])
Packit 4e8bc4
    fi
Packit 4e8bc4
  ])
Packit 4e8bc4
  LIBS="-lssl -lcrypto $LIBS"
Packit 4e8bc4
  if test $ac_cv_libssl_dir != "(system)"; then
Packit 4e8bc4
    if test -d "$ac_cv_libssl_dir/lib" ; then
Packit 4e8bc4
      LDFLAGS="-L$ac_cv_libssl_dir/lib $LDFLAGS"
Packit 4e8bc4
      le_libdir="$ac_cv_libssl_dir/lib"
Packit 4e8bc4
    else
Packit 4e8bc4
      LDFLAGS="-L$ac_cv_libssl_dir $LDFLAGS"
Packit 4e8bc4
      le_libdir="$ac_cv_libssl_dir"
Packit 4e8bc4
    fi
Packit 4e8bc4
    if test -d "$ac_cv_libssl_dir/include" ; then
Packit 4e8bc4
      CPPFLAGS="-I$ac_cv_libssl_dir/include $CPPFLAGS"
Packit 4e8bc4
    else
Packit 4e8bc4
      CPPFLAGS="-I$ac_cv_libssl_dir $CPPFLAGS"
Packit 4e8bc4
    fi
Packit 4e8bc4
  fi
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
dnl ----------------------------------------------------------------------------
Packit 4e8bc4
Packit 4e8bc4
AC_SEARCH_LIBS(umem_cache_create, umem)
Packit 4e8bc4
AC_SEARCH_LIBS(gethugepagesizes, hugetlbfs)
Packit 4e8bc4
Packit 4e8bc4
AC_HEADER_STDBOOL
Packit 4e8bc4
AH_BOTTOM([#if HAVE_STDBOOL_H
Packit 4e8bc4
#include <stdbool.h>
Packit 4e8bc4
#else
Packit 4e8bc4
#define bool char
Packit 4e8bc4
#define false 0
Packit 4e8bc4
#define true 1
Packit 4e8bc4
#endif ])
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_HEADERS([inttypes.h])
Packit 4e8bc4
AH_BOTTOM([#ifdef HAVE_INTTYPES_H
Packit 4e8bc4
#include <inttypes.h>
Packit 4e8bc4
#endif
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl Figure out if this system has the stupid sasl_callback_ft
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
Packit 4e8bc4
AC_DEFUN([AC_HAVE_SASL_CALLBACK_FT],
Packit 4e8bc4
[AC_CACHE_CHECK(for sasl_callback_ft, ac_cv_has_sasl_callback_ft,
Packit 4e8bc4
[
Packit 4e8bc4
  AC_TRY_COMPILE([
Packit 4e8bc4
    #ifdef HAVE_SASL_SASL_H
Packit 4e8bc4
    #include <sasl/sasl.h>
Packit 4e8bc4
    #include <sasl/saslplug.h>
Packit 4e8bc4
    #endif
Packit 4e8bc4
  ],[
Packit 4e8bc4
    sasl_callback_ft a_callback;
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_has_sasl_callback_ft=yes
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_has_sasl_callback_ft=no
Packit 4e8bc4
  ])
Packit 4e8bc4
])
Packit 4e8bc4
if test $ac_cv_has_sasl_callback_ft = yes; then
Packit 4e8bc4
  AC_DEFINE(HAVE_SASL_CALLBACK_FT, 1, [we have sasl_callback_ft])
Packit 4e8bc4
fi
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_HAVE_SASL_CALLBACK_FT
Packit 4e8bc4
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
dnl DETECT_UINT64_SUPPORT
Packit 4e8bc4
dnl
Packit 4e8bc4
dnl check if we can use a uint64_t
Packit 4e8bc4
dnl **********************************************************************
Packit 4e8bc4
AC_DEFUN([AC_C_DETECT_UINT64_SUPPORT],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_CACHE_CHECK([for print macros for integers (C99 section 7.8.1)],
Packit 4e8bc4
        [ac_cv_c_uint64_support],
Packit 4e8bc4
        [AC_TRY_COMPILE(
Packit 4e8bc4
            [
Packit 4e8bc4
#ifdef HAVE_INTTYPES_H
Packit 4e8bc4
#include <inttypes.h>
Packit 4e8bc4
#endif
Packit 4e8bc4
#include <stdio.h>
Packit 4e8bc4
            ], [
Packit 4e8bc4
  uint64_t val = 0;
Packit 4e8bc4
  fprintf(stderr, "%" PRIu64 "\n", val);
Packit 4e8bc4
            ],
Packit 4e8bc4
            [ ac_cv_c_uint64_support=yes ],
Packit 4e8bc4
            [ ac_cv_c_uint64_support=no ])
Packit 4e8bc4
        ])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_C_DETECT_UINT64_SUPPORT
Packit 4e8bc4
AS_IF([test "x$ac_cv_c_uint64_support" = "xno"],
Packit 4e8bc4
      [AC_MSG_WARN([
Packit 4e8bc4
Packit 4e8bc4
Failed to use print macros (PRIu) as defined in C99 section 7.8.1.
Packit 4e8bc4
Packit 4e8bc4
])])
Packit 4e8bc4
Packit 4e8bc4
AC_C_CONST
Packit 4e8bc4
Packit 4e8bc4
dnl From licq: Copyright (c) 2000 Dirk Mueller
Packit 4e8bc4
dnl Check if the type socklen_t is defined anywhere
Packit 4e8bc4
AC_DEFUN([AC_C_SOCKLEN_T],
Packit 4e8bc4
[AC_CACHE_CHECK(for socklen_t, ac_cv_c_socklen_t,
Packit 4e8bc4
[
Packit 4e8bc4
  AC_TRY_COMPILE([
Packit 4e8bc4
    #include <sys/types.h>
Packit 4e8bc4
    #include <sys/socket.h>
Packit 4e8bc4
  ],[
Packit 4e8bc4
    socklen_t foo;
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_c_socklen_t=yes
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_c_socklen_t=no
Packit 4e8bc4
  ])
Packit 4e8bc4
])
Packit 4e8bc4
if test $ac_cv_c_socklen_t = no; then
Packit 4e8bc4
  AC_DEFINE(socklen_t, int, [define to int if socklen_t not available])
Packit 4e8bc4
fi
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_C_SOCKLEN_T
Packit 4e8bc4
Packit 4e8bc4
dnl Check if we're a little-endian or a big-endian system, needed by hash code
Packit 4e8bc4
AC_C_BIGENDIAN(
Packit 4e8bc4
  [AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])],
Packit 4e8bc4
  [AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])],
Packit 4e8bc4
  [AC_MSG_ERROR([Cannot detect endianness. Must pass ac_cv_c_bigendian={yes,no} to configure.])])
Packit 4e8bc4
Packit 4e8bc4
AC_DEFUN([AC_C_HTONLL],
Packit 4e8bc4
[
Packit 4e8bc4
    AC_MSG_CHECKING([for htonll])
Packit 4e8bc4
    have_htoll="no"
Packit 4e8bc4
    AC_TRY_LINK([
Packit 4e8bc4
#include <sys/types.h>
Packit 4e8bc4
#include <netinet/in.h>
Packit 4e8bc4
#ifdef HAVE_INTTYPES_H
Packit 4e8bc4
#include <inttypes.h> */
Packit 4e8bc4
#endif
Packit 4e8bc4
       ], [
Packit 4e8bc4
          return htonll(0);
Packit 4e8bc4
       ], [
Packit 4e8bc4
          have_htoll="yes"
Packit 4e8bc4
          AC_DEFINE([HAVE_HTONLL], [1], [Have ntohll])
Packit 4e8bc4
    ], [
Packit 4e8bc4
          have_htoll="no"
Packit 4e8bc4
    ])
Packit 4e8bc4
Packit 4e8bc4
    AC_MSG_RESULT([$have_htoll])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_C_HTONLL
Packit 4e8bc4
Packit 4e8bc4
dnl Check whether the user's system supports pthread
Packit 4e8bc4
AC_SEARCH_LIBS(pthread_create, pthread)
Packit 4e8bc4
if test "x$ac_cv_search_pthread_create" = "xno"; then
Packit 4e8bc4
  AC_MSG_ERROR([Can't enable threads without the POSIX thread library.])
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_FUNCS(mlockall)
Packit 4e8bc4
AC_CHECK_FUNCS(getpagesizes)
Packit 4e8bc4
AC_CHECK_FUNCS(sysconf)
Packit 4e8bc4
AC_CHECK_FUNCS(memcntl)
Packit 4e8bc4
AC_CHECK_FUNCS(sigignore)
Packit 4e8bc4
AC_CHECK_FUNCS(clock_gettime)
Packit 4e8bc4
AC_CHECK_FUNCS([accept4], [AC_DEFINE(HAVE_ACCEPT4, 1, [Define to 1 if support accept4])])
Packit 4e8bc4
AC_CHECK_FUNCS([getopt_long], [AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define to 1 if support getopt_long])])
Packit 4e8bc4
Packit 4e8bc4
dnl Need to disable opt for alignment check. GCC is too clever and turns this
Packit 4e8bc4
dnl into wide stores and no cmp under O2.
Packit 4e8bc4
AC_DEFUN([AC_C_ALIGNMENT],
Packit 4e8bc4
[AC_CACHE_CHECK(for alignment, ac_cv_c_alignment,
Packit 4e8bc4
[
Packit 4e8bc4
  AC_RUN_IFELSE(
Packit 4e8bc4
    [AC_LANG_PROGRAM([
Packit 4e8bc4
#include <stdlib.h>
Packit 4e8bc4
#include <inttypes.h>
Packit 4e8bc4
#pragma GCC optimize ("O0")
Packit 4e8bc4
    ], [
Packit 4e8bc4
       char *buf = malloc(32);
Packit 4e8bc4
Packit 4e8bc4
       uint64_t *ptr = (uint64_t*)(buf+2);
Packit 4e8bc4
       // catch sigbus, etc.
Packit 4e8bc4
       *ptr = 0x1;
Packit 4e8bc4
Packit 4e8bc4
       // catch unaligned word access (ARM cpus)
Packit 4e8bc4
#ifdef ENDIAN_BIG
Packit 4e8bc4
#define ALIGNMENT 0x02030405
Packit 4e8bc4
#else
Packit 4e8bc4
#define ALIGNMENT 0x05040302
Packit 4e8bc4
#endif
Packit 4e8bc4
       *(buf + 0) = 1;
Packit 4e8bc4
       *(buf + 1) = 2;
Packit 4e8bc4
       *(buf + 2) = 3;
Packit 4e8bc4
       *(buf + 3) = 4;
Packit 4e8bc4
       *(buf + 4) = 5;
Packit 4e8bc4
       int* i = (int*)(buf+1);
Packit 4e8bc4
       return (ALIGNMENT == *i) ? 0 : 1;
Packit 4e8bc4
    ])
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_c_alignment=none
Packit 4e8bc4
  ],[
Packit 4e8bc4
    ac_cv_c_alignment=need
Packit 4e8bc4
  ],[
Packit 4e8bc4
    dnl cross compile
Packit 4e8bc4
    ac_cv_c_alignment=maybe
Packit 4e8bc4
  ])
Packit 4e8bc4
])
Packit 4e8bc4
AS_IF([test $ac_cv_c_alignment = need],
Packit 4e8bc4
  [AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
Packit 4e8bc4
AS_IF([test $ac_cv_c_alignment = maybe],
Packit 4e8bc4
  [AC_MSG_WARN([Assuming aligned access is required when cross-compiling])
Packit 4e8bc4
   AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_C_ALIGNMENT
Packit 4e8bc4
Packit 4e8bc4
dnl Check for our specific usage of GCC atomics.
Packit 4e8bc4
dnl These were added in 4.1.2, but 32bit OS's may lack shorts and 4.1.2
Packit 4e8bc4
dnl lacks testable defines.
Packit 4e8bc4
have_gcc_atomics=no
Packit 4e8bc4
AC_MSG_CHECKING(for GCC atomics)
Packit 4e8bc4
AC_TRY_LINK([],[
Packit 4e8bc4
  unsigned short a;
Packit 4e8bc4
  unsigned short b;
Packit 4e8bc4
  b = __sync_add_and_fetch(&a, 1);
Packit 4e8bc4
  b = __sync_sub_and_fetch(&a, 2);
Packit 4e8bc4
  ],[have_gcc_atomics=yes
Packit 4e8bc4
  AC_DEFINE(HAVE_GCC_ATOMICS, 1, [GCC Atomics available])])
Packit 4e8bc4
AC_MSG_RESULT($have_gcc_atomics)
Packit 4e8bc4
Packit 4e8bc4
dnl Check for usage of 64bit atomics
Packit 4e8bc4
dnl 32bit systems shouldn't have these.
Packit 4e8bc4
have_gcc_64atomics=no
Packit 4e8bc4
AC_MSG_CHECKING(for GCC 64bit atomics)
Packit 4e8bc4
AC_TRY_LINK([#include <inttypes.h>
Packit 4e8bc4
   ],[
Packit 4e8bc4
  uint64_t a;
Packit 4e8bc4
  uint64_t b;
Packit 4e8bc4
  b = __sync_add_and_fetch(&a, 1);
Packit 4e8bc4
  b = __sync_sub_and_fetch(&a, 2);
Packit 4e8bc4
  ],[have_gcc_64atomics=yes
Packit 4e8bc4
  AC_DEFINE(HAVE_GCC_64ATOMICS, 1, [GCC 64bit Atomics available])])
Packit 4e8bc4
AC_MSG_RESULT($have_gcc_64atomics)
Packit 4e8bc4
Packit 4e8bc4
dnl Check for the requirements for running memcached with less privileges
Packit 4e8bc4
dnl than the default privilege set. On Solaris we need setppriv and priv.h
Packit 4e8bc4
dnl If you want to add support for other platforms you should check for
Packit 4e8bc4
dnl your requirements, define HAVE_DROP_PRIVILEGES, and make sure you add
Packit 4e8bc4
dnl the source file containing the implementation into memcached_SOURCE
Packit 4e8bc4
dnl in Makefile.am
Packit 4e8bc4
AC_CHECK_FUNCS(setppriv, [
Packit 4e8bc4
   AC_CHECK_HEADER(priv.h, [
Packit 4e8bc4
      AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
Packit 4e8bc4
         [Define this if you have an implementation of drop_privileges()])
Packit 4e8bc4
      build_solaris_privs=yes
Packit 4e8bc4
   ], [])
Packit 4e8bc4
],[])
Packit 4e8bc4
Packit 4e8bc4
AS_IF([test "x$enable_seccomp" = "xyes" ], [
Packit 4e8bc4
   AC_CHECK_LIB(seccomp, seccomp_rule_add, [
Packit 4e8bc4
      AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
Packit 4e8bc4
         [Define this if you have an implementation of drop_privileges()])
Packit 4e8bc4
      build_linux_privs=yes
Packit 4e8bc4
      AC_DEFINE([HAVE_DROP_WORKER_PRIVILEGES], 1,
Packit 4e8bc4
         [Define this if you have an implementation of drop_worker_privileges()])
Packit 4e8bc4
      build_linux_privs=yes
Packit 4e8bc4
   ], [])
Packit 4e8bc4
])
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_FUNCS(pledge, [
Packit 4e8bc4
   AC_CHECK_HEADER(unistd.h, [
Packit 4e8bc4
      AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
Packit 4e8bc4
         [Define this if you have an implementation of drop_privileges()])
Packit 4e8bc4
      build_openbsd_privs=yes
Packit 4e8bc4
   ], [])
Packit 4e8bc4
],[])
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_FUNCS(cap_enter, [
Packit 4e8bc4
   AC_CHECK_HEADER(sys/capsicum.h, [
Packit 4e8bc4
      AC_DEFINE([HAVE_DROP_PRIVILEGES], 1,
Packit 4e8bc4
         [Define this if you have an implementation of drop_privileges()])
Packit 4e8bc4
      build_freebsd_privs=yes
Packit 4e8bc4
   ], [])
Packit 4e8bc4
],[])
Packit 4e8bc4
Packit 4e8bc4
Packit 4e8bc4
AM_CONDITIONAL([BUILD_SOLARIS_PRIVS],[test "$build_solaris_privs" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([BUILD_LINUX_PRIVS],[test "$build_linux_privs" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([BUILD_OPENBSD_PRIVS],[test "$build_openbsd_privs" = "yes"])
Packit 4e8bc4
AM_CONDITIONAL([BUILD_FREEBSD_PRIVS],[test "$build_freebsd_privs" = "yes"])
Packit 4e8bc4
Packit 4e8bc4
AC_CHECK_HEADER(umem.h, [
Packit 4e8bc4
   AC_DEFINE([HAVE_UMEM_H], 1,
Packit 4e8bc4
         [Define this if you have umem.h])
Packit 4e8bc4
   build_cache=no
Packit 4e8bc4
], [build_cache=yes])
Packit 4e8bc4
Packit 4e8bc4
AM_CONDITIONAL([BUILD_CACHE], [test "x$build_cache" = "xyes"])
Packit 4e8bc4
Packit 4e8bc4
AC_ARG_ENABLE(docs,
Packit 4e8bc4
  [AS_HELP_STRING([--disable-docs],[Disable documentation generation])])
Packit 4e8bc4
Packit 4e8bc4
AC_PATH_PROG([XML2RFC], [xml2rfc], "no")
Packit 4e8bc4
AC_PATH_PROG([XSLTPROC], [xsltproc], "no")
Packit 4e8bc4
Packit 4e8bc4
AM_CONDITIONAL([BUILD_SPECIFICATIONS],
Packit 4e8bc4
               [test "x$enable_docs" != "xno" -a "x$XML2RFC" != "xno" -a "x$XSLTPROC" != "xno"])
Packit 4e8bc4
Packit 4e8bc4
Packit 4e8bc4
dnl Let the compiler be a bit more picky. Please note that you cannot
Packit 4e8bc4
dnl specify these flags to the compiler before AC_CHECK_FUNCS, because
Packit 4e8bc4
dnl the test program will generate a compilation warning and hence fail
Packit 4e8bc4
dnl to detect the function ;-)
Packit 4e8bc4
if test "$ICC" = "yes"
Packit 4e8bc4
then
Packit 4e8bc4
   dnl ICC trying to be gcc.
Packit 4e8bc4
   CFLAGS="$CFLAGS -diag-disable 187 -Wall -Werror"
Packit 4e8bc4
   AC_DEFINE([_GNU_SOURCE],[1],[find sigignore on Linux])
Packit 4e8bc4
elif test "$GCC" = "yes"
Packit 4e8bc4
then
Packit 4e8bc4
  GCC_VERSION=`$CC -dumpversion`
Packit 4e8bc4
  CFLAGS="$CFLAGS -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls"
Packit 4e8bc4
  if test "x$enable_asan" = "xyes"; then
Packit 4e8bc4
    CFLAGS="$CFLAGS -fsanitize=address"
Packit 4e8bc4
  fi
Packit 4e8bc4
  case $GCC_VERSION in
Packit 4e8bc4
    4.4.*)
Packit 4e8bc4
    CFLAGS="$CFLAGS -fno-strict-aliasing"
Packit 4e8bc4
    ;;
Packit 4e8bc4
  esac
Packit 4e8bc4
  AC_DEFINE([_GNU_SOURCE],[1],[find sigignore on Linux])
Packit 4e8bc4
elif test "$SUNCC" = "yes"
Packit 4e8bc4
then
Packit 4e8bc4
  CFLAGS="$CFLAGS -errfmt=error -errwarn -errshort=tags"
Packit 4e8bc4
fi
Packit 4e8bc4
Packit 4e8bc4
AC_CONFIG_FILES(Makefile doc/Makefile)
Packit 4e8bc4
AC_OUTPUT