|
@@ -9,7 +9,7 @@ AM_CONFIG_HEADER(orconfig.h)
|
|
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
|
|
-if test -f /etc/redhat-release; then
|
|
|
+if test -f /etc/redhat-release ; then
|
|
|
CFLAGS="$CFLAGS -I/usr/kerberos/include"
|
|
|
fi
|
|
|
|
|
@@ -202,11 +202,19 @@ AC_CHECK_TYPE(u_int32_t, unsigned long)
|
|
|
AC_CHECK_TYPE(u_int16_t, unsigned short)
|
|
|
AC_CHECK_TYPE(u_int8_t, unsigned char)
|
|
|
|
|
|
+if test $bwin32 = true; then
|
|
|
+ WS32lib=-lws2_32
|
|
|
+ GDIlib=-lgdi32
|
|
|
+else
|
|
|
+ W32lib=
|
|
|
+ GDIlib=
|
|
|
+fi
|
|
|
+
|
|
|
TOR_SEARCH_LIBRARY(libevent, $trylibeventdir, [-levent $WS32lib], [
|
|
|
#include <sys/time.h>
|
|
|
#include <sys/types.h>
|
|
|
#include <event.h>], [void *event_init(void);],
|
|
|
- [event_init(); exit(0);], [--with-libevent-dir])
|
|
|
+ [event_init(); exit(0);], [--with-libevent-dir], [/opt/libevent])
|
|
|
|
|
|
dnl Now check for particular libevent functions.
|
|
|
AC_CHECK_FUNCS(event_get_version event_get_method event_set_log_callback)
|
|
@@ -214,141 +222,18 @@ AC_CHECK_FUNCS(event_get_version event_get_method event_set_log_callback)
|
|
|
dnl ------------------------------------------------------
|
|
|
dnl Where do you live, openssl? And how do we call you?
|
|
|
|
|
|
-AC_CACHE_CHECK([for OpenSSL directory], tor_cv_openssl_dir, [
|
|
|
- saved_LIBS="$LIBS"
|
|
|
- saved_LDFLAGS="$LDFLAGS"
|
|
|
- saved_CPPFLAGS="$CPPFLAGS"
|
|
|
- ssl_found=no
|
|
|
- for ssldir in $tryssldir "" $prefix /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/athena /usr/pkg /opt /opt/openssl ; do
|
|
|
- LDFLAGS="$saved_LDFLAGS"
|
|
|
-
|
|
|
- if test $bwin32 = true; then
|
|
|
- LIBS="$saved_LIBS -lssl -lcrypto -lws2_32 -lgdi32"
|
|
|
- else
|
|
|
- LIBS="$saved_LIBS -lssl -lcrypto"
|
|
|
- fi
|
|
|
-
|
|
|
- # Skip the directory if it isn't there.
|
|
|
- if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
|
|
|
- continue;
|
|
|
- fi
|
|
|
- if test ! -z "$ssldir" ; then
|
|
|
- if test -d "$ssldir/lib" ; then
|
|
|
- LDFLAGS="-L$ssldir/lib $LDFLAGS"
|
|
|
- else
|
|
|
- LDFLAGS="-L$ssldir $LDFLAGS"
|
|
|
- fi
|
|
|
- if test -d "$ssldir/include" ; then
|
|
|
- CPPFLAGS="-I$ssldir/include $CPPFLAGS"
|
|
|
- else
|
|
|
- CPPFLAGS="-I$ssldir $CPPFLAGS"
|
|
|
- fi
|
|
|
- fi
|
|
|
- # Can I link it?
|
|
|
- AC_TRY_LINK([#include <openssl/rand.h>],
|
|
|
- [ RAND_add((void*)0,0,0); ],
|
|
|
- [ openssl_linked=yes ], [ openssl_linked=no ])
|
|
|
- if test $openssl_linked = yes; then
|
|
|
- if test ! -z "$ssldir" ; then
|
|
|
- tor_cv_openssl_dir=$ssldir
|
|
|
- else
|
|
|
- tor_cv_openssl_dir="(system)"
|
|
|
- fi
|
|
|
- ssl_found=yes
|
|
|
- break
|
|
|
- fi
|
|
|
- done
|
|
|
- LIBS="$saved_LIBS"
|
|
|
- LDFLAGS="$saved_LDFLAGS"
|
|
|
- CPPFLAGS="$saved_CPPFLAGS"
|
|
|
- if test $ssl_found = no ; then
|
|
|
- AC_MSG_ERROR([Could not find a linkable OpenSSL. You can specify an explicit path using --with-ssl-dir])
|
|
|
- fi
|
|
|
-])
|
|
|
-
|
|
|
-if test $bwin32 = true; then
|
|
|
-LIBS="$LIBS -lssl -lcrypto -lws2_32 -lgdi32"
|
|
|
-else
|
|
|
-LIBS="$LIBS -lssl -lcrypto"
|
|
|
-fi
|
|
|
-
|
|
|
-if test "$tor_cv_openssl_dir" != "(system)"; then
|
|
|
- if test -d "$tor_cv_openssl_dir/lib" ; then
|
|
|
- LDFLAGS="-L$tor_cv_openssl_dir/lib $LDFLAGS"
|
|
|
- ssl_libdir="$tor_cv_openssl_dir/lib"
|
|
|
- else
|
|
|
- LDFLAGS="-L$tor_cv_openssl_dir $LDFLAGS"
|
|
|
- ssl_libdir="$tor_cv_openssl_dir"
|
|
|
- fi
|
|
|
- if test -d "$tor_cv_openssl_dir/include" ; then
|
|
|
- CPPFLAGS="-I$tor_cv_openssl_dir/include $CPPFLAGS"
|
|
|
- else
|
|
|
- CPPFLAGS="-I$tor_cv_openssl_dir $CPPFLAGS"
|
|
|
- fi
|
|
|
-fi
|
|
|
-
|
|
|
-if test -z "$CROSS_COMPILE"
|
|
|
-then
|
|
|
-AC_CACHE_CHECK([whether we need extra options to link OpenSSL],
|
|
|
- tor_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([
|
|
|
-#include <string.h>
|
|
|
-#include <openssl/rand.h>
|
|
|
-int main(void)
|
|
|
-{
|
|
|
- char a[2048];
|
|
|
- memset(a, 0, sizeof(a));
|
|
|
- RAND_add(a, sizeof(a), sizeof(a));
|
|
|
- return(RAND_status() <= 0);
|
|
|
-}
|
|
|
- ],
|
|
|
- openssl_runs=yes, openssl_runs=no, openssl_runs=cross)
|
|
|
- if test $openssl_runs != no ; then
|
|
|
- if test "$linked_with" = nothing; then
|
|
|
- linked_with="$ssl_extra"
|
|
|
- fi
|
|
|
- AC_TRY_RUN([
|
|
|
-#include <openssl/opensslv.h>
|
|
|
-#include <openssl/crypto.h>
|
|
|
-int main(void) {
|
|
|
-return (OPENSSL_VERSION_NUMBER == SSLeay()) == 0;
|
|
|
-}],
|
|
|
- right_version=yes, right_version=no)
|
|
|
- if test "$right_version" = yes; then
|
|
|
- if test -z "$ssl_extra" ; then
|
|
|
- tor_cv_openssl_linker_option='(none)'
|
|
|
- else
|
|
|
- tor_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 $tor_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
|
|
|
- tor_cv_openssl_linker_option='(none)'
|
|
|
- else
|
|
|
- tor_cv_openssl_linker_option=$linked_with
|
|
|
- fi
|
|
|
- AC_MSG_WARN([I managed to make OpenSSL link and run, but I couldn't make it link against the same version I found header files for.])
|
|
|
- fi
|
|
|
- fi
|
|
|
- LDFLAGS="$saved_LDFLAGS"
|
|
|
-])
|
|
|
-
|
|
|
-if test "$tor_cv_openssl_linker_option" != '(none)' ; then
|
|
|
- LDFLAGS="$tor_cv_openssl_linker_option $LDFLAGS"
|
|
|
-fi
|
|
|
-fi
|
|
|
+dnl AC_TRY_RUN([
|
|
|
+dnl #include <openssl/opensslv.h>
|
|
|
+dnl #include <openssl/crypto.h>
|
|
|
+dnl int main(void) {
|
|
|
+dnl return (OPENSSL_VERSION_NUMBER == SSLeay()) == 0;
|
|
|
+dnl }],
|
|
|
+
|
|
|
+TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto $GDIlib],
|
|
|
+ [#include <openssl/rand.h>],
|
|
|
+ [void RAND_add(const void *buf, int num, double entropy);],
|
|
|
+ [RAND_add((void*)0,0,0); exit(0);], [--with-ssl-dir],
|
|
|
+ [/usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/athena /opt/openssl])
|
|
|
|
|
|
dnl Make sure to enable support for large off_t if avalable.
|
|
|
|