blob: 895fcbcd564a48473a15464dce9c41a1b58103e9 [file] [log] [blame]
commit 18311d1be81d93350a406b641d501e3ced5a2662
Author: joerg.sonnenberger <joerg.sonnenberger@2e22974a-a639-11dd-bc7a-dd6b2ed99ab5>
Date: Sun Feb 21 14:23:09 2010 +0000
Improve detection of SHA2 functions in OpenSSL to deal with ancient
versions like in Mac OS X and FreeBSD 6.x. Fixes #65 and should fix #55.
git-svn-id: http://libarchive.googlecode.com/svn/trunk@1940 2e22974a-a639-11dd-bc7a-dd6b2ed99ab5
diff --git a/configure.ac b/configure.ac
index 45960ad..921ed87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -281,30 +281,34 @@ if test "x$with_openssl" != "xno"; then
AC_CHECK_HEADERS([openssl/sha.h])
AC_SEARCH_LIBS([SHA1_Init], [crypto])
fi
- if test "$ac_cv_func_SHA256Init" != "yes" ||
- test "$ac_cv_func_SHA384Init" != "yes" ||
- test "$ac_cv_func_SHA512Init" != "yes"; then
- if test "$ac_cv_func_SHA256_Init" != "yes" ||
- test "$ac_cv_func_SHA384_Init" != "yes" ||
- test "$ac_cv_func_SHA512_Init" != "yes"; then
- AC_CHECK_HEADERS([openssl/sha.h])
- # TODO: Does AC_SEARCH_LIBS support more than one function at once?
- # This appears to always fail.
- AC_SEARCH_LIBS([SHA256_Init SHA384_Init SHA512_Init], [crypto])
-
- # TODO: Actually test for these. Previously our C code did not
- # test for these at all and just assumed availability. Now that
- # the C code tests these macros we preserve previous behavior
- # for the autotools build by hard-coding availability.
- if test "$ac_cv_header_openssl_sha_h" = "yes"; then
+
+ AC_CHECK_HEADERS([openssl/sha.h])
+ if test "$ac_cv_func_SHA256Init" != "yes" &&
+ test "$ac_cv_func_SHA256_Init" != "yes"; then
+ AC_SEARCH_LIBS([SHA256_Init], [crypto])
+ if test "$ac_cv_func_SHA256_Init" = "yes" &&
+ test "$ac_cv_header_openssl_sha_h" = "yes"; then
AC_DEFINE(HAVE_OPENSSL_SHA256_INIT, 1,
[Define to 1 if your openssl has the `SHA256_Init' function.])
+ fi
+ fi
+ if test "$ac_cv_func_SHA384Init" != "yes" &&
+ test "$ac_cv_func_SHA384_Init" != "yes"; then
+ AC_SEARCH_LIBS([SHA384_Init], [crypto])
+ if test "$ac_cv_func_SHA384_Init" = "yes" &&
+ test "$ac_cv_header_openssl_sha_h" = "yes"; then
AC_DEFINE(HAVE_OPENSSL_SHA384_INIT, 1,
[Define to 1 if your openssl has the `SHA384_Init' function.])
+ fi
+ fi
+ if test "$ac_cv_func_SHA512Init" != "yes" &&
+ test "$ac_cv_func_SHA512_Init" != "yes"; then
+ AC_SEARCH_LIBS([SHA512_Init], [crypto])
+ if test "$ac_cv_func_SHA512_Init" = "yes" &&
+ test "$ac_cv_header_openssl_sha_h" = "yes"; then
AC_DEFINE(HAVE_OPENSSL_SHA512_INIT, 1,
[Define to 1 if your openssl has the `SHA512_Init' function.])
fi
- fi
fi
fi