# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
-AC_INIT([umurmur], [0.2.6], [http://code.google.com/p/umurmur/issues/entry], [umurmur], [http://code.google.com/p/umurmur])
+AC_INIT([umurmur], [0.2.14], [http://code.google.com/p/umurmur/issues/entry], [umurmur], [http://code.google.com/p/umurmur])
AC_CONFIG_SRCDIR([src/client.h])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE
# Configure options.
-AC_ARG_WITH([openssl], [AC_HELP_STRING([--with-openssl], [force use of openssl])], [], [with_openssl=no])
+AC_ARG_WITH([ssl], [AC_HELP_STRING([--with-ssl=@<:@LIB@:>@], [SSL library (openssl|polarssl) @<:@default=polarssl@:>@])], [], [with_ssl=polarssl])
+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])
# Checks for programs.
AC_PROG_CC
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_HEADERS([libconfig.h], [], [AC_MSG_ERROR([could not find libconfig.h])])
-AC_CHECK_LIB([config], [config_init], [], [AC_MSG_ERROR([could not find config])])
-AS_IF([test "x$with_openssl" == xno], [
- AC_CHECK_HEADERS([polarssl/ssl.h])
- AC_CHECK_LIB([polarssl], [ssl_init])
+AC_CHECK_LIB([config], [config_init], [], [AC_MSG_ERROR([could not find libconfig])])
+AS_IF([test "x$with_ssl" = xpolarssl], [
+ AC_CHECK_HEADERS([polarssl/ssl.h], [], [AC_MSG_ERROR([could not find polarssl/ssl.h])])
+ AC_CHECK_HEADERS([polarssl/version.h], [], [AC_MSG_ERROR([could not find polarssl/version.h])])
+ AC_CHECK_LIB([polarssl], [ssl_init], [], [AC_MSG_ERROR([could not find libpolarssl])])
+ AC_DEFINE([USE_POLARSSL], [], [Use PolarSSL])
+ AS_IF([test "x$enable_polarssl_test_cert" = xyes], [
+ AC_CHECK_LIB([polarssl], [test_srv_crt], [], [AC_MSG_ERROR([could not find test_srv_crt])])
+ AC_DEFINE([USE_POLARSSL_TESTCERT], [], [Use PolarSSL test certificate])
+ ])
+ AS_IF([test "x$enable_polarssl_havege" = xyes], [
+ AC_CHECK_LIB([polarssl], [havege_init], [], [AC_MSG_ERROR([could not find havege_init])])
+ AC_DEFINE([USE_POLARSSL_HAVEGE], [], [Use PolarSSL HAVEGE random generator])
+ ])
+])
+AS_IF([test "x$with_ssl" = xopenssl], [
+ AC_CHECK_HEADERS([openssl/ssl.h], [], [AC_MSG_ERROR([could not find openssl/ssl.h])])
+ 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])])
])
-AC_CHECK_HEADERS([openssl/ssl.h])
-AC_CHECK_LIB([ssl], [SSL_library_init])
-AC_CHECK_LIB([crypto], [BN_init])
# Checks for header files.
AC_FUNC_ALLOCA
-AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h malloc.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h syslog.h unistd.h], [], [AC_MSG_ERROR([missing a required header])])
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h netinet/tcp.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h syslog.h unistd.h sys/poll.h], [], [AC_MSG_ERROR([missing a required header])])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_TYPE_UINT8_T
# Checks for library functions.
-AC_FUNC_FORK
-#AC_FUNC_MALLOC
-AC_CHECK_FUNCS([ftruncate gettimeofday inet_ntoa memchr memmove memset socket strdup strerror strrchr uname], [], [AC_MSG_ERROR([missing a required func])])
-
-# Choose PolarSSL as default if present, fallback on OpenSSL if not or if --with-openssl was specified.
-AS_IF([test "x$with_openssl" == xno -a "x$ac_cv_lib_polarssl_ssl_init" == xyes -a "x$ac_cv_header_polarssl_ssl_h" == xyes],
- [
- AC_DEFINE([USE_POLARSSL], [], [Use PolarSSL])
- AC_MSG_NOTICE([Using PolarSSL as SSL library])
- ],
- [AS_IF([test "x$ac_cv_lib_ssl_SSL_library_init" != xyes -o "x$ac_cv_lib_crypto_BN_init" != xyes -o "x$ac_cv_header_openssl_ssl_h" != xyes],
- [AS_IF([test "x$with_openssl" != xno],
- [AC_MSG_ERROR([OpenSSL not found])],
- [AC_MSG_ERROR([could not find any ssl library])])],
- [AC_MSG_NOTICE([Using OpenSSL as SSL library])])]
-)
+AC_CHECK_FUNCS([ftruncate gettimeofday inet_ntoa memchr memmove memset socket strdup strerror strrchr uname poll clock_gettime], [], [AC_MSG_ERROR([missing a required func])])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT