-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])])
+case $host_os in
+ darwin* )
+ AC_CHECK_FUNC([clock_get_time], [], [AC_MSG_ERROR([could not find clock_get_time()])])
+ ;;
+ * )
+ AC_CHECK_FUNC([clock_gettime], [], [AC_CHECK_LIB([rt], [clock_gettime], [], [AC_MSG_ERROR([could not find clock_gettime() in librt])])])
+ ;;
+esac
+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_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <polarssl/ssl.h>]],
+ [[#if defined(POLARSSL_ZLIB_SUPPORT)
+ int x;
+ #endif
+ x = 0;
+ return 0;]])],
+ [AC_CHECK_LIB([z], [deflate], [], [AC_MSG_ERROR([could not find zlib])])],
+ [])
+ 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])
+ ])