Peter Stuge wrote:
> * Neither --without-x nor --with-x=no makes configure skip the check
> * --with-x=/path is prefered over --with-x-prefix=/path
..
> it should be similar to what happens for OpenSSL and I'd also
> like to remove the LDFLAGS and CFLAGS stuff; AC_LIB_HAVE_LINKFLAGS
> already sets LTLIBGCRYPT and LTLIBMBEDTLS anyway.

Here's my proposed patch. If no objections I'll send a proper commit.


//Peter
diff --git a/acinclude.m4 b/acinclude.m4
index 06583e9..28b85c2 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -382,80 +382,56 @@ AC_DEFUN([CURL_CONFIGURE_REENTRANT], [
   #
 ])
 
-AC_DEFUN([LIBSSH2_CHECKFOR_MBEDTLS], [
-
-  old_LDFLAGS=$LDFLAGS
-  old_CFLAGS=$CFLAGS
-  if test -n "$use_mbedtls" && test "$use_mbedtls" != "no"; then
-    LDFLAGS="$LDFLAGS -L$use_mbedtls/lib"
-    CFLAGS="$CFLAGS -I$use_mbedtls/include"
+AC_DEFUN([LIBSSH2_CHECKFOR_OPENSSL], [
+  if test "$found_crypto" = "none" && test "$use_openssl" != "no"; then
+    AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [#include <openssl/ssl.h>])
   fi
+  if test "$ac_cv_libssl" = "yes"; then
+    AC_DEFINE(LIBSSH2_OPENSSL, 1, [Use OpenSSL])
+    LIBSREQUIRED=libssl,libcrypto
 
-  if test "$use_mbedtls" != "no"; then
-    AC_LIB_HAVE_LINKFLAGS([mbedtls], [], [
-      #include <mbedtls/version.h>
-    ])
-  fi
+    # Not all OpenSSL have AES-CTR functions.
+    save_LIBS="$LIBS"
+    LIBS="$LIBS $LIBSSL"
+    AC_CHECK_FUNCS(EVP_aes_128_ctr)
+    LIBS="$save_LIBS"
 
-  if test "$ac_cv_libmbedtls" = "yes"; then
-    AC_DEFINE(LIBSSH2_MBEDTLS, 1, [Use mbedtls])
-    LIBSREQUIRED= # mbedtls doesn't provide a .pc file
-    LIBS="$LIBS -lmbedtls -lmbedcrypto"
-    found_crypto=libmbedtls
-    support_clear_memory=yes
-  else
-    # restore
-    LDFLAGS=$old_LDFLAGS
-    CFLAGS=$old_CFLAGS
+    found_crypto="OpenSSL (AES-CTR: ${ac_cv_func_EVP_aes_128_ctr:-N/A})"
   fi
 ])
 
 AC_DEFUN([LIBSSH2_CHECKFOR_GCRYPT], [
-
-  old_LDFLAGS=$LDFLAGS
-  old_CFLAGS=$CFLAGS
-  if test -n "$use_libgcrypt" && test "$use_libgcrypt" != "no"; then
-    LDFLAGS="$LDFLAGS -L$use_libgcrypt/lib"
-    CFLAGS="$CFLAGS -I$use_libgcrypt/include"
-  fi
-
-  if test "$use_libgcrypt" != "no"; then
-    AC_LIB_HAVE_LINKFLAGS([gcrypt], [], [
-      #include <gcrypt.h>
-    ])
+  if test "$found_crypto" = "none" && test "$use_libgcrypt" != "no"; then
+    AC_LIB_HAVE_LINKFLAGS([gcrypt], [], [#include <gcrypt.h>])
   fi
-
   if test "$ac_cv_libgcrypt" = "yes"; then
     AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use libgcrypt])
     LIBSREQUIRED= # libgcrypt doesn't provide a .pc file. sad face.
     LIBS="$LIBS -lgcrypt"
     found_crypto=libgcrypt
-  else
-    # restore
-    LDFLAGS=$old_LDFLAGS
-    CFLAGS=$old_CFLAGS
   fi
 ])
 
-
 AC_DEFUN([LIBSSH2_CHECKFOR_WINCNG], [
+  if test "$found_crypto" = "none" && test "$use_wincng" != "no"; then
 
-  # Look for Windows Cryptography API: Next Generation
+    # Look for Windows Cryptography API: Next Generation
 
-  AC_LIB_HAVE_LINKFLAGS([bcrypt], [], [
-    #include <windows.h>
-    #include <bcrypt.h>
-  ])
-  AC_LIB_HAVE_LINKFLAGS([crypt32], [], [
-    #include <windows.h>
-    #include <wincrypt.h>
-  ])
-  AC_CHECK_HEADERS([ntdef.h ntstatus.h], [], [], [
-    #include <windows.h>
-  ])
-  AC_CHECK_DECLS([SecureZeroMemory], [], [], [
-    #include <windows.h>
-  ])
+    AC_LIB_HAVE_LINKFLAGS([bcrypt], [], [
+      #include <windows.h>
+      #include <bcrypt.h>
+    ])
+    AC_LIB_HAVE_LINKFLAGS([crypt32], [], [
+      #include <windows.h>
+      #include <wincrypt.h>
+    ])
+    AC_CHECK_HEADERS([ntdef.h ntstatus.h], [], [], [
+      #include <windows.h>
+    ])
+    AC_CHECK_DECLS([SecureZeroMemory], [], [], [
+      #include <windows.h>
+    ])
+  fi
 
   if test "$ac_cv_libbcrypt" = "yes"; then
     AC_DEFINE(LIBSSH2_WINCNG, 1, [Use Windows CNG])
@@ -470,3 +446,16 @@ AC_DEFUN([LIBSSH2_CHECKFOR_WINCNG], [
     fi
   fi
 ])
+
+AC_DEFUN([LIBSSH2_CHECKFOR_MBEDTLS], [
+  if test "$found_crypto" = "none" && test "$use_mbedtls" != "no"; then
+    AC_LIB_HAVE_LINKFLAGS([mbedtls], [], [#include <mbedtls/version.h>])
+  fi
+  if test "$ac_cv_libmbedtls" = "yes"; then
+    AC_DEFINE(LIBSSH2_MBEDTLS, 1, [Use mbedtls])
+    LIBSREQUIRED= # mbedtls doesn't provide a .pc file
+    LIBS="$LIBS -lmbedtls -lmbedcrypto"
+    found_crypto=mbedtls
+    support_clear_memory=yes
+  fi
+])
diff --git a/configure.ac b/configure.ac
index fe290ec..b8c74bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,47 +86,33 @@ AC_SYS_LARGEFILE
 found_crypto=none
 
 # Configure parameters
-AC_ARG_WITH(openssl,
+
+AC_ARG_WITH([openssl],
   AC_HELP_STRING([--with-openssl],[Use OpenSSL for crypto]),
   use_openssl=$withval,use_openssl=auto)
-AC_ARG_WITH(libgcrypt,
+
+AC_ARG_WITH([libgcrypt],
   AC_HELP_STRING([--with-libgcrypt],[Use libgcrypt for crypto]),
-  [ use_libgcrypt=$withval
-    LIBSSH2_CHECKFOR_GCRYPT
-  ], use_libgcrypt=auto)
-AC_ARG_WITH(wincng,
+  use_libgcrypt=$withval,use_libgcrypt=auto)
+
+AC_ARG_WITH([wincng],
   AC_HELP_STRING([--with-wincng],[Use Windows CNG for crypto]),
-  [ use_wincng=$withval
-    LIBSSH2_CHECKFOR_WINCNG
-  ] ,use_wincng=auto)
+  use_wincng=$withval,use_wincng=auto)
+
 AC_ARG_WITH([mbedtls],
   AC_HELP_STRING([--with-mbedtls],[Use mbedTLS for crypto]),
-  [ use_mbedtls=$withval
-    LIBSSH2_CHECKFOR_MBEDTLS
-  ], use_mbedtls=auto
-)
-AC_ARG_WITH(libz,
+  use_mbedtls=$withval,use_mbedtls=auto)
+
+AC_ARG_WITH([libz],
   AC_HELP_STRING([--with-libz],[Use zlib for compression]),
   use_libz=$withval,use_libz=auto)
 
 support_clear_memory=no
 
-# Look for OpenSSL
-if test "$found_crypto" = "none" && test "$use_openssl" != "no"; then
-  AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [#include <openssl/ssl.h>])
-fi
-if test "$ac_cv_libssl" = "yes"; then
-  AC_DEFINE(LIBSSH2_OPENSSL, 1, [Use OpenSSL])
-  LIBSREQUIRED=libssl,libcrypto
-
-  # Not all OpenSSL have AES-CTR functions.
-  save_LIBS="$LIBS"
-  LIBS="$LIBS $LIBSSL"
-  AC_CHECK_FUNCS(EVP_aes_128_ctr)
-  LIBS="$save_LIBS"
-
-  found_crypto="OpenSSL (AES-CTR: ${ac_cv_func_EVP_aes_128_ctr:-N/A})"
-fi
+LIBSSH2_CHECKFOR_OPENSSL
+LIBSSH2_CHECKFOR_GCRYPT
+LIBSSH2_CHECKFOR_WINCNG
+LIBSSH2_CHECKFOR_MBEDTLS
 
 AM_CONDITIONAL(OPENSSL, test "$ac_cv_libssl" = "yes")
 AM_CONDITIONAL(WINCNG, test "$ac_cv_libbcrypt" = "yes")
diff --git a/src/Makefile.am b/src/Makefile.am
index c14dc7c..6ba122b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -65,4 +65,4 @@ VERSION=-version-info 1:1:0
 
 libssh2_la_LDFLAGS = $(VERSION) -no-undefined \
 	-export-symbols-regex '^libssh2_.*' \
-	$(LTLIBGCRYPT) $(LTLIBSSL) $(LTLIBZ)
+	$(LTLIBSSL) $(LTLIBGCRYPT) $(LTLIBMBEDTLS) $(LTLIBZ)
_______________________________________________
libssh2-devel https://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to