summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-03-13 04:58:46 +0000
committerNick Mathewson <nickm@torproject.org>2006-03-13 04:58:46 +0000
commitb318bd8989bf58d3d3cda55dbfc5004f968bd4e6 (patch)
treed876b9b54691f301993044ac22ff5cf6c79a595c /configure.in
parent94dac6b13919e2467215d882df69926b90068472 (diff)
downloadtor-b318bd8989bf58d3d3cda55dbfc5004f968bd4e6.tar.gz
tor-b318bd8989bf58d3d3cda55dbfc5004f968bd4e6.zip
Fix a couple of bugs in OpenSSL detection. Also, deal better when there are multiple SSLs installed.
svn:r6148
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in40
1 files changed, 30 insertions, 10 deletions
diff --git a/configure.in b/configure.in
index c744049803..6f68091218 100644
--- a/configure.in
+++ b/configure.in
@@ -165,12 +165,13 @@ AC_CACHE_CHECK([whether we need extra options to link libevent],
ac_cv_libevent_linker_option, [
saved_LDFLAGS="$LDFLAGS"
le_runs=no
+ linked_with=nothing
for le_extra in "" "-Wl,-R$le_libdir" "-R$le_libdir" ; do
LDFLAGS="$le_extra $saved_LDFLAGS"
AC_TRY_RUN([void *event_init(void);
int main(int c, char **v) {
event_init(); return 0;
- }],
+ }],
libevent_runs=yes, libevent_runs=no)
if test $libevent_runs = yes ; then
if test -z "$le_extra" ; then
@@ -254,6 +255,7 @@ AC_CACHE_CHECK([whether we need extra options to link OpenSSL],
ac_cv_openssl_linker_option, [
saved_LDFLAGS="$LDFLAGS"
ssl_runs=no
+ linked_with=nothing
for ssl_extra in "" "-Wl,-R$ssl_libdir" "-R$ssl_libdir" ; do
LDFLAGS="$ssl_extra $saved_LDFLAGS"
AC_TRY_RUN([
@@ -269,22 +271,40 @@ int main(void)
],
openssl_runs=yes, openssl_runs=no)
if test $openssl_runs = yes ; then
- if test -z "$ssl_extra" ; then
- ac_cv_openssl_linker_option='(none)'
+ if test "$linked_with" = nothing; then
+ linked_with="$ssl_extra"
+ fi
+ AC_TRY_RUN([
+#include <openssl/opensslv.h>
+int main(void) { return OPENSSL_VERSION_NUMBER == SSLeay(); }],
+ right_version=yes, right_version=no)
+ if test "$right_version" = yes; then
+ if test -z "$ssl_extra" ; then
+ ac_cv_openssl_linker_option='(none)'
+ else
+ ac_cv_openssl_linker_option=$ssl_extra
+ fi
+ ssl_runs=yes
+ break
+ fi
+ fi
+ done
+ if test $ssl_runs = no ; then
+ if test "$linked_with" = 'nothing' ; then
+ AC_MSG_ERROR([Found linkable OpenSSL in $ac_cv_openssl_dir, but it doesn't run, even with -R. Maybe specify another using --with-ssl-dir?])
+ else
+ if test -z "$linked_with" ; then
+ ac_cv_openssl_linker_option='(none)'
else
- ac_cv_openssl_linker_option=$ssl_extra
+ ac_cv_openssl_linker_option=$linked_with
fi
- ssl_runs=yes
- break
+ AC_MSG_WARN([I managed to make OpenSSL link and run, but I couldn't make it run with the same version as the headers made us expect.])
fi
- done
- if test ssl_runs = no ; then
- AC_MSG_ERROR([Found linkable OpenSSL in $ac_cv_openssl_dir, but it doesn't run, even with -R. Maybe specify another using --with-ssl-dir?])
fi
LDFLAGS="$saved_LDFLAGS"
])
-if test $ac_cv_openssl_linker_option != '(none)' ; then
+if test "$ac_cv_openssl_linker_option" != '(none)' ; then
LDFLAGS="$ac_cv_openssl_linker_option $LDFLAGS"
fi