added gnutls backend and moved backend code into new files
[ircu2.10.12-pk.git] / configure.in
index 24f856bbf9d2c79622bb86d4ba023835a982e60b..fd1a4102f065306d3078efdbbc568dcbdc24d786 100644 (file)
@@ -715,8 +715,55 @@ AC_MSG_RESULT([$unet_cv_with_maxcon])
 AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $unet_cv_with_maxcon,
 [Maximum number of network connections])
 
+unet_cv_enable_gnutls="no"
+unet_cv_enable_openssl="yes"
+
+AC_MSG_CHECKING([for GnuTLS])
+AC_ARG_ENABLE([gnutls],
+  [  --enable-gnutls          Enables GnuTLS ssl backend.],
+  [unet_cv_enable_gnutls=$enable_gnutls],
+)
+AC_MSG_RESULT([$unet_cv_enable_gnutls])
+
+AC_MSG_CHECKING([for OpenSSL])
+AC_ARG_ENABLE([openssl],
+  [  --enable-openssl          Enables OpenSSL ssl backend.],
+  [unet_cv_enable_openssl=$enable_openssl],
+)
+AC_MSG_RESULT([$unet_cv_enable_openssl])
+
+if test x"$unet_cv_enable_gnutls" = xyes; then
+  unet_cv_enable_gnutls="no";
+  AC_CHECK_LIB(gnutls, gnutls_init, [
+    AC_CHECK_HEADERS(gnutls/gnutls.h, [
+      unet_cv_enable_gnutls="yes";
+    ])
+  ])
+fi
+
+if test x"$unet_cv_enable_openssl" = xyes; then
+  unet_cv_enable_openssl="no";
+  AC_CHECK_LIB(ssl, SSL_read, [
+    AC_CHECK_LIB(crypto, X509_new, [
+      AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h, [
+        unet_cv_enable_openssl="yes";
+      ])
+    ])
+  ])
+fi
+
+if test x"$unet_cv_enable_gnutls" = xyes; then
+    LIBS="$LIBS -lgnutls"
+    AC_DEFINE([HAVE_GNUTLS], 1, [Define if you are using GnuTLS])
+fi
+
+if test x"$unet_cv_enable_openssl" = xyes ; then
+    LIBS="$LIBS -lssl -lcrypto"
+    AC_DEFINE([HAVE_OPENSSL], 1, [Define if you are using OpenSSL])
+fi
+
 dnl Finally really generate all output files:
-AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile doc/Makefile, [echo timestamp > stamp-h])
+AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile, [echo timestamp > stamp-h])
 
 dnl Report configuration
 AC_OUTPUT_COMMANDS([echo "
@@ -730,6 +777,8 @@ ircu is now hopefully configured for your system.
   Profile:             $unet_cv_enable_profile
   Owner/mode:          $unet_cv_with_owner.$unet_cv_with_group ($unet_cv_with_mode)
   Chroot:              $unet_cv_with_chroot
+  OpenSSL:             $unet_cv_enable_openssl
+  GnuTLS:              $unet_cv_enable_gnutls
 
   Domain:              $unet_cv_with_domain
   DPath:               $unet_cv_with_dpath