]> arthur.barton.de Git - netatalk.git/blobdiff - macros/ssl-check.m4
Merge remote branch 'sf/develop' into develop
[netatalk.git] / macros / ssl-check.m4
index e7954f12e842328a0664b0f1cba7baad1e0c3d2e..8d9c1b6c66650e5ca8f8f337057b8a229c69cccc 100644 (file)
@@ -1,7 +1,23 @@
-dnl $Id: ssl-check.m4,v 1.6 2003-01-26 16:40:46 srittau Exp $
+dnl $Id: ssl-check.m4,v 1.14 2008-11-22 12:07:26 didg Exp $
 dnl Autoconf macro to check for SSL or OpenSSL
 
-AC_DEFUN([AC_PATH_SSL], [
+AC_DEFUN([AC_NETATALK_CRYPT], [
+
+       saveLIBS=$LIBS
+       LIBS=""
+       CRYPT_LIBS=""
+
+       AC_CHECK_HEADERS(crypt.h)
+       AC_CHECK_LIB(crypt, main)
+
+       CRYPT_LIBS=$LIBS
+       LIBS=$saveLIBS
+
+       AC_SUBST(CRYPT_LIBS)
+])
+
+
+AC_DEFUN([AC_NETATALK_PATH_SSL], [
        AC_ARG_WITH(ssl-dir, [  --with-ssl-dir=PATH     specify path to OpenSSL installation (must contain
                           lib and include dirs)],
                [
@@ -20,49 +36,49 @@ AC_DEFUN([AC_PATH_SSL], [
 
        SSL_CFLAGS=""
        SSL_LIBS=""
-       compile_ssl=no
+       saved_LIBS=$LIBS
+       saved_CFLAGS=$CFLAGS
+       neta_cv_have_openssl=no
+dnl    compile_ssl=no
 
-       if test "$tryssl" = "yes"; then
-
-dnl GnuTLS test
-
-               AM_PATH_LIBGNUTLS_EXTRA(, [
-                       SSL_CFLAGS="$SSL_CFLAGS $LIBGNUTLS_EXTRA_CFLAGS"
-                       SSL_LIBS="$SSL_LIBS $LIBGNUTLS_EXTRA_LIBS"
-                       AC_DEFINE(GNUTLS_DHX, 1)
-                       AC_DEFINE(UAM_DHX,    1)
-                       compile_ssl=yes
-               ], [
-
-dnl OpenSSL test
+       dnl make sure atalk_libname is defined beforehand
+       [[ -n "$atalk_libname" ]] || AC_MSG_ERROR([internal error, atalk_libname undefined])
 
-                       AC_MSG_CHECKING([for OpenSSL])
-                       for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl /usr/local/ssl ; do
-                               if test -f "$ssldir/include/openssl/cast.h" ; then
-                                       SSL_CFLAGS="$SSL_CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
-                                       SSL_LIBS="$SSL_LIBS -L$ssldir/lib -L$ssldir -lcrypto"
-                                       if test "x$need_dash_r" = "xyes"; then
-                                               SSL_LIBS="$SSL_LIBS -R$ssldir/lib -R$ssldir"
-                                       fi
-                                       AC_MSG_RESULT([$ssldir (enabling RANDNUM and DHX support)])
+       if test "$tryssl" = "yes"; then
+               AC_MSG_CHECKING([for SSL])
+               for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/$atalk_libname/openssl /usr/local/ssl /usr/$atalk_libname/ssl /usr/local /usr/pkg /opt /opt/openssl /usr/local/ssl ; do
+                       if test -f "$ssldir/include/openssl/cast.h" ; then
+                               SSL_CFLAGS="$SSL_CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
+                               SSL_LIBS="$SSL_LIBS -L$ssldir/$atalk_libname -L$ssldir -lcrypto"
+                               if test "x$need_dash_r" = "xyes"; then
+                                       SSL_LIBS="$SSL_LIBS -R$ssldir/$atalk_libname -R$ssldir"
+                               fi
+                               AC_MSG_RESULT([$ssldir (enabling RANDNUM and DHX support)])
+                               CFLAGS="$CFLAGS $SSL_CFLAGS"
+                               LIBS="$LIBS $SSL_LIBS"
 
 dnl FIXME: The following looks crude and probably doesn't work properly.
-                                       dnl Check for the crypto library:
-                                       AC_CHECK_LIB(crypto, main)
-                                       dnl Check for "DES" library (for SSLeay, not openssl):
-                                       AC_CHECK_LIB(des, main)
+                               dnl Check for the crypto library:
+                               AC_CHECK_LIB(crypto, main)
+                               dnl Check for "DES" library (for SSLeay, not openssl):
+                               AC_CHECK_LIB(des, main)
 
-                                       AC_DEFINE(OPENSSL_DHX,  1)
-                                       AC_DEFINE(UAM_DHX,      1)
-                                       compile_ssl=yes
-                                       break
-                               fi
-                       done
-                       if test "x$compile_ssl" = "xno"; then
-                               AC_MSG_RESULT([no])
+                               AC_DEFINE(OPENSSL_DHX,  1, [Define if the OpenSSL DHX modules should be built])
+                               AC_DEFINE(UAM_DHX,      1, [Define if the DHX UAM modules should be compiled])
+                               neta_cv_have_openssl=yes
+                               neta_cv_compile_dhx=yes
+                               CFLAGS=$saved_CFLAGS
+                               LIBS=$saved_LIBS
+                               break
                        fi
-               ])
+               done
+               if test "x$neta_cv_have_openssl" = "xno"; then
+                       AC_MSG_RESULT([no])
+               fi
        fi
+       CFLAGS_REMOVE_USR_INCLUDE(SSL_CFLAGS)
+       LIB_REMOVE_USR_LIB(SSL_LIBS)
        AC_SUBST(SSL_CFLAGS)
        AC_SUBST(SSL_LIBS)
+       LIBS=$saved_LIBS
 ])