+AC_CHECK_FUNC(getpagesize,
+ [AC_DEFINE(HAVE_GETPAGESIZE)],
+ [AC_CHECK_LIB(ucb, getpagesize, [LIBS="$LIBS -lucb"; AC_DEFINE(HAVE_GETPAGESIZE)])]
+)
+
+AC_ARG_WITH(pam,
+ [ --without-pam Disable PAM support ],
+ [
+ if test "x$withval" = "xno" ; then
+ no_pam=1
+ AC_DEFINE(DISABLE_PAM)
+ fi
+ ]
+)
+if test -z "$no_pam" -a "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
+ AC_CHECK_LIB(dl, dlopen, , )
+ LIBS="$LIBS -lpam"
+
+ # Check PAM strerror arguments (old PAM)
+ AC_MSG_CHECKING([whether pam_strerror takes only one argument])
+ AC_TRY_COMPILE(
+ [
+ #include <stdlib.h>
+ #include <security/pam_appl.h>
+ ],
+ [(void)pam_strerror((pam_handle_t *)NULL, -1);],
+ [AC_MSG_RESULT(no)],
+ [
+ AC_DEFINE(HAVE_OLD_PAM)
+ AC_MSG_RESULT(yes)
+ ]
+ )
+fi
+
+# The big search for OpenSSL
+AC_ARG_WITH(ssl-dir,
+ [ --with-ssl-dir=PATH Specify path to OpenSSL installation ],
+ [
+ if test "x$withval" != "$xno" ; then
+ tryssldir=$withval
+ fi
+ ]
+)
+
+saved_LIBS="$LIBS"
+saved_LDFLAGS="$LDFLAGS"
+saved_CFLAGS="$CFLAGS"
+if test "x$prefix" != "xNONE" ; then
+ tryssldir="$tryssldir $prefix"
+fi
+AC_MSG_CHECKING([for OpenSSL/SSLeay directory])
+for ssldir in "" $tryssldir /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
+ if test ! -z "$ssldir" ; then
+ LDFLAGS="$saved_LDFLAGS -L$ssldir/lib -L$ssldir"
+ CFLAGS="$saved_CFLAGS -I$ssldir/include"
+ if test ! -z "$need_dash_r" ; then
+ LDFLAGS="$LDFLAGS -R$ssldir/lib -R$ssldir"
+ fi
+ else
+ LDFLAGS="$saved_LDFLAGS"
+ fi
+
+ for WANTS_RSAREF in "" 1 ; do
+
+ if test -z "$WANTS_RSAREF" ; then
+ LIBS="$saved_LIBS -lcrypto"
+ else
+ LIBS="$saved_LIBS -lcrypto -lRSAglue -lrsaref"
+ fi
+
+ AC_TRY_RUN(
+ [
+ #include <openssl/rsa.h>
+ #include <openssl/bn.h>
+ #include <openssl/sha.h>
+ int main(void)
+ {
+ RSA *key; char a[2048],b[2048];;
+ memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));
+ RAND_add(a, sizeof(a), sizeof(a));
+ key=RSA_generate_key(32,3,NULL,NULL);
+ if (key==NULL) return(1);
+ return(-1==RSA_private_decrypt(RSA_size(key),a,b,key,RSA_NO_PADDING));
+ }
+ ],
+ [
+ AC_DEFINE(HAVE_OPENSSL)
+ found_crypto=1
+ break;
+ ], []
+ )
+ done
+
+ if test ! -z "$found_crypto" ; then
+ break;
+ fi
+done
+
+if test -z "$found_crypto" ; then
+ AC_MSG_ERROR([Could not find working SSLeay / OpenSSL libraries, please install])
+fi
+if test -z "$ssldir" ; then
+ ssldir="(system)"
+else
+ CFLAGS="$saved_CFLAGS -I$ssldir/include"
+ LDFLAGS="$saved_LDFLAGS -L$ssldir/lib -L$ssldir"
+ if test ! -z "$need_dash_r" ; then
+ LDFLAGS="$LDFLAGS -R$ssldir/lib -R$ssldir"
+ fi
+ if test ! -z "$blibpath" ; then
+ blibpath="$blibpath:$ssldir:$ssldir/lib"
+ fi
+fi
+if test -z "$WANTS_RSAREF" ; then
+ LIBS="$saved_LIBS -lcrypto"
+else
+ LIBS="$saved_LIBS -lcrypto -lRSAglue -lrsaref"
+fi
+AC_MSG_RESULT($ssldir)
+
+# Checks for data types
+AC_CHECK_SIZEOF(char, 1)