# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
-AC_INIT([umurmur], [0.2.14], [http://code.google.com/p/umurmur/issues/entry], [umurmur], [http://code.google.com/p/umurmur])
+AC_INIT([umurmur], [0.2.16], [https://github.com/umurmur/umurmur/issues/new], [umurmur], [http://github.com/umurmur/umurmur])
AC_CONFIG_SRCDIR([src/client.h])
-AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_HEADERS([src/config.h:config.h.in])
AM_INIT_AUTOMAKE
AC_CANONICAL_HOST
+AM_SILENT_RULES([yes])
# Configure options.
-AC_ARG_WITH([ssl], [AC_HELP_STRING([--with-ssl=@<:@LIB@:>@], [SSL library (openssl|polarssl) @<:@default=polarssl@:>@])], [], [with_ssl=polarssl])
+AC_ARG_WITH([ssl], [AC_HELP_STRING([--with-ssl=@<:@LIB@:>@], [SSL library (openssl|polarssl|gnutls) @<:@default=polarssl@:>@])], [], [with_ssl=polarssl])
+AC_ARG_ENABLE([shmapi], [AC_HELP_STRING([--enable-shmapi], [compile with Sharedmemory API support @<:@default=no@:>@])],[],[enable_shmapi=no] )
AC_ARG_ENABLE(polarssl-test-cert, [ --enable-polarssl-test-cert Link to PolarSSL test certificate and key @<:@default=no@:>@], [enable_polarssl_test_cert=yes])
-AC_ARG_ENABLE(polarssl-havege, [ --enable-polarssl-havege Link to PolarSSL HAVEGE random generator key @<:@default=no@:>@ Deafult: /dev/urandom], [enable_polarssl_havege=yes])
+AC_ARG_ENABLE(polarssl-havege, [ --enable-polarssl-havege Link to PolarSSL HAVEGE random generator key @<:@default=no@:>@ Default: /dev/urandom], [enable_polarssl_havege=yes])
# Checks for programs.
AC_PROG_CC
# Checks dependencies.
AC_CHECK_HEADERS([google/protobuf-c/protobuf-c.h], [], [AC_MSG_ERROR([could not find google/protobuf-c/protobuf-c.h])])
-AC_CHECK_LIB([protobuf-c], [protobuf_c_data_buffer_init], [], [AC_MSG_ERROR([could not find protobuf-c library])])
+AC_CHECK_LIB([protobuf-c], [protobuf_c_message_init], [], [AC_MSG_ERROR([could not find protobuf-c library])])
AC_CHECK_HEADERS([libconfig.h], [], [AC_MSG_ERROR([could not find libconfig.h])])
AC_CHECK_LIB([config], [config_init], [], [AC_MSG_ERROR([could not find libconfig])])
case $host_os in
darwin* )
AC_CHECK_FUNC([clock_get_time], [], [AC_MSG_ERROR([could not find clock_get_time()])])
+ CFLAGS+=" -Wno-deprecated-declarations"
;;
* )
AC_CHECK_FUNC([clock_gettime], [], [AC_CHECK_LIB([rt], [clock_gettime], [], [AC_MSG_ERROR([could not find clock_gettime() in librt])])])
AC_CHECK_LIB([crypto], [BN_init], [], [AC_MSG_ERROR([could not find libcrypto])])
AC_CHECK_LIB([ssl], [SSL_library_init], [], [AC_MSG_ERROR([could not find libssl])])
])
+AS_IF([test "x$with_ssl" = xgnutls], [
+ AC_CHECK_HEADERS([gnutls/gnutls.h], [], [AC_MSG_ERROR([could not find gnutls/gnutls.h])])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([@%:@include <gnutls/gnutls.h>],
+ [ #ifdef GNUTLS_E_PREMATURE_TERMINATION
+ #else
+ #error Unsuitable version of GnuTLS
+ #endif
+ ])], [], [AC_MSG_ERROR([Unsuitable version of GnuTL, minimum required is 3.0])])
+ AC_CHECK_LIB([gnutls], [gnutls_priority_init], [], [AC_MSG_ERROR([could not find libgnutls])])
+ AC_CHECK_LIB([nettle], [_nettle_aes_decrypt], [], [AC_MSG_ERROR([could not find libnettle])])
+ AC_DEFINE([USE_GNUTLS], [], [Use GnuTLS])
+])
+
+AM_CONDITIONAL(USE_OPENSSL, test x$with_ssl = xopenssl)
+AM_CONDITIONAL(USE_GNUTLS, test x$with_ssl = xgnutls)
+
+AS_IF([test "x$enable_shmapi" != xno],
+ [
+ AM_CONDITIONAL(USE_SHAREDMEMORY_API, true)
+ AC_DEFINE([USE_SHAREDMEMORY_API],[],[Use sharedmemory API])
+ AC_CHECK_FUNC([shm_open], [], [AC_CHECK_LIB([rt], [shm_open], [], [AC_MSG_ERROR([could not find shm_open() in librt])])])
+ ], [
+ AM_CONDITIONAL(USE_SHAREDMEMORY_API, false)
+])
+
+AC_DEFINE([DEFAULT_CONFIG], ["/etc/umurmur.conf"], [Default config])
# Checks for header files.
AC_FUNC_ALLOCA
AC_TYPE_UINT8_T
# Checks for library functions.
-AC_CHECK_FUNCS([ftruncate gettimeofday inet_ntoa memchr memmove memset socket strdup strerror strrchr uname poll], [], [AC_MSG_ERROR([missing a required func])])
+AC_CHECK_FUNCS([ftruncate gettimeofday inet_ntoa memchr memmove memset socket strdup strrchr uname poll], [], [AC_MSG_ERROR([missing a required func])])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT