Blame configure.ac

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