[arch-commits] Commit in freeradius/trunk (PKGBUILD freeradius-openssl-1.1.patch)

Antonio Rojas arojas at archlinux.org
Fri Mar 3 23:40:33 UTC 2017


    Date: Friday, March 3, 2017 @ 23:40:32
  Author: arojas
Revision: 214720

openssl 1.1 rebuild

Added:
  freeradius/trunk/freeradius-openssl-1.1.patch
Modified:
  freeradius/trunk/PKGBUILD

------------------------------+
 PKGBUILD                     |   12 
 freeradius-openssl-1.1.patch | 6284 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 6293 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-03-03 23:27:01 UTC (rev 214719)
+++ PKGBUILD	2017-03-03 23:40:32 UTC (rev 214720)
@@ -5,7 +5,7 @@
 
 pkgname=freeradius
 pkgver=3.0.12
-pkgrel=5
+pkgrel=6
 pkgdesc="The premier open source RADIUS server"
 arch=('i686' 'x86_64')
 url="http://www.freeradius.org/"
@@ -20,11 +20,17 @@
 install=$pkgname.install
 source=("ftp://ftp.freeradius.org/pub/radius/freeradius-server-$pkgver.tar.bz2"
 	freeradius.tmpfiles
-	freeradius.service)
+	freeradius.service freeradius-openssl-1.1.patch)
 md5sums=('108a5c12cff8d92b0f905c74841e29c5'
          'f959e89812bedfc9f8308076f78cd74e'
-         'e3f18e3a25df3b692e59f60605354708')
+         'e3f18e3a25df3b692e59f60605354708'
+         '1f9c9dd5340096200058638b27c68e3f')
 
+prepare() {
+  cd freeradius-server-$pkgver
+  patch -p1 -i ../freeradius-openssl-1.1.patch
+}
+
 build() {
   cd "$srcdir"/freeradius-server-$pkgver
   ./configure --with-system-libtool --with-system-libltdl \

Added: freeradius-openssl-1.1.patch
===================================================================
--- freeradius-openssl-1.1.patch	                        (rev 0)
+++ freeradius-openssl-1.1.patch	2017-03-03 23:40:32 UTC (rev 214720)
@@ -0,0 +1,6284 @@
+From fd3bf136c901dfb4ebe2261fb8984796dd94e357 Mon Sep 17 00:00:00 2001
+From: "Alan T. DeKok" <aland at freeradius.org>
+Date: Sat, 22 Oct 2016 18:20:35 -0400
+Subject: [PATCH] Support OpenSSL v1.1.0
+
+Make FreeRADIUS support OpenSSL v1.1.0.
+Includes the following commits.
+
+Check for new OpenSSL.  Fixes #1803
+
+Old versions of OpenSSL don't have the necessary functions or
+macro definitions, so we don't build rlm_eap_fast for them.
+
+(cherry picked from commit c12648e75b6ad9ef11bec7d2a66fe476abc66973)
+
+OpenSSL 1.1.0 compatability fixes
+
+(cherry picked from commit 264aa1cbff78e15550a52b1c5f5b8ba573584ab4)
+
+Fix SSL_get_client/server_random checks
+
+Needed for conditionally avoiding accessing private OpenSSL structures
+in a following patch.
+
+Backported from v3.1.x.
+
+(cherry picked from commit ce9170227abed38f81e288b343655c509cc95e55)
+
+Check for EVP_CIPHER_CTX_new to detect libcrypto
+
+Switch to checking for EVP_CIPHER_CTX_new instead of EVP_cleanup to
+detect presence of libcrypto, because EVP_cleanup was removed as symbol
+from OpenSSL 1.1, and the check would always fail.
+
+(cherry picked from commit 6b3a5018d08a37211dd3f89c93f74efecf37ac84)
+
+Check for openssl/hmac.h
+
+Apart from dealing with a FIXME, this is needed for implementing
+compatibility fallbacks for some functions introduced in OpenSSL 1.1, in
+following commits.
+
+(cherry picked from commit b2cafe245e38728ac79771f902a10115202fcf80)
+
+Check for openssl/asn1.h
+
+Check for presence of openssl/asn1.h to support definition of fallback
+functions in later patches.
+
+(cherry picked from commit f56a8d8683f92278f4efcf33a24dfde929d37b17)
+
+Check for openssl/conf.h
+
+Check for presence of openssl/conf.h to support definition of fallback
+functions in later patches.
+
+(cherry picked from commit 0b0f4a800625017656626c559a45245f9a551300)
+
+Add a few OpenSSL fallback funcs
+
+Add four fallback function implementations to use in place of functions
+removed/deprecated in OpenSSL 1.1. Those are to be used in the following
+patches to make the build work and not produce deprecation warnings.
+
+(cherry picked from commit d9b75be9cf3c41c262b29276184d7b8f89e29ab0)
+
+Move func substitutes from rlm_eap to missing.c
+
+(cherry picked from commit 8c4a2b376df1d47ea291ba83f43d7dd2243d0a29)
+
+Do not try to access private OpenSSL structs
+
+Some more OpenSSL structures were made private in v1.1 and accessor
+functions were added instead. Switch to using accessor functions to fix
+the build.
+
+(cherry picked from commit f1e139b554c19dd88a1d904144b3eae243d41eee)
+
+Initialize HMAC context in rlm_otp
+
+Add the missing mandatory HMAC context initialization to rlm_otp's
+otp_gen_state. Otherwise the outcome of the following HMAC operations is
+undefined.
+
+(cherry picked from commit e867899fe8eb4262bef9054969635f4316802240)
+
+Do not use HMAC_CTX_init
+
+Switch to using HMAC_CTX_new in place of HMAC_CTX_init, which was
+removed in OpenSSL 1.1, resulting in broken build.
+
+(cherry picked from commit d2b119e9cd5f20dd900079b414104be9ab70d349)
+
+Do not use HMAC_Init
+
+Replace remaining use of HMAC_Init with HMAC_Init_ex to silence
+deprecation warnings with OpenSSL 1.1.
+
+(cherry picked from commit 41d68e6d0576e8d7b28dc3ddd0f58820ed97393f)
+
+Do not use ASN1_STRING_data
+
+Switch to using ASN1_STRING_get0_data instead of ASN1_STRING_data, which
+was deprecated in OpenSSL 1.1 and would produce build warnings.
+
+(cherry picked from commit 508f69aba526a3e143255ffcbad8706a9337b0b8)
+
+Do not use OPENSSL_config
+
+Switch to using CONF_modules_load_file instead of OPENSSL_config, which
+was deprecated in OpenSSL 1.1 and would produce build warnings.
+
+(cherry picked from commit 8d97195167928ae357b7e8a3840733bbd99fa630)
+
+Accomodate consts added in OpenSSL 1.1
+
+Update some declarations to use const to match respective changes in
+OpenSSL 1.1 and not produce build warnings.
+
+(cherry picked from commit e787e4d0663ca77681338e40716a8c06e7cd0c1a)
+
+Handle deprecated OpenSSL thread cleanup functions
+
+Use appropriate OpenSSL thread cleanup function or don't use any,
+depending on their deprecation status in various OpenSSL versions.
+
+(cherry picked from commit 1ce96912e751af095d40c06449bcf671387a2b76)
+
+Do not assign OpenSSL callbacks if not needed
+
+Check if CRYPTO_set_id_callback and CRYPTO_set_locking_callback are
+defined as functions (as opposed to stub macros), and if they aren't,
+don't call them and don't define the corresponding callbacks.
+
+This avoids the "unused function" warnings with OpenSSL v1.1.
+
+(cherry picked from commit d76870559eb6893374c43afe3bde3f760607a656)
+
+Do not pass consts to SSL_get_client/server_random
+
+Do not pass const pointers to SSL_get_client_random /
+SSL_get_server_random in rlm_eap_fast.c to avoid build warnings.
+
+Use openssl dhparam instead of obsolete gendh
+
+Use `openssl dhparam` command in raddb/certs/Makefile instead of the
+obsolete (and removed in OpenSSL v1.1.0) `openssl gendh`.
+
+Switch rlm_eap_pwd to HMAC_CTX_new/free
+
+Switch rlm_eap_pwd.c to using HMAC_CTX_new and HMAC_CTX_free to
+allocate/free HMAC contexts, thus making it support OpenSSL v1.1.0.
+
+Check for EVP_CIPHER_CTX_new in rlm_eap_pwd
+
+Switch to checking for EVP_CIPHER_CTX_new instead of EVP_cleanup to detect
+presence of libcrypto in rlm_eap_pwd configure.ac, because EVP_cleanup was
+removed as symbol from OpenSSL 1.1, and the check would always fail.
+
+Previously only rlm_eap_fast configure.ac was switched.
+---
+ configure                                          |   36 +-
+ configure.ac                                       |   18 +-
+ raddb/certs/Makefile                               |    2 +-
+ src/include/autoconf.h.in                          |   33 +
+ src/include/missing-h                              |   69 +
+ src/lib/missing.c                                  |   63 +
+ src/main/threads.c                                 |   16 +
+ src/main/tls.c                                     |   30 +-
+ src/modules/rlm_eap/libeap/eap_tls.h               |    1 -
+ src/modules/rlm_eap/libeap/mppe_keys.c             |   61 +-
+ src/modules/rlm_eap/types/rlm_eap_fast/all.mk.in   |   10 +
+ src/modules/rlm_eap/types/rlm_eap_fast/configure   | 4550 ++++++++++++++++++++
+ .../rlm_eap/types/rlm_eap_fast/configure.ac        |  104 +
+ .../rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c      |   10 +-
+ src/modules/rlm_eap/types/rlm_eap_pwd/configure    |   28 +-
+ src/modules/rlm_eap/types/rlm_eap_pwd/configure.ac |    4 +-
+ src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c    |  164 +-
+ src/modules/rlm_otp/otp_radstate.c                 |   15 +-
+ src/modules/rlm_wimax/rlm_wimax.c                  |   67 +-
+ 19 files changed, 5109 insertions(+), 172 deletions(-)
+ create mode 100644 src/modules/rlm_eap/types/rlm_eap_fast/all.mk.in
+ create mode 100755 src/modules/rlm_eap/types/rlm_eap_fast/configure
+ create mode 100644 src/modules/rlm_eap/types/rlm_eap_fast/configure.ac
+
+diff --git a/configure b/configure
+index 9d6a08088..05860f885 100755
+--- a/configure
++++ b/configure
+@@ -8665,9 +8665,12 @@ $as_echo "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
+ 
+ 
+     for ac_header in \
++      openssl/asn1.h \
++      openssl/conf.h \
+       openssl/crypto.h \
+       openssl/err.h \
+       openssl/evp.h \
++      openssl/hmac.h \
+       openssl/md5.h \
+       openssl/md4.h \
+       openssl/sha.h \
+@@ -8779,6 +8782,28 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+   conftest.$ac_objext conftest.beam conftest.$ac_ext
+ fi
+ 
++                for ac_func in \
++      SSL_get_client_random \
++      SSL_get_server_random \
++      SSL_SESSION_get_master_key \
++      HMAC_CTX_new \
++      HMAC_CTX_free \
++      ASN1_STRING_get0_data \
++      CONF_modules_load_file \
++      CRYPTO_set_id_callback \
++      CRYPTO_set_locking_callback
++
++do :
++  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
++if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
++  cat >>confdefs.h <<_ACEOF
++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
++_ACEOF
++
++fi
++done
++
+     CPPFLAGS="$old_CPPFLAGS"
+   fi
+ 
+@@ -8787,17 +8812,6 @@ fi
+ 
+ 
+   export OPENSSL_LIBS OPENSSL_LDFLAGS OPENSSL_CPPFLAGS
+-  for ac_func in SSL_get_client_random
+-do :
+-  ac_fn_c_check_func "$LINENO" "SSL_get_client_random" "ac_cv_func_SSL_get_client_random"
+-if test "x$ac_cv_func_SSL_get_client_random" = xyes; then :
+-  cat >>confdefs.h <<_ACEOF
+-#define HAVE_SSL_GET_CLIENT_RANDOM 1
+-_ACEOF
+- SSL_get_server_random
+-fi
+-done
+-
+ fi
+ 
+ if test "x$PCAP_LIBS" = x; then
+diff --git a/configure.ac b/configure.ac
+index 90c35bd31..9ead51dbb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1104,9 +1104,12 @@ if test "x$WITH_OPENSSL" = xyes; then
+     AC_DEFINE(HAVE_OPENSSL_SSL_H, 1, [Define to 1 if you have the <openssl/ssl.h> header file.])
+ 
+     AC_CHECK_HEADERS( \
++      openssl/asn1.h \
++      openssl/conf.h \
+       openssl/crypto.h \
+       openssl/err.h \
+       openssl/evp.h \
++      openssl/hmac.h \
+       openssl/md5.h \
+       openssl/md4.h \
+       openssl/sha.h \
+@@ -1174,6 +1177,20 @@ if test "x$WITH_OPENSSL" = xyes; then
+         AC_MSG_RESULT([cross-compiling (assuming yes)])
+       ]
+     )
++    dnl #
++    dnl #  Check if the new HMAC_CTX interface is defined
++    dnl #
++    AC_CHECK_FUNCS( \
++      SSL_get_client_random \
++      SSL_get_server_random \
++      SSL_SESSION_get_master_key \
++      HMAC_CTX_new \
++      HMAC_CTX_free \
++      ASN1_STRING_get0_data \
++      CONF_modules_load_file \
++      CRYPTO_set_id_callback \
++      CRYPTO_set_locking_callback
++    )
+     CPPFLAGS="$old_CPPFLAGS"
+   fi
+ 
+@@ -1182,7 +1199,6 @@ if test "x$WITH_OPENSSL" = xyes; then
+   AC_SUBST(OPENSSL_LDFLAGS)
+   AC_SUBST(OPENSSL_CPPFLAGS)
+   export OPENSSL_LIBS OPENSSL_LDFLAGS OPENSSL_CPPFLAGS
+-  AC_CHECK_FUNCS(SSL_get_client_random,SSL_get_server_random)
+ fi
+ 
+ dnl #
+diff --git a/raddb/certs/Makefile b/raddb/certs/Makefile
+index cc12464c6..af33329ab 100644
+--- a/raddb/certs/Makefile
++++ b/raddb/certs/Makefile
+@@ -49,7 +49,7 @@ passwords.mk: server.cnf ca.cnf client.cnf
+ #
+ ######################################################################
+ dh:
+-	openssl gendh -out dh -2 $(DH_KEY_SIZE)
++	openssl dhparam -out dh -2 $(DH_KEY_SIZE)
+ 
+ ######################################################################
+ #
+diff --git a/src/include/autoconf.h.in b/src/include/autoconf.h.in
+index a637c6857..7fc512770 100644
+--- a/src/include/autoconf.h.in
++++ b/src/include/autoconf.h.in
+@@ -32,6 +32,9 @@
+ /* Define to 1 if you have the <arpa/inet.h> header file. */
+ #undef HAVE_ARPA_INET_H
+ 
++/* Define to 1 if you have the `ASN1_STRING_get0_data' function. */
++#undef HAVE_ASN1_STRING_GET0_DATA
++
+ /* Define if your compiler supports the __bounded__ attribute (usually OpenBSD
+    gcc). */
+ #undef HAVE_ATTRIBUTE_BOUNDED
+@@ -63,9 +66,18 @@
+ /* Define to 1 if you have the `collectdclient' library (-lcollectdclient). */
+ #undef HAVE_COLLECTDC_H
+ 
++/* Define to 1 if you have the `CONF_modules_load_file' function. */
++#undef HAVE_CONF_MODULES_LOAD_FILE
++
+ /* Do we have the crypt function */
+ #undef HAVE_CRYPT
+ 
++/* Define to 1 if you have the `CRYPTO_set_id_callback' function. */
++#undef HAVE_CRYPTO_SET_ID_CALLBACK
++
++/* Define to 1 if you have the `CRYPTO_set_locking_callback' function. */
++#undef HAVE_CRYPTO_SET_LOCKING_CALLBACK
++
+ /* Define to 1 if you have the <crypt.h> header file. */
+ #undef HAVE_CRYPT_H
+ 
+@@ -152,6 +164,12 @@
+ /* Define to 1 if you have the <history.h> header file. */
+ #undef HAVE_HISTORY_H
+ 
++/* Define to 1 if you have the `HMAC_CTX_free' function. */
++#undef HAVE_HMAC_CTX_FREE
++
++/* Define to 1 if you have the `HMAC_CTX_new' function. */
++#undef HAVE_HMAC_CTX_NEW
++
+ /* Define if the function (or macro) htonll exists. */
+ #undef HAVE_HTONLL
+ 
+@@ -248,6 +266,12 @@
+ /* Define to 1 if you have the `openat' function. */
+ #undef HAVE_OPENAT
+ 
++/* Define to 1 if you have the <openssl/asn1.h> header file. */
++#undef HAVE_OPENSSL_ASN1_H
++
++/* Define to 1 if you have the <openssl/conf.h> header file. */
++#undef HAVE_OPENSSL_CONF_H
++
+ /* Define to 1 if you have the <openssl/crypto.h> header file. */
+ #undef HAVE_OPENSSL_CRYPTO_H
+ 
+@@ -260,6 +284,9 @@
+ /* Define to 1 if you have the <openssl/evp.h> header file. */
+ #undef HAVE_OPENSSL_EVP_H
+ 
++/* Define to 1 if you have the <openssl/hmac.h> header file. */
++#undef HAVE_OPENSSL_HMAC_H
++
+ /* Define to 1 if you have the <openssl/md4.h> header file. */
+ #undef HAVE_OPENSSL_MD4_H
+ 
+@@ -374,6 +401,12 @@
+ /* Define to 1 if you have the `SSL_get_client_random' function. */
+ #undef HAVE_SSL_GET_CLIENT_RANDOM
+ 
++/* Define to 1 if you have the `SSL_get_server_random' function. */
++#undef HAVE_SSL_GET_SERVER_RANDOM
++
++/* Define to 1 if you have the `SSL_SESSION_get_master_key' function. */
++#undef HAVE_SSL_SESSION_GET_MASTER_KEY
++
+ /* Define to 1 if you have the <stdbool.h> header file. */
+ #undef HAVE_STDBOOL_H
+ 
+diff --git a/src/include/missing-h b/src/include/missing-h
+index 9d59394e4..ab01978cf 100644
+--- a/src/include/missing-h
++++ b/src/include/missing-h
+@@ -83,6 +83,22 @@ RCSIDH(missing_h, "$Id$")
+ #  endif
+ #endif
+ 
++#ifdef HAVE_OPENSSL_SSL_H
++#  include <openssl/ssl.h>
++#endif
++
++#ifdef HAVE_OPENSSL_HMAC_H
++#  include <openssl/hmac.h>
++#endif
++
++#ifdef HAVE_OPENSSL_ASN1_H
++#  include <openssl/asn1.h>
++#endif
++
++#ifdef HAVE_OPENSSL_CONF_H
++#  include <openssl/conf.h>
++#endif
++
+ /*
+  *	Don't look for winsock.h if we're on cygwin.
+  */
+@@ -436,10 +452,63 @@ uint128_t ntohlll(uint128_t num);
+ typedef void(*sig_t)(int);
+ #endif
+ 
++#ifdef HAVE_OPENSSL_HMAC_H
++#  ifndef HAVE_HMAC_CTX_NEW
++HMAC_CTX *HMAC_CTX_new(void);
++#  endif
++#  ifndef HAVE_HMAC_CTX_FREE
++void HMAC_CTX_free(HMAC_CTX *ctx);
++#  endif
++#endif
++
++#ifdef HAVE_OPENSSL_ASN1_H
++#  ifndef HAVE_ASN1_STRING_GET0_DATA
++static inline const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x)
++{
++	/*
++	 * Trick the compiler into not issuing the warning on qualifier stripping.
++	 * We know that ASN1_STRING_data doesn't change x, and we're casting
++	 * the return value back to const immediately, so it's OK.
++	 */
++	union {
++		const ASN1_STRING	*c;
++		ASN1_STRING		*nc;
++	} const_strip = {.c = x};
++	return ASN1_STRING_data(const_strip.nc);
++}
++#  endif
++#endif
++
++#ifdef HAVE_OPENSSL_CONF_H
++#  ifndef HAVE_CONF_MODULES_LOAD_FILE
++static inline int CONF_modules_load_file(const char *filename,
++					 const char *appname,
++					 unsigned long flags)
++{
++	(void)filename;
++	(void)flags;
++	return OPENSSL_config(appname);
++}
++#  endif
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
+ 
++#ifdef HAVE_OPENSSL_SSL_H
++#  ifndef HAVE_SSL_GET_CLIENT_RANDOM
++size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t outlen);
++#  endif
++#  ifndef HAVE_SSL_GET_SERVER_RANDOM
++size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t outlen);
++#  endif
++#  ifndef HAVE_SSL_SESSION_GET_MASTER_KEY
++size_t SSL_SESSION_get_master_key(const SSL_SESSION *s,
++				  unsigned char *out, size_t outlen);
++#  endif
++#endif
++
+ /*
+  *	Not really missing, but may be submitted as patches
+  *	to the talloc project at some point in the future.
+diff --git a/src/lib/missing.c b/src/lib/missing.c
+index 1d73c7609..22fea07f4 100644
+--- a/src/lib/missing.c
++++ b/src/lib/missing.c
+@@ -315,6 +315,69 @@ uint128_t ntohlll(uint128_t const num)
+ }
+ #endif
+ 
++#ifdef HAVE_OPENSSL_HMAC_H
++#  ifndef HAVE_HMAC_CTX_NEW
++HMAC_CTX *HMAC_CTX_new(void)
++{
++	HMAC_CTX *ctx;
++	ctx = OPENSSL_malloc(sizeof(*ctx));
++	memset(ctx, 0, sizeof(*ctx));
++	if (ctx == NULL) {
++                return NULL;
++        }
++        HMAC_CTX_init(ctx);
++	return ctx;
++}
++#  endif
++#  ifndef HAVE_HMAC_CTX_FREE
++void HMAC_CTX_free(HMAC_CTX *ctx)
++{
++        if (ctx == NULL) {
++                return;
++        }
++        HMAC_CTX_cleanup(ctx);
++        OPENSSL_free(ctx);
++}
++#  endif
++#endif
++
++#ifdef HAVE_OPENSSL_SSL_H
++#  ifndef HAVE_SSL_GET_CLIENT_RANDOM
++size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t outlen)
++{
++	if (!outlen) return sizeof(s->s3->client_random);
++
++	if (outlen > sizeof(s->s3->client_random)) outlen = sizeof(s->s3->client_random);
++
++	memcpy(out, s->s3->client_random, outlen);
++	return outlen;
++}
++#  endif
++#  ifndef HAVE_SSL_GET_SERVER_RANDOM
++size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t outlen)
++{
++	if (!outlen) return sizeof(s->s3->server_random);
++
++	if (outlen > sizeof(s->s3->server_random)) outlen = sizeof(s->s3->server_random);
++
++	memcpy(out, s->s3->server_random, outlen);
++	return outlen;
++}
++#  endif
++#  ifndef HAVE_SSL_SESSION_GET_MASTER_KEY
++size_t SSL_SESSION_get_master_key(const SSL_SESSION *s,
++				  unsigned char *out, size_t outlen)
++{
++	if (!outlen) return s->master_key_length;
++
++	if (outlen > (size_t)s->master_key_length) outlen = (size_t)s->master_key_length;
++
++	memcpy(out, s->master_key, outlen);
++	return outlen;
++}
++#  endif
++#endif
++
+ /** Call talloc strdup, setting the type on the new chunk correctly
+  *
+  * For some bizarre reason the talloc string functions don't set the
+diff --git a/src/main/threads.c b/src/main/threads.c
+index 58bc90803..ae5a5ae06 100644
+--- a/src/main/threads.c
++++ b/src/main/threads.c
+@@ -222,6 +222,7 @@ static const CONF_PARSER thread_config[] = {
+ 
+ static pthread_mutex_t *ssl_mutexes = NULL;
+ 
++#ifdef HAVE_CRYPTO_SET_ID_CALLBACK
+ static unsigned long ssl_id_function(void)
+ {
+ 	unsigned long ret;
+@@ -235,7 +236,9 @@ static unsigned long ssl_id_function(void)
+ 
+ 	return ret;
+ }
++#endif
+ 
++#ifdef HAVE_CRYPTO_SET_LOCKING_CALLBACK
+ static void ssl_locking_function(int mode, int n, UNUSED char const *file, UNUSED int line)
+ {
+ 	if (mode & CRYPTO_LOCK) {
+@@ -244,6 +247,7 @@ static void ssl_locking_function(int mode, int n, UNUSED char const *file, UNUSE
+ 		pthread_mutex_unlock(&(ssl_mutexes[n]));
+ 	}
+ }
++#endif
+ 
+ static int setup_ssl_mutexes(void)
+ {
+@@ -259,8 +263,12 @@ static int setup_ssl_mutexes(void)
+ 		pthread_mutex_init(&(ssl_mutexes[i]), NULL);
+ 	}
+ 
++#ifdef HAVE_CRYPTO_SET_ID_CALLBACK
+ 	CRYPTO_set_id_callback(ssl_id_function);
++#endif
++#ifdef HAVE_CRYPTO_SET_LOCKING_CALLBACK
+ 	CRYPTO_set_locking_callback(ssl_locking_function);
++#endif
+ 
+ 	return 1;
+ }
+@@ -718,7 +726,11 @@ static void *request_handler_thread(void *arg)
+ 	 *	must remove the thread's error queue before
+ 	 *	exiting to prevent memory leaks.
+ 	 */
++#if OPENSSL_VERSION_NUMBER < 0x10000000L
+ 	ERR_remove_state(0);
++#elif OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
++	ERR_remove_thread_state(NULL);
++#endif
+ #endif
+ 
+ 	pthread_mutex_lock(&thread_pool.queue_mutex);
+@@ -1101,8 +1113,12 @@ void thread_pool_stop(void)
+ 	 *	We're no longer threaded.  Remove the mutexes and free
+ 	 *	the memory.
+ 	 */
++#ifdef HAVE_CRYPTO_SET_ID_CALLBACK
+ 	CRYPTO_set_id_callback(NULL);
++#endif
++#ifdef HAVE_CRYPTO_SET_LOCKING_CALLBACK
+ 	CRYPTO_set_locking_callback(NULL);
++#endif
+ 
+ 	free(ssl_mutexes);
+ #endif
+diff --git a/src/main/tls.c b/src/main/tls.c
+index 7cc5f032b..61820c9cf 100644
+--- a/src/main/tls.c
++++ b/src/main/tls.c
+@@ -1411,7 +1411,11 @@ error:
+ 	return 0;
+ }
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ static SSL_SESSION *cbtls_get_session(SSL *ssl, unsigned char *data, int len, int *copy)
++#else
++static SSL_SESSION *cbtls_get_session(SSL *ssl, const unsigned char *data, int len, int *copy)
++#endif
+ {
+ 	size_t			size;
+ 	char			buffer[2 * MAX_SESSION_SIZE + 1];
+@@ -1910,8 +1914,11 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ 	char		cn_str[1024];
+ 	char		buf[64];
+ 	X509		*client_cert;
+-	X509_CINF	*client_inf;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++	const STACK_OF(X509_EXTENSION) *ext_list;
++#else
+ 	STACK_OF(X509_EXTENSION) *ext_list;
++#endif
+ 	SSL		*ssl;
+ 	int		err, depth, lookup, loc;
+ 	fr_tls_server_conf_t *conf;
+@@ -2016,7 +2023,7 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ 		rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
+ 	}
+ 
+-	X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert), issuer,
++	X509_NAME_oneline(X509_get_issuer_name(client_cert), issuer,
+ 			  sizeof(issuer));
+ 	issuer[sizeof(issuer) - 1] = '\0';
+ 	if (certs && identity && (lookup <= 1) && issuer[0]) {
+@@ -2053,14 +2060,14 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ #ifdef GEN_EMAIL
+ 				case GEN_EMAIL:
+ 					vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_SAN_EMAIL][lookup],
+-						      (char *) ASN1_STRING_data(name->d.rfc822Name), T_OP_SET);
++						      (char const *) ASN1_STRING_get0_data(name->d.rfc822Name), T_OP_SET);
+ 					rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
+ 					break;
+ #endif	/* GEN_EMAIL */
+ #ifdef GEN_DNS
+ 				case GEN_DNS:
+ 					vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_SAN_DNS][lookup],
+-						      (char *) ASN1_STRING_data(name->d.dNSName), T_OP_SET);
++						      (char const *) ASN1_STRING_get0_data(name->d.dNSName), T_OP_SET);
+ 					rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
+ 					break;
+ #endif	/* GEN_DNS */
+@@ -2071,7 +2078,7 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ 					    /* we've got a UPN - Must be ASN1-encoded UTF8 string */
+ 					    if (name->d.otherName->value->type == V_ASN1_UTF8STRING) {
+ 						    vp = fr_pair_make(talloc_ctx, certs, cert_attr_names[FR_TLS_SAN_UPN][lookup],
+-								  (char *) ASN1_STRING_data(name->d.otherName->value->value.utf8string), T_OP_SET);
++								  (char const *) ASN1_STRING_get0_data(name->d.otherName->value->value.utf8string), T_OP_SET);
+ 						    rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
+ 						break;
+ 					    } else {
+@@ -2109,8 +2116,13 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ 	}
+ 
+ 	if (lookup == 0) {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++		ext_list = X509_get0_extensions(client_cert);
++#else
++		X509_CINF	*client_inf;
+ 		client_inf = client_cert->cert_info;
+ 		ext_list = client_inf->extensions;
++#endif
+ 	} else {
+ 		ext_list = NULL;
+ 	}
+@@ -2170,7 +2182,7 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+ 
+ 	REXDENT();
+ 
+-	switch (ctx->error) {
++	switch (X509_STORE_CTX_get_error(ctx)) {
+ 	case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
+ 		RERROR("issuer=%s", issuer);
+ 		break;
+@@ -2451,7 +2463,7 @@ void tls_global_init(void)
+ 	SSL_load_error_strings();	/* readable error messages (examples show call before library_init) */
+ 	SSL_library_init();		/* initialize library */
+ 	OpenSSL_add_all_algorithms();	/* required for SHA2 in OpenSSL < 0.9.8o and 1.0.0.a */
+-	OPENSSL_config(NULL);
++	CONF_modules_load_file(NULL, NULL, 0);
+ 
+ 	/*
+ 	 *	Initialize the index for the certificates.
+@@ -2513,7 +2525,11 @@ int tls_global_version_check(char const *acknowledged)
+  */
+ void tls_global_cleanup(void)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10000000L
+ 	ERR_remove_state(0);
++#elif OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
++	ERR_remove_thread_state(NULL);
++#endif
+ 	ENGINE_cleanup();
+ 	CONF_modules_unload(1);
+ 	ERR_free_strings();
+diff --git a/src/modules/rlm_eap/libeap/eap_tls.h b/src/modules/rlm_eap/libeap/eap_tls.h
+index 9c357e2a7..73c7fdd53 100644
+--- a/src/modules/rlm_eap/libeap/eap_tls.h
++++ b/src/modules/rlm_eap/libeap/eap_tls.h
+@@ -62,7 +62,6 @@ int	eaptls_fail(eap_handler_t *handler, int peap_flag) CC_HINT(nonnull);
+ int	eaptls_request(EAP_DS *eap_ds, tls_session_t *ssn) CC_HINT(nonnull);
+ 
+ 
+-/* MPPE key generation */
+ void			T_PRF(unsigned char const *secret, unsigned int secret_len, char const *prf_label, unsigned char const *seed,  unsigned int seed_len, unsigned char *out, unsigned int out_len) CC_HINT(nonnull(1,3,6));
+ void	eaptls_gen_mppe_keys(REQUEST *request, SSL *s, char const *prf_label);
+ void	eapttls_gen_challenge(SSL *s, uint8_t *buffer, size_t size);
+diff --git a/src/modules/rlm_eap/libeap/mppe_keys.c b/src/modules/rlm_eap/libeap/mppe_keys.c
+index 88db26e36..1de344746 100644
+--- a/src/modules/rlm_eap/libeap/mppe_keys.c
++++ b/src/modules/rlm_eap/libeap/mppe_keys.c
+@@ -37,51 +37,51 @@ static void P_hash(EVP_MD const *evp_md,
+ 		   unsigned char const *seed,   unsigned int seed_len,
+ 		   unsigned char *out, unsigned int out_len)
+ {
+-	HMAC_CTX ctx_a, ctx_out;
++	HMAC_CTX *ctx_a, *ctx_out;
+ 	unsigned char a[HMAC_MAX_MD_CBLOCK];
+ 	unsigned int size;
+ 
+-	HMAC_CTX_init(&ctx_a);
+-	HMAC_CTX_init(&ctx_out);
++	ctx_a = HMAC_CTX_new();
++	ctx_out = HMAC_CTX_new();
+ #ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
+-	HMAC_CTX_set_flags(&ctx_a, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
+-	HMAC_CTX_set_flags(&ctx_out, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
++	HMAC_CTX_set_flags(ctx_a, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
++	HMAC_CTX_set_flags(ctx_out, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
+ #endif
+-	HMAC_Init_ex(&ctx_a, secret, secret_len, evp_md, NULL);
+-	HMAC_Init_ex(&ctx_out, secret, secret_len, evp_md, NULL);
++	HMAC_Init_ex(ctx_a, secret, secret_len, evp_md, NULL);
++	HMAC_Init_ex(ctx_out, secret, secret_len, evp_md, NULL);
+ 
+-	size = HMAC_size(&ctx_out);
++	size = HMAC_size(ctx_out);
+ 
+ 	/* Calculate A(1) */
+-	HMAC_Update(&ctx_a, seed, seed_len);
+-	HMAC_Final(&ctx_a, a, NULL);
++	HMAC_Update(ctx_a, seed, seed_len);
++	HMAC_Final(ctx_a, a, NULL);
+ 
+ 	while (1) {
+ 		/* Calculate next part of output */
+-		HMAC_Update(&ctx_out, a, size);
+-		HMAC_Update(&ctx_out, seed, seed_len);
++		HMAC_Update(ctx_out, a, size);
++		HMAC_Update(ctx_out, seed, seed_len);
+ 
+ 		/* Check if last part */
+ 		if (out_len < size) {
+-			HMAC_Final(&ctx_out, a, NULL);
++			HMAC_Final(ctx_out, a, NULL);
+ 			memcpy(out, a, out_len);
+ 			break;
+ 		}
+ 
+ 		/* Place digest in output buffer */
+-		HMAC_Final(&ctx_out, out, NULL);
+-		HMAC_Init_ex(&ctx_out, NULL, 0, NULL, NULL);
++		HMAC_Final(ctx_out, out, NULL);
++		HMAC_Init_ex(ctx_out, NULL, 0, NULL, NULL);
+ 		out += size;
+ 		out_len -= size;
+ 
+ 		/* Calculate next A(i) */
+-		HMAC_Init_ex(&ctx_a, NULL, 0, NULL, NULL);
+-		HMAC_Update(&ctx_a, a, size);
+-		HMAC_Final(&ctx_a, a, NULL);
++		HMAC_Init_ex(ctx_a, NULL, 0, NULL, NULL);
++		HMAC_Update(ctx_a, a, size);
++		HMAC_Final(ctx_a, a, NULL);
+ 	}
+ 
+-	HMAC_CTX_cleanup(&ctx_a);
+-	HMAC_CTX_cleanup(&ctx_out);
++	HMAC_CTX_free(ctx_a);
++	HMAC_CTX_free(ctx_out);
+ 	memset(a, 0, sizeof(a));
+ }
+ 
+@@ -243,14 +243,9 @@ void eaptls_gen_eap_key(RADIUS_PACKET *packet, SSL *s, uint32_t header)
+ 
+ 	p[0] = header & 0xff;
+ 
+-#ifdef HAVE_SSL_GET_CLIENT_RANDOM
+ 	SSL_get_client_random(s, p + 1, SSL3_RANDOM_SIZE);
+ 	SSL_get_server_random(s, p + 1 + SSL3_RANDOM_SIZE, SSL3_RANDOM_SIZE);
+-#else
+-	memcpy(p + 1, s->s3->client_random, SSL3_RANDOM_SIZE);
+-	memcpy(p + 1 + SSL3_RANDOM_SIZE,
+-	       s->s3->server_random, SSL3_RANDOM_SIZE);
+-#endif
++
+ 	vp->vp_octets = p;
+ 	fr_pair_add(&packet->vps, vp);
+ }
+@@ -260,22 +255,24 @@ void eaptls_gen_eap_key(RADIUS_PACKET *packet, SSL *s, uint32_t header)
+  */
+ void eap_fast_tls_gen_challenge(SSL *s, uint8_t *buffer, uint8_t *scratch, size_t size, char const *prf_label)
+ {
++	uint8_t *p;
++	size_t len, master_key_len;
+ 	uint8_t seed[128 + 2*SSL3_RANDOM_SIZE];
+-	uint8_t *p = seed;
+-	size_t len;
++	uint8_t master_key[SSL_MAX_MASTER_KEY_LENGTH];
+ 
+ 	len = strlen(prf_label);
+ 	if (len > 128) len = 128;
+ 
++	p = seed;
+ 	memcpy(p, prf_label, len);
+ 	p += len;
+-	memcpy(p, s->s3->server_random, SSL3_RANDOM_SIZE);
++	SSL_get_server_random(s, p, SSL3_RANDOM_SIZE);
+ 	p += SSL3_RANDOM_SIZE;
+-	memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE);
++	SSL_get_client_random(s, p, SSL3_RANDOM_SIZE);
+ 	p += SSL3_RANDOM_SIZE;
+ 
+-	PRF(s->session->master_key, s->session->master_key_length,
+-	    seed, p - seed, buffer, scratch, size);
++	master_key_len = SSL_SESSION_get_master_key(SSL_get_session(s), master_key, sizeof(master_key));
++	PRF(master_key, master_key_len, seed, p - seed, buffer, scratch, size);
+ }
+ 
+ 
+diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/all.mk.in b/src/modules/rlm_eap/types/rlm_eap_fast/all.mk.in
+new file mode 100644
+index 000000000..3690f2419
+--- /dev/null
++++ b/src/modules/rlm_eap/types/rlm_eap_fast/all.mk.in
+@@ -0,0 +1,10 @@
++TARGETNAME	:= @targetname@
++
++ifneq "$(OPENSSL_LIBS)" ""
++TARGET		:= $(TARGETNAME).a
++endif
++
++SOURCES		:= $(TARGETNAME).c eap_fast.c eap_fast_crypto.c
++
++SRC_INCDIRS	:= ${top_srcdir}/src/modules/rlm_eap/ ${top_srcdir}/src/modules/rlm_eap/libeap/
++TGT_PREREQS	:= libfreeradius-eap.a
+diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/configure b/src/modules/rlm_eap/types/rlm_eap_fast/configure
+new file mode 100755
+index 000000000..f68299bc7
+--- /dev/null
++++ b/src/modules/rlm_eap/types/rlm_eap_fast/configure
+@@ -0,0 +1,4550 @@
++#! /bin/sh
++# From configure.ac Revision.
++# Guess values for system-dependent variables and create Makefiles.
++# Generated by GNU Autoconf 2.69.
++#
++#
++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
++#
++#
++# This configure script is free software; the Free Software Foundation
++# gives unlimited permission to copy, distribute and modify it.
++## -------------------- ##
++## M4sh Initialization. ##
++## -------------------- ##
++
++# Be more Bourne compatible
++DUALCASE=1; export DUALCASE # for MKS sh
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
++  emulate sh
++  NULLCMD=:
++  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
++  # is contrary to our usage.  Disable this feature.
++  alias -g '${1+"$@"}'='"$@"'
++  setopt NO_GLOB_SUBST
++else
++  case `(set -o) 2>/dev/null` in #(
++  *posix*) :
++    set -o posix ;; #(
++  *) :
++     ;;
++esac
++fi
++
++
++as_nl='
++'
++export as_nl
++# Printing a long string crashes Solaris 7 /usr/bin/printf.
++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
++# Prefer a ksh shell builtin over an external printf program on Solaris,
++# but without wasting forks for bash or zsh.
++if test -z "$BASH_VERSION$ZSH_VERSION" \
++    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
++  as_echo='print -r --'
++  as_echo_n='print -rn --'
++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
++  as_echo='printf %s\n'
++  as_echo_n='printf %s'
++else
++  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
++    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
++    as_echo_n='/usr/ucb/echo -n'
++  else
++    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
++    as_echo_n_body='eval
++      arg=$1;
++      case $arg in #(
++      *"$as_nl"*)
++	expr "X$arg" : "X\\(.*\\)$as_nl";
++	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
++      esac;
++      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
++    '
++    export as_echo_n_body
++    as_echo_n='sh -c $as_echo_n_body as_echo'
++  fi
++  export as_echo_body
++  as_echo='sh -c $as_echo_body as_echo'
++fi
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++  PATH_SEPARATOR=:
++  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
++    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
++      PATH_SEPARATOR=';'
++  }
++fi
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.  Quoting is
++# there to prevent editors from complaining about space-tab.
++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
++# splitting by setting IFS to empty value.)
++IFS=" ""	$as_nl"
++
++# Find who we are.  Look in the path if we contain no directory separator.
++as_myself=
++case $0 in #((
++  *[\\/]* ) as_myself=$0 ;;
++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++  done
++IFS=$as_save_IFS
++
++     ;;
++esac
++# We did not find ourselves, most probably we were run as `sh COMMAND'
++# in which case we are not to be found in the path.
++if test "x$as_myself" = x; then
++  as_myself=$0
++fi
++if test ! -f "$as_myself"; then
++  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
++  exit 1
++fi
++
++# Unset variables that we do not need and which cause bugs (e.g. in
++# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
++# suppresses any "Segmentation fault" message there.  '((' could
++# trigger a bug in pdksh 5.2.14.
++for as_var in BASH_ENV ENV MAIL MAILPATH
++do eval test x\${$as_var+set} = xset \
++  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
++done
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++LC_ALL=C
++export LC_ALL
++LANGUAGE=C
++export LANGUAGE
++
++# CDPATH.
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
++
++# Use a proper internal environment variable to ensure we don't fall
++  # into an infinite loop, continuously re-executing ourselves.
++  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
++    _as_can_reexec=no; export _as_can_reexec;
++    # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++  *v*x* | *x*v* ) as_opts=-vx ;;
++  *v* ) as_opts=-v ;;
++  *x* ) as_opts=-x ;;
++  * ) as_opts= ;;
++esac
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++as_fn_exit 255
++  fi
++  # We don't want this to propagate to other subprocesses.
++          { _as_can_reexec=; unset _as_can_reexec;}
++if test "x$CONFIG_SHELL" = x; then
++  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
++  emulate sh
++  NULLCMD=:
++  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
++  # is contrary to our usage.  Disable this feature.
++  alias -g '\${1+\"\$@\"}'='\"\$@\"'
++  setopt NO_GLOB_SUBST
++else
++  case \`(set -o) 2>/dev/null\` in #(
++  *posix*) :
++    set -o posix ;; #(
++  *) :
++     ;;
++esac
++fi
++"
++  as_required="as_fn_return () { (exit \$1); }
++as_fn_success () { as_fn_return 0; }
++as_fn_failure () { as_fn_return 1; }
++as_fn_ret_success () { return 0; }
++as_fn_ret_failure () { return 1; }
++
++exitcode=0
++as_fn_success || { exitcode=1; echo as_fn_success failed.; }
++as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
++as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
++as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
++if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
++
++else
++  exitcode=1; echo positional parameters were not saved.
++fi
++test x\$exitcode = x0 || exit 1
++test -x / || exit 1"
++  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
++  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
++  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
++  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
++test \$(( 1 + 1 )) = 2 || exit 1"
++  if (eval "$as_required") 2>/dev/null; then :
++  as_have_required=yes
++else
++  as_have_required=no
++fi
++  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
++
++else
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++as_found=false
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  as_found=:
++  case $as_dir in #(
++	 /*)
++	   for as_base in sh bash ksh sh5; do
++	     # Try only shells that exist, to save several forks.
++	     as_shell=$as_dir/$as_base
++	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
++		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
++  CONFIG_SHELL=$as_shell as_have_required=yes
++		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
++  break 2
++fi
++fi
++	   done;;
++       esac
++  as_found=false
++done
++$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
++	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
++  CONFIG_SHELL=$SHELL as_have_required=yes
++fi; }
++IFS=$as_save_IFS
++
++
++      if test "x$CONFIG_SHELL" != x; then :
++  export CONFIG_SHELL
++             # We cannot yet assume a decent shell, so we have to provide a
++# neutralization value for shells without unset; and this also
++# works around shells that cannot unset nonexistent variables.
++# Preserve -v and -x to the replacement shell.
++BASH_ENV=/dev/null
++ENV=/dev/null
++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
++case $- in # ((((
++  *v*x* | *x*v* ) as_opts=-vx ;;
++  *v* ) as_opts=-v ;;
++  *x* ) as_opts=-x ;;
++  * ) as_opts= ;;
++esac
++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++# Admittedly, this is quite paranoid, since all the known shells bail
++# out after a failed `exec'.
++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
++exit 255
++fi
++
++    if test x$as_have_required = xno; then :
++  $as_echo "$0: This script requires a shell more modern than all"
++  $as_echo "$0: the shells that I found on your system."
++  if test x${ZSH_VERSION+set} = xset ; then
++    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
++    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
++  else
++    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
++$0: including any error possibly output before this
++$0: message. Then install a modern shell, or manually run
++$0: the script under such a shell if you do have one."
++  fi
++  exit 1
++fi
++fi
++fi
++SHELL=${CONFIG_SHELL-/bin/sh}
++export SHELL
++# Unset more variables known to interfere with behavior of common tools.
++CLICOLOR_FORCE= GREP_OPTIONS=
++unset CLICOLOR_FORCE GREP_OPTIONS
++
++## --------------------- ##
++## M4sh Shell Functions. ##
++## --------------------- ##
++# as_fn_unset VAR
++# ---------------
++# Portably unset VAR.
++as_fn_unset ()
++{
++  { eval $1=; unset $1;}
++}
++as_unset=as_fn_unset
++
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++  return $1
++} # as_fn_set_status
++
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++  set +e
++  as_fn_set_status $1
++  exit $1
++} # as_fn_exit
++
++# as_fn_mkdir_p
++# -------------
++# Create "$as_dir" as a directory, including parents if necessary.
++as_fn_mkdir_p ()
++{
++
++  case $as_dir in #(
++  -*) as_dir=./$as_dir;;
++  esac
++  test -d "$as_dir" || eval $as_mkdir_p || {
++    as_dirs=
++    while :; do
++      case $as_dir in #(
++      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++      *) as_qdir=$as_dir;;
++      esac
++      as_dirs="'$as_qdir' $as_dirs"
++      as_dir=`$as_dirname -- "$as_dir" ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++	 X"$as_dir" : 'X\(//\)[^/]' \| \
++	 X"$as_dir" : 'X\(//\)$' \| \
++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$as_dir" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)[^/].*/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++      test -d "$as_dir" && break
++    done
++    test -z "$as_dirs" || eval "mkdir $as_dirs"
++  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
++
++
++} # as_fn_mkdir_p
++
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++  test -f "$1" && test -x "$1"
++} # as_fn_executable_p
++# as_fn_append VAR VALUE
++# ----------------------
++# Append the text in VALUE to the end of the definition contained in VAR. Take
++# advantage of any shell optimizations that allow amortized linear growth over
++# repeated appends, instead of the typical quadratic growth present in naive
++# implementations.
++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
++  eval 'as_fn_append ()
++  {
++    eval $1+=\$2
++  }'
++else
++  as_fn_append ()
++  {
++    eval $1=\$$1\$2
++  }
++fi # as_fn_append
++
++# as_fn_arith ARG...
++# ------------------
++# Perform arithmetic evaluation on the ARGs, and store the result in the
++# global $as_val. Take advantage of shells that can avoid forks. The arguments
++# must be portable across $(()) and expr.
++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
++  eval 'as_fn_arith ()
++  {
++    as_val=$(( $* ))
++  }'
++else
++  as_fn_arith ()
++  {
++    as_val=`expr "$@" || test $? -eq 1`
++  }
++fi # as_fn_arith
++
++
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
++# script with STATUS, using 1 if that was 0.
++as_fn_error ()
++{
++  as_status=$1; test $as_status -eq 0 && as_status=1
++  if test "$4"; then
++    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++  fi
++  $as_echo "$as_me: error: $2" >&2
++  as_fn_exit $as_status
++} # as_fn_error
++
++if expr a : '\(a\)' >/dev/null 2>&1 &&
++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
++  as_dirname=dirname
++else
++  as_dirname=false
++fi
++
++as_me=`$as_basename -- "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++	 X"$0" : 'X\(//\)$' \| \
++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\/\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\/\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++
++  as_lineno_1=$LINENO as_lineno_1a=$LINENO
++  as_lineno_2=$LINENO as_lineno_2a=$LINENO
++  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
++  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
++  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
++  sed -n '
++    p
++    /[$]LINENO/=
++  ' <$as_myself |
++    sed '
++      s/[$]LINENO.*/&-/
++      t lineno
++      b
++      :lineno
++      N
++      :loop
++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
++      t loop
++      s/-\n.*//
++    ' >$as_me.lineno &&
++  chmod +x "$as_me.lineno" ||
++    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
++
++  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
++  # already done that, so ensure we don't try to do so again and fall
++  # in an infinite loop.  This has already happened in practice.
++  _as_can_reexec=no; export _as_can_reexec
++  # Don't try to exec as it changes $[0], causing all sort of problems
++  # (the dirname of $[0] is not the place where we might find the
++  # original and so on.  Autoconf is especially sensitive to this).
++  . "./$as_me.lineno"
++  # Exit status is that of the last command.
++  exit
++}
++
++ECHO_C= ECHO_N= ECHO_T=
++case `echo -n x` in #(((((
++-n*)
++  case `echo 'xy\c'` in
++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
++  xy)  ECHO_C='\c';;
++  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
++       ECHO_T='	';;
++  esac;;
++*)
++  ECHO_N='-n';;
++esac
++
++rm -f conf$$ conf$$.exe conf$$.file
++if test -d conf$$.dir; then
++  rm -f conf$$.dir/conf$$.file
++else
++  rm -f conf$$.dir
++  mkdir conf$$.dir 2>/dev/null
++fi
++if (echo >conf$$.file) 2>/dev/null; then
++  if ln -s conf$$.file conf$$ 2>/dev/null; then
++    as_ln_s='ln -s'
++    # ... but there are two gotchas:
++    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
++    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
++    # In both cases, we have to default to `cp -pR'.
++    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
++      as_ln_s='cp -pR'
++  elif ln conf$$.file conf$$ 2>/dev/null; then
++    as_ln_s=ln
++  else
++    as_ln_s='cp -pR'
++  fi
++else
++  as_ln_s='cp -pR'
++fi
++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
++rmdir conf$$.dir 2>/dev/null
++
++if mkdir -p . 2>/dev/null; then
++  as_mkdir_p='mkdir -p "$as_dir"'
++else
++  test -d ./-p && rmdir ./-p
++  as_mkdir_p=false
++fi
++
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
++
++
++test -n "$DJDIR" || exec 7<&0 </dev/null
++exec 6>&1
++
++# Name of the host.
++# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
++# so uname gets run too.
++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
++
++#
++# Initializations.
++#
++ac_default_prefix=/usr/local
++ac_clean_files=
++ac_config_libobj_dir=.
++LIBOBJS=
++cross_compiling=no
++subdirs=
++MFLAGS=
++MAKEFLAGS=
++
++# Identity of this package.
++PACKAGE_NAME=
++PACKAGE_TARNAME=
++PACKAGE_VERSION=
++PACKAGE_STRING=
++PACKAGE_BUGREPORT=
++PACKAGE_URL=
++
++ac_unique_file="rlm_eap_fast.c"
++ac_subst_vars='LTLIBOBJS
++LIBOBJS
++targetname
++mod_cflags
++mod_ldflags
++EGREP
++GREP
++CPP
++OBJEXT
++EXEEXT
++ac_ct_CC
++CPPFLAGS
++LDFLAGS
++CFLAGS
++CC
++target_alias
++host_alias
++build_alias
++LIBS
++ECHO_T
++ECHO_N
++ECHO_C
++DEFS
++mandir
++localedir
++libdir
++psdir
++pdfdir
++dvidir
++htmldir
++infodir
++docdir
++oldincludedir
++includedir
++localstatedir
++sharedstatedir
++sysconfdir
++datadir
++datarootdir
++libexecdir
++sbindir
++bindir
++program_transform_name
++prefix
++exec_prefix
++PACKAGE_URL
++PACKAGE_BUGREPORT
++PACKAGE_STRING
++PACKAGE_VERSION
++PACKAGE_TARNAME
++PACKAGE_NAME
++PATH_SEPARATOR
++SHELL'
++ac_subst_files=''
++ac_user_opts='
++enable_option_checking
++with_openssl_lib_dir
++with_openssl_include_dir
++'
++      ac_precious_vars='build_alias
++host_alias
++target_alias
++CC
++CFLAGS
++LDFLAGS
++LIBS
++CPPFLAGS
++CPP'
++
++
++# Initialize some variables set by options.
++ac_init_help=
++ac_init_version=false
++ac_unrecognized_opts=
++ac_unrecognized_sep=
++# The variables have the same names as the options, with
++# dashes changed to underlines.
++cache_file=/dev/null
++exec_prefix=NONE
++no_create=
++no_recursion=
++prefix=NONE
++program_prefix=NONE
++program_suffix=NONE
++program_transform_name=s,x,x,
++silent=
++site=
++srcdir=
++verbose=
++x_includes=NONE
++x_libraries=NONE
++
++# Installation directory options.
++# These are left unexpanded so users can "make install exec_prefix=/foo"
++# and all the variables that are supposed to be based on exec_prefix
++# by default will actually change.
++# Use braces instead of parens because sh, perl, etc. also accept them.
++# (The list follows the same order as the GNU Coding Standards.)
++bindir='${exec_prefix}/bin'
++sbindir='${exec_prefix}/sbin'
++libexecdir='${exec_prefix}/libexec'
++datarootdir='${prefix}/share'
++datadir='${datarootdir}'
++sysconfdir='${prefix}/etc'
++sharedstatedir='${prefix}/com'
++localstatedir='${prefix}/var'
++includedir='${prefix}/include'
++oldincludedir='/usr/include'
++docdir='${datarootdir}/doc/${PACKAGE}'
++infodir='${datarootdir}/info'
++htmldir='${docdir}'
++dvidir='${docdir}'
++pdfdir='${docdir}'
++psdir='${docdir}'
++libdir='${exec_prefix}/lib'
++localedir='${datarootdir}/locale'
++mandir='${datarootdir}/man'
++
++ac_prev=
++ac_dashdash=
++for ac_option
++do
++  # If the previous option needs an argument, assign it.
++  if test -n "$ac_prev"; then
++    eval $ac_prev=\$ac_option
++    ac_prev=
++    continue
++  fi
++
++  case $ac_option in
++  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
++  *=)   ac_optarg= ;;
++  *)    ac_optarg=yes ;;
++  esac
++
++  # Accept the important Cygnus configure options, so we can diagnose typos.
++
++  case $ac_dashdash$ac_option in
++  --)
++    ac_dashdash=yes ;;
++
++  -bindir | --bindir | --bindi | --bind | --bin | --bi)
++    ac_prev=bindir ;;
++  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
++    bindir=$ac_optarg ;;
++
++  -build | --build | --buil | --bui | --bu)
++    ac_prev=build_alias ;;
++  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
++    build_alias=$ac_optarg ;;
++
++  -cache-file | --cache-file | --cache-fil | --cache-fi \
++  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
++    ac_prev=cache_file ;;
++  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
++  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
++    cache_file=$ac_optarg ;;
++
++  --config-cache | -C)
++    cache_file=config.cache ;;
++
++  -datadir | --datadir | --datadi | --datad)
++    ac_prev=datadir ;;
++  -datadir=* | --datadir=* | --datadi=* | --datad=*)
++    datadir=$ac_optarg ;;
++
++  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
++  | --dataroo | --dataro | --datar)
++    ac_prev=datarootdir ;;
++  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
++  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
++    datarootdir=$ac_optarg ;;
++
++  -disable-* | --disable-*)
++    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
++    # Reject names that are not valid shell variable names.
++    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
++      as_fn_error $? "invalid feature name: $ac_useropt"
++    ac_useropt_orig=$ac_useropt
++    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
++    case $ac_user_opts in
++      *"
++"enable_$ac_useropt"
++"*) ;;
++      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
++	 ac_unrecognized_sep=', ';;
++    esac
++    eval enable_$ac_useropt=no ;;
++
++  -docdir | --docdir | --docdi | --doc | --do)
++    ac_prev=docdir ;;
++  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
++    docdir=$ac_optarg ;;
++
++  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
++    ac_prev=dvidir ;;
++  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
++    dvidir=$ac_optarg ;;
++
++  -enable-* | --enable-*)
++    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
++    # Reject names that are not valid shell variable names.
++    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
++      as_fn_error $? "invalid feature name: $ac_useropt"
++    ac_useropt_orig=$ac_useropt
++    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
++    case $ac_user_opts in
++      *"
++"enable_$ac_useropt"
++"*) ;;
++      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
++	 ac_unrecognized_sep=', ';;
++    esac
++    eval enable_$ac_useropt=\$ac_optarg ;;
++
++  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
++  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
++  | --exec | --exe | --ex)
++    ac_prev=exec_prefix ;;
++  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
++  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
++  | --exec=* | --exe=* | --ex=*)
++    exec_prefix=$ac_optarg ;;
++
++  -gas | --gas | --ga | --g)
++    # Obsolete; use --with-gas.
++    with_gas=yes ;;
++
++  -help | --help | --hel | --he | -h)
++    ac_init_help=long ;;
++  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
++    ac_init_help=recursive ;;
++  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
++    ac_init_help=short ;;
++
++  -host | --host | --hos | --ho)
++    ac_prev=host_alias ;;
++  -host=* | --host=* | --hos=* | --ho=*)
++    host_alias=$ac_optarg ;;
++
++  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
++    ac_prev=htmldir ;;
++  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
++  | --ht=*)
++    htmldir=$ac_optarg ;;
++
++  -includedir | --includedir | --includedi | --included | --include \
++  | --includ | --inclu | --incl | --inc)
++    ac_prev=includedir ;;
++  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
++  | --includ=* | --inclu=* | --incl=* | --inc=*)
++    includedir=$ac_optarg ;;
++
++  -infodir | --infodir | --infodi | --infod | --info | --inf)
++    ac_prev=infodir ;;
++  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
++    infodir=$ac_optarg ;;
++
++  -libdir | --libdir | --libdi | --libd)
++    ac_prev=libdir ;;
++  -libdir=* | --libdir=* | --libdi=* | --libd=*)
++    libdir=$ac_optarg ;;
++
++  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
++  | --libexe | --libex | --libe)
++    ac_prev=libexecdir ;;
++  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
++  | --libexe=* | --libex=* | --libe=*)
++    libexecdir=$ac_optarg ;;
++
++  -localedir | --localedir | --localedi | --localed | --locale)
++    ac_prev=localedir ;;
++  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
++    localedir=$ac_optarg ;;
++
++  -localstatedir | --localstatedir | --localstatedi | --localstated \
++  | --localstate | --localstat | --localsta | --localst | --locals)
++    ac_prev=localstatedir ;;
++  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
++  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
++    localstatedir=$ac_optarg ;;
++
++  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
++    ac_prev=mandir ;;
++  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
++    mandir=$ac_optarg ;;
++
++  -nfp | --nfp | --nf)
++    # Obsolete; use --without-fp.
++    with_fp=no ;;
++
++  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++  | --no-cr | --no-c | -n)
++    no_create=yes ;;
++
++  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
++    no_recursion=yes ;;
++
++  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
++  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
++  | --oldin | --oldi | --old | --ol | --o)
++    ac_prev=oldincludedir ;;
++  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
++  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
++  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
++    oldincludedir=$ac_optarg ;;
++
++  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
++    ac_prev=prefix ;;
++  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
++    prefix=$ac_optarg ;;
++
++  -program-prefix | --program-prefix | --program-prefi | --program-pref \
++  | --program-pre | --program-pr | --program-p)
++    ac_prev=program_prefix ;;
++  -program-prefix=* | --program-prefix=* | --program-prefi=* \
++  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
++    program_prefix=$ac_optarg ;;
++
++  -program-suffix | --program-suffix | --program-suffi | --program-suff \
++  | --program-suf | --program-su | --program-s)
++    ac_prev=program_suffix ;;
++  -program-suffix=* | --program-suffix=* | --program-suffi=* \
++  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
++    program_suffix=$ac_optarg ;;
++
++  -program-transform-name | --program-transform-name \
++  | --program-transform-nam | --program-transform-na \
++  | --program-transform-n | --program-transform- \
++  | --program-transform | --program-transfor \
++  | --program-transfo | --program-transf \
++  | --program-trans | --program-tran \
++  | --progr-tra | --program-tr | --program-t)
++    ac_prev=program_transform_name ;;
++  -program-transform-name=* | --program-transform-name=* \
++  | --program-transform-nam=* | --program-transform-na=* \
++  | --program-transform-n=* | --program-transform-=* \
++  | --program-transform=* | --program-transfor=* \
++  | --program-transfo=* | --program-transf=* \
++  | --program-trans=* | --program-tran=* \
++  | --progr-tra=* | --program-tr=* | --program-t=*)
++    program_transform_name=$ac_optarg ;;
++
++  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
++    ac_prev=pdfdir ;;
++  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
++    pdfdir=$ac_optarg ;;
++
++  -psdir | --psdir | --psdi | --psd | --ps)
++    ac_prev=psdir ;;
++  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
++    psdir=$ac_optarg ;;
++
++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++  | -silent | --silent | --silen | --sile | --sil)
++    silent=yes ;;
++
++  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
++    ac_prev=sbindir ;;
++  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
++  | --sbi=* | --sb=*)
++    sbindir=$ac_optarg ;;
++
++  -sharedstatedir | --sharedstatedir | --sharedstatedi \
++  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
++  | --sharedst | --shareds | --shared | --share | --shar \
++  | --sha | --sh)
++    ac_prev=sharedstatedir ;;
++  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
++  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
++  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
++  | --sha=* | --sh=*)
++    sharedstatedir=$ac_optarg ;;
++
++  -site | --site | --sit)
++    ac_prev=site ;;
++  -site=* | --site=* | --sit=*)
++    site=$ac_optarg ;;
++
++  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
++    ac_prev=srcdir ;;
++  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
++    srcdir=$ac_optarg ;;
++
++  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
++  | --syscon | --sysco | --sysc | --sys | --sy)
++    ac_prev=sysconfdir ;;
++  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
++  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
++    sysconfdir=$ac_optarg ;;
++
++  -target | --target | --targe | --targ | --tar | --ta | --t)
++    ac_prev=target_alias ;;
++  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
++    target_alias=$ac_optarg ;;
++
++  -v | -verbose | --verbose | --verbos | --verbo | --verb)
++    verbose=yes ;;
++
++  -version | --version | --versio | --versi | --vers | -V)
++    ac_init_version=: ;;
++
++  -with-* | --with-*)
++    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
++    # Reject names that are not valid shell variable names.
++    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
++      as_fn_error $? "invalid package name: $ac_useropt"
++    ac_useropt_orig=$ac_useropt
++    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
++    case $ac_user_opts in
++      *"
++"with_$ac_useropt"
++"*) ;;
++      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
++	 ac_unrecognized_sep=', ';;
++    esac
++    eval with_$ac_useropt=\$ac_optarg ;;
++
++  -without-* | --without-*)
++    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
++    # Reject names that are not valid shell variable names.
++    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
++      as_fn_error $? "invalid package name: $ac_useropt"
++    ac_useropt_orig=$ac_useropt
++    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
++    case $ac_user_opts in
++      *"
++"with_$ac_useropt"
++"*) ;;
++      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
++	 ac_unrecognized_sep=', ';;
++    esac
++    eval with_$ac_useropt=no ;;
++
++  --x)
++    # Obsolete; use --with-x.
++    with_x=yes ;;
++
++  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
++  | --x-incl | --x-inc | --x-in | --x-i)
++    ac_prev=x_includes ;;
++  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
++  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
++    x_includes=$ac_optarg ;;
++
++  -x-libraries | --x-libraries | --x-librarie | --x-librari \
++  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
++    ac_prev=x_libraries ;;
++  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
++  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
++    x_libraries=$ac_optarg ;;
++
++  -*) as_fn_error $? "unrecognized option: \`$ac_option'
++Try \`$0 --help' for more information"
++    ;;
++
++  *=*)
++    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
++    # Reject names that are not valid shell variable names.
++    case $ac_envvar in #(
++      '' | [0-9]* | *[!_$as_cr_alnum]* )
++      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
++    esac
++    eval $ac_envvar=\$ac_optarg
++    export $ac_envvar ;;
++
++  *)
++    # FIXME: should be removed in autoconf 3.0.
++    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
++    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
++      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
++    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
++    ;;
++
++  esac
++done
++
++if test -n "$ac_prev"; then
++  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
++  as_fn_error $? "missing argument to $ac_option"
++fi
++
++if test -n "$ac_unrecognized_opts"; then
++  case $enable_option_checking in
++    no) ;;
++    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
++    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
++  esac
++fi
++
++# Check all directory arguments for consistency.
++for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
++		datadir sysconfdir sharedstatedir localstatedir includedir \
++		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
++		libdir localedir mandir
++do
++  eval ac_val=\$$ac_var
++  # Remove trailing slashes.
++  case $ac_val in
++    */ )
++      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
++      eval $ac_var=\$ac_val;;
++  esac
++  # Be sure to have absolute directory names.
++  case $ac_val in
++    [\\/$]* | ?:[\\/]* )  continue;;
++    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
++  esac
++  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
++done
++
++# There might be people who depend on the old broken behavior: `$host'
++# used to hold the argument of --host etc.
++# FIXME: To remove some day.
++build=$build_alias
++host=$host_alias
++target=$target_alias
++
++# FIXME: To remove some day.
++if test "x$host_alias" != x; then
++  if test "x$build_alias" = x; then
++    cross_compiling=maybe
++  elif test "x$build_alias" != "x$host_alias"; then
++    cross_compiling=yes
++  fi
++fi
++
++ac_tool_prefix=
++test -n "$host_alias" && ac_tool_prefix=$host_alias-
++
++test "$silent" = yes && exec 6>/dev/null
++
++
++ac_pwd=`pwd` && test -n "$ac_pwd" &&
++ac_ls_di=`ls -di .` &&
++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
++  as_fn_error $? "working directory cannot be determined"
++test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
++  as_fn_error $? "pwd does not report name of working directory"
++
++
++# Find the source files, if location was not specified.
++if test -z "$srcdir"; then
++  ac_srcdir_defaulted=yes
++  # Try the directory containing this script, then the parent directory.
++  ac_confdir=`$as_dirname -- "$as_myself" ||
++$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++	 X"$as_myself" : 'X\(//\)[^/]' \| \
++	 X"$as_myself" : 'X\(//\)$' \| \
++	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$as_myself" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)[^/].*/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++  srcdir=$ac_confdir
++  if test ! -r "$srcdir/$ac_unique_file"; then
++    srcdir=..
++  fi
++else
++  ac_srcdir_defaulted=no
++fi
++if test ! -r "$srcdir/$ac_unique_file"; then
++  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
++  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
++fi
++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
++ac_abs_confdir=`(
++	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
++	pwd)`
++# When building in place, set srcdir=.
++if test "$ac_abs_confdir" = "$ac_pwd"; then
++  srcdir=.
++fi
++# Remove unnecessary trailing slashes from srcdir.
++# Double slashes in file names in object file debugging info
++# mess up M-x gdb in Emacs.
++case $srcdir in
++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
++esac
++for ac_var in $ac_precious_vars; do
++  eval ac_env_${ac_var}_set=\${${ac_var}+set}
++  eval ac_env_${ac_var}_value=\$${ac_var}
++  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
++  eval ac_cv_env_${ac_var}_value=\$${ac_var}
++done
++
++#
++# Report the --help message.
++#
++if test "$ac_init_help" = "long"; then
++  # Omit some internal or obsolete options to make the list less imposing.
++  # This message is too long to be a string in the A/UX 3.1 sh.
++  cat <<_ACEOF
++\`configure' configures this package to adapt to many kinds of systems.
++
++Usage: $0 [OPTION]... [VAR=VALUE]...
++
++To assign environment variables (e.g., CC, CFLAGS...), specify them as
++VAR=VALUE.  See below for descriptions of some of the useful variables.
++
++Defaults for the options are specified in brackets.
++
++Configuration:
++  -h, --help              display this help and exit
++      --help=short        display options specific to this package
++      --help=recursive    display the short help of all the included packages
++  -V, --version           display version information and exit
++  -q, --quiet, --silent   do not print \`checking ...' messages
++      --cache-file=FILE   cache test results in FILE [disabled]
++  -C, --config-cache      alias for \`--cache-file=config.cache'
++  -n, --no-create         do not create output files
++      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
++
++Installation directories:
++  --prefix=PREFIX         install architecture-independent files in PREFIX
++                          [$ac_default_prefix]
++  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
++                          [PREFIX]
++
++By default, \`make install' will install all the files in
++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
++an installation prefix other than \`$ac_default_prefix' using \`--prefix',
++for instance \`--prefix=\$HOME'.
++
++For better control, use the options below.
++
++Fine tuning of the installation directories:
++  --bindir=DIR            user executables [EPREFIX/bin]
++  --sbindir=DIR           system admin executables [EPREFIX/sbin]
++  --libexecdir=DIR        program executables [EPREFIX/libexec]
++  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
++  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
++  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
++  --libdir=DIR            object code libraries [EPREFIX/lib]
++  --includedir=DIR        C header files [PREFIX/include]
++  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
++  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
++  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
++  --infodir=DIR           info documentation [DATAROOTDIR/info]
++  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
++  --mandir=DIR            man documentation [DATAROOTDIR/man]
++  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
++  --htmldir=DIR           html documentation [DOCDIR]
++  --dvidir=DIR            dvi documentation [DOCDIR]
++  --pdfdir=DIR            pdf documentation [DOCDIR]
++  --psdir=DIR             ps documentation [DOCDIR]
++_ACEOF
++
++  cat <<\_ACEOF
++_ACEOF
++fi
++
++if test -n "$ac_init_help"; then
++
++  cat <<\_ACEOF
++
++Optional Packages:
++  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
++  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
++  --with-openssl-lib-dir=DIR       directory for LDAP library files
++  --with-openssl-include-dir=DIR   directory for LDAP include files
++
++Some influential environment variables:
++  CC          C compiler command
++  CFLAGS      C compiler flags
++  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
++              nonstandard directory <lib dir>
++  LIBS        libraries to pass to the linker, e.g. -l<library>
++  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
++              you have headers in a nonstandard directory <include dir>
++  CPP         C preprocessor
++
++Use these variables to override the choices made by `configure' or to help
++it to find libraries and programs with nonstandard names/locations.
++
++Report bugs to the package provider.
++_ACEOF
++ac_status=$?
++fi
++
++if test "$ac_init_help" = "recursive"; then
++  # If there are subdirs, report their specific --help.
++  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
++    test -d "$ac_dir" ||
++      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
++      continue
++    ac_builddir=.
++
++case "$ac_dir" in
++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
++*)
++  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
++  # A ".." for each directory in $ac_dir_suffix.
++  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
++  case $ac_top_builddir_sub in
++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
++  esac ;;
++esac
++ac_abs_top_builddir=$ac_pwd
++ac_abs_builddir=$ac_pwd$ac_dir_suffix
++# for backward compatibility:
++ac_top_builddir=$ac_top_build_prefix
++
++case $srcdir in
++  .)  # We are building in place.
++    ac_srcdir=.
++    ac_top_srcdir=$ac_top_builddir_sub
++    ac_abs_top_srcdir=$ac_pwd ;;
++  [\\/]* | ?:[\\/]* )  # Absolute name.
++    ac_srcdir=$srcdir$ac_dir_suffix;
++    ac_top_srcdir=$srcdir
++    ac_abs_top_srcdir=$srcdir ;;
++  *) # Relative name.
++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
++    ac_top_srcdir=$ac_top_build_prefix$srcdir
++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
++esac
++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
++
++    cd "$ac_dir" || { ac_status=$?; continue; }
++    # Check for guested configure.
++    if test -f "$ac_srcdir/configure.gnu"; then
++      echo &&
++      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
++    elif test -f "$ac_srcdir/configure"; then
++      echo &&
++      $SHELL "$ac_srcdir/configure" --help=recursive
++    else
++      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
++    fi || ac_status=$?
++    cd "$ac_pwd" || { ac_status=$?; break; }
++  done
++fi
++
++test -n "$ac_init_help" && exit $ac_status
++if $ac_init_version; then
++  cat <<\_ACEOF
++configure
++generated by GNU Autoconf 2.69
++
++Copyright (C) 2012 Free Software Foundation, Inc.
++This configure script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it.
++_ACEOF
++  exit
++fi
++
++## ------------------------ ##
++## Autoconf initialization. ##
++## ------------------------ ##
++
++# ac_fn_c_try_compile LINENO
++# --------------------------
++# Try to compile conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_compile ()
++{
++  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++  rm -f conftest.$ac_objext
++  if { { ac_try="$ac_compile"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_compile") 2>conftest.err
++  ac_status=$?
++  if test -s conftest.err; then
++    grep -v '^ *+' conftest.err >conftest.er1
++    cat conftest.er1 >&5
++    mv -f conftest.er1 conftest.err
++  fi
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; } && {
++	 test -z "$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       } && test -s conftest.$ac_objext; then :
++  ac_retval=0
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++	ac_retval=1
++fi
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++  as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_compile
++
++# ac_fn_c_try_link LINENO
++# -----------------------
++# Try to link conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_link ()
++{
++  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++  rm -f conftest.$ac_objext conftest$ac_exeext
++  if { { ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_link") 2>conftest.err
++  ac_status=$?
++  if test -s conftest.err; then
++    grep -v '^ *+' conftest.err >conftest.er1
++    cat conftest.er1 >&5
++    mv -f conftest.er1 conftest.err
++  fi
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; } && {
++	 test -z "$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       } && test -s conftest$ac_exeext && {
++	 test "$cross_compiling" = yes ||
++	 test -x conftest$ac_exeext
++       }; then :
++  ac_retval=0
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++	ac_retval=1
++fi
++  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
++  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
++  # interfere with the next link command; also delete a directory that is
++  # left behind by Apple's compiler.  We do this before executing the actions.
++  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++  as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_link
++
++# ac_fn_c_try_cpp LINENO
++# ----------------------
++# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
++ac_fn_c_try_cpp ()
++{
++  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++  if { { ac_try="$ac_cpp conftest.$ac_ext"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
++  ac_status=$?
++  if test -s conftest.err; then
++    grep -v '^ *+' conftest.err >conftest.er1
++    cat conftest.er1 >&5
++    mv -f conftest.er1 conftest.err
++  fi
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; } > conftest.i && {
++	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
++	 test ! -s conftest.err
++       }; then :
++  ac_retval=0
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++    ac_retval=1
++fi
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++  as_fn_set_status $ac_retval
++
++} # ac_fn_c_try_cpp
++cat >config.log <<_ACEOF
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++
++It was created by $as_me, which was
++generated by GNU Autoconf 2.69.  Invocation command line was
++
++  $ $0 $@
++
++_ACEOF
++exec 5>>config.log
++{
++cat <<_ASUNAME
++## --------- ##
++## Platform. ##
++## --------- ##
++
++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
++/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
++
++/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
++/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
++/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
++/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
++/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
++/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
++
++_ASUNAME
++
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    $as_echo "PATH: $as_dir"
++  done
++IFS=$as_save_IFS
++
++} >&5
++
++cat >&5 <<_ACEOF
++
++
++## ----------- ##
++## Core tests. ##
++## ----------- ##
++
++_ACEOF
++
++
++# Keep a trace of the command line.
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Strip out --silent because we don't want to record it for future runs.
++# Also quote any args containing shell meta-characters.
++# Make two passes to allow for proper duplicate-argument suppression.
++ac_configure_args=
++ac_configure_args0=
++ac_configure_args1=
++ac_must_keep_next=false
++for ac_pass in 1 2
++do
++  for ac_arg
++  do
++    case $ac_arg in
++    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
++    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++    | -silent | --silent | --silen | --sile | --sil)
++      continue ;;
++    *\'*)
++      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    esac
++    case $ac_pass in
++    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
++    2)
++      as_fn_append ac_configure_args1 " '$ac_arg'"
++      if test $ac_must_keep_next = true; then
++	ac_must_keep_next=false # Got value, back to normal.
++      else
++	case $ac_arg in
++	  *=* | --config-cache | -C | -disable-* | --disable-* \
++	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
++	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
++	  | -with-* | --with-* | -without-* | --without-* | --x)
++	    case "$ac_configure_args0 " in
++	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
++	    esac
++	    ;;
++	  -* ) ac_must_keep_next=true ;;
++	esac
++      fi
++      as_fn_append ac_configure_args " '$ac_arg'"
++      ;;
++    esac
++  done
++done
++{ ac_configure_args0=; unset ac_configure_args0;}
++{ ac_configure_args1=; unset ac_configure_args1;}
++
++# When interrupted or exit'd, cleanup temporary files, and complete
++# config.log.  We remove comments because anyway the quotes in there
++# would cause problems or look ugly.
++# WARNING: Use '\'' to represent an apostrophe within the trap.
++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
++trap 'exit_status=$?
++  # Save into config.log some information that might help in debugging.
++  {
++    echo
++
++    $as_echo "## ---------------- ##
++## Cache variables. ##
++## ---------------- ##"
++    echo
++    # The following way of writing the cache mishandles newlines in values,
++(
++  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
++    eval ac_val=\$$ac_var
++    case $ac_val in #(
++    *${as_nl}*)
++      case $ac_var in #(
++      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
++      esac
++      case $ac_var in #(
++      _ | IFS | as_nl) ;; #(
++      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
++      *) { eval $ac_var=; unset $ac_var;} ;;
++      esac ;;
++    esac
++  done
++  (set) 2>&1 |
++    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
++    *${as_nl}ac_space=\ *)
++      sed -n \
++	"s/'\''/'\''\\\\'\'''\''/g;
++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
++      ;; #(
++    *)
++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
++      ;;
++    esac |
++    sort
++)
++    echo
++
++    $as_echo "## ----------------- ##
++## Output variables. ##
++## ----------------- ##"
++    echo
++    for ac_var in $ac_subst_vars
++    do
++      eval ac_val=\$$ac_var
++      case $ac_val in
++      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
++      esac
++      $as_echo "$ac_var='\''$ac_val'\''"
++    done | sort
++    echo
++
++    if test -n "$ac_subst_files"; then
++      $as_echo "## ------------------- ##
++## File substitutions. ##
++## ------------------- ##"
++      echo
++      for ac_var in $ac_subst_files
++      do
++	eval ac_val=\$$ac_var
++	case $ac_val in
++	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
++	esac
++	$as_echo "$ac_var='\''$ac_val'\''"
++      done | sort
++      echo
++    fi
++
++    if test -s confdefs.h; then
++      $as_echo "## ----------- ##
++## confdefs.h. ##
++## ----------- ##"
++      echo
++      cat confdefs.h
++      echo
++    fi
++    test "$ac_signal" != 0 &&
++      $as_echo "$as_me: caught signal $ac_signal"
++    $as_echo "$as_me: exit $exit_status"
++  } >&5
++  rm -f core *.core core.conftest.* &&
++    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
++    exit $exit_status
++' 0
++for ac_signal in 1 2 13 15; do
++  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
++done
++ac_signal=0
++
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -f -r conftest* confdefs.h
++
++$as_echo "/* confdefs.h */" > confdefs.h
++
++# Predefined preprocessor variables.
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_NAME "$PACKAGE_NAME"
++_ACEOF
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
++_ACEOF
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_VERSION "$PACKAGE_VERSION"
++_ACEOF
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_STRING "$PACKAGE_STRING"
++_ACEOF
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
++_ACEOF
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_URL "$PACKAGE_URL"
++_ACEOF
++
++
++# Let the site file select an alternate cache file if it wants to.
++# Prefer an explicitly selected file to automatically selected ones.
++ac_site_file1=NONE
++ac_site_file2=NONE
++if test -n "$CONFIG_SITE"; then
++  # We do not want a PATH search for config.site.
++  case $CONFIG_SITE in #((
++    -*)  ac_site_file1=./$CONFIG_SITE;;
++    */*) ac_site_file1=$CONFIG_SITE;;
++    *)   ac_site_file1=./$CONFIG_SITE;;
++  esac
++elif test "x$prefix" != xNONE; then
++  ac_site_file1=$prefix/share/config.site
++  ac_site_file2=$prefix/etc/config.site
++else
++  ac_site_file1=$ac_default_prefix/share/config.site
++  ac_site_file2=$ac_default_prefix/etc/config.site
++fi
++for ac_site_file in "$ac_site_file1" "$ac_site_file2"
++do
++  test "x$ac_site_file" = xNONE && continue
++  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
++$as_echo "$as_me: loading site script $ac_site_file" >&6;}
++    sed 's/^/| /' "$ac_site_file" >&5
++    . "$ac_site_file" \
++      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "failed to load site script $ac_site_file
++See \`config.log' for more details" "$LINENO" 5; }
++  fi
++done
++
++if test -r "$cache_file"; then
++  # Some versions of bash will fail to source /dev/null (special files
++  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
++  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
++$as_echo "$as_me: loading cache $cache_file" >&6;}
++    case $cache_file in
++      [\\/]* | ?:[\\/]* ) . "$cache_file";;
++      *)                      . "./$cache_file";;
++    esac
++  fi
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
++$as_echo "$as_me: creating cache $cache_file" >&6;}
++  >$cache_file
++fi
++
++# Check that the precious variables saved in the cache have kept the same
++# value.
++ac_cache_corrupted=false
++for ac_var in $ac_precious_vars; do
++  eval ac_old_set=\$ac_cv_env_${ac_var}_set
++  eval ac_new_set=\$ac_env_${ac_var}_set
++  eval ac_old_val=\$ac_cv_env_${ac_var}_value
++  eval ac_new_val=\$ac_env_${ac_var}_value
++  case $ac_old_set,$ac_new_set in
++    set,)
++      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
++      ac_cache_corrupted=: ;;
++    ,set)
++      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
++$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
++      ac_cache_corrupted=: ;;
++    ,);;
++    *)
++      if test "x$ac_old_val" != "x$ac_new_val"; then
++	# differences in whitespace do not lead to failure.
++	ac_old_val_w=`echo x $ac_old_val`
++	ac_new_val_w=`echo x $ac_new_val`
++	if test "$ac_old_val_w" != "$ac_new_val_w"; then
++	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
++$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
++	  ac_cache_corrupted=:
++	else
++	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
++$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
++	  eval $ac_var=\$ac_old_val
++	fi
++	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
++$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
++	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
++$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
++      fi;;
++  esac
++  # Pass precious variables to config.status.
++  if test "$ac_new_set" = set; then
++    case $ac_new_val in
++    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
++    *) ac_arg=$ac_var=$ac_new_val ;;
++    esac
++    case " $ac_configure_args " in
++      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
++      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
++    esac
++  fi
++done
++if $ac_cache_corrupted; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
++$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
++  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
++fi
++## -------------------- ##
++## Main body of script. ##
++## -------------------- ##
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++
++
++
++mod_ldflags=
++mod_cflags=
++
++if test x$with_rlm_eap_fast != xno; then
++
++					openssl_lib_dir=
++
++# Check whether --with-openssl-lib-dir was given.
++if test "${with_openssl_lib_dir+set}" = set; then :
++  withval=$with_openssl_lib_dir;  case "$withval" in
++	    no)
++		as_fn_error $? "Need openssl-lib-dir" "$LINENO" 5
++		;;
++	    yes)
++		;;
++	    *)
++		openssl_lib_dir="$withval"
++		;;
++	  esac
++
++fi
++
++
++		openssl_include_dir=
++
++# Check whether --with-openssl-include-dir was given.
++if test "${with_openssl_include_dir+set}" = set; then :
++  withval=$with_openssl_include_dir;  case "$withval" in
++	    no)
++		as_fn_error $? "Need openssl-include-dir" "$LINENO" 5
++		;;
++	    yes)
++		;;
++	    *)
++		openssl_include_dir="$withval"
++		;;
++	  esac
++
++fi
++
++
++
++	smart_try_dir=$openssl_include_dir
++	ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
++set dummy ${ac_tool_prefix}gcc; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$CC"; then
++  ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="${ac_tool_prefix}gcc"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++$as_echo "$CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_CC"; then
++  ac_ct_CC=$CC
++  # Extract the first word of "gcc", so it can be a program name with args.
++set dummy gcc; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$ac_ct_CC"; then
++  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_CC="gcc"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_CC=$ac_cv_prog_ac_ct_CC
++if test -n "$ac_ct_CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++$as_echo "$ac_ct_CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++  if test "x$ac_ct_CC" = x; then
++    CC=""
++  else
++    case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++    CC=$ac_ct_CC
++  fi
++else
++  CC="$ac_cv_prog_CC"
++fi
++
++if test -z "$CC"; then
++          if test -n "$ac_tool_prefix"; then
++    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
++set dummy ${ac_tool_prefix}cc; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$CC"; then
++  ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="${ac_tool_prefix}cc"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++$as_echo "$CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++  fi
++fi
++if test -z "$CC"; then
++  # Extract the first word of "cc", so it can be a program name with args.
++set dummy cc; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$CC"; then
++  ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++  ac_prog_rejected=no
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
++       ac_prog_rejected=yes
++       continue
++     fi
++    ac_cv_prog_CC="cc"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++if test $ac_prog_rejected = yes; then
++  # We found a bogon in the path, so make sure we never use it.
++  set dummy $ac_cv_prog_CC
++  shift
++  if test $# != 0; then
++    # We chose a different compiler from the bogus one.
++    # However, it has the same basename, so the bogon will be chosen
++    # first if we set CC to just the basename; use the full file name.
++    shift
++    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
++  fi
++fi
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++$as_echo "$CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$CC"; then
++  if test -n "$ac_tool_prefix"; then
++  for ac_prog in cl.exe
++  do
++    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$CC"; then
++  ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++$as_echo "$CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++    test -n "$CC" && break
++  done
++fi
++if test -z "$CC"; then
++  ac_ct_CC=$CC
++  for ac_prog in cl.exe
++do
++  # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_CC+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -n "$ac_ct_CC"; then
++  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_exec_ext in '' $ac_executable_extensions; do
++  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_CC="$ac_prog"
++    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++  done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_CC=$ac_cv_prog_ac_ct_CC
++if test -n "$ac_ct_CC"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++$as_echo "$ac_ct_CC" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++  test -n "$ac_ct_CC" && break
++done
++
++  if test "x$ac_ct_CC" = x; then
++    CC=""
++  else
++    case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++    CC=$ac_ct_CC
++  fi
++fi
++
++fi
++
++
++test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "no acceptable C compiler found in \$PATH
++See \`config.log' for more details" "$LINENO" 5; }
++
++# Provide some information about the compiler.
++$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
++set X $ac_compile
++ac_compiler=$2
++for ac_option in --version -v -V -qversion; do
++  { { ac_try="$ac_compiler $ac_option >&5"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
++  ac_status=$?
++  if test -s conftest.err; then
++    sed '10a\
++... rest of stderr output deleted ...
++         10q' conftest.err >conftest.er1
++    cat conftest.er1 >&5
++  fi
++  rm -f conftest.er1 conftest.err
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }
++done
++
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++ac_clean_files_save=$ac_clean_files
++ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
++# Try to create an executable without -o first, disregard a.out.
++# It will help us diagnose broken compilers, and finding out an intuition
++# of exeext.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
++$as_echo_n "checking whether the C compiler works... " >&6; }
++ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
++
++# The possible output files:
++ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
++
++ac_rmfiles=
++for ac_file in $ac_files
++do
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
++    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
++  esac
++done
++rm -f $ac_rmfiles
++
++if { { ac_try="$ac_link_default"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_link_default") 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; then :
++  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
++# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
++# in a Makefile.  We should not override ac_cv_exeext if it was cached,
++# so that the user can short-circuit this test for compilers unknown to
++# Autoconf.
++for ac_file in $ac_files ''
++do
++  test -f "$ac_file" || continue
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
++	;;
++    [ab].out )
++	# We found the default executable, but exeext='' is most
++	# certainly right.
++	break;;
++    *.* )
++	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
++	then :; else
++	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
++	fi
++	# We set ac_cv_exeext here because the later test for it is not
++	# safe: cross compilers may not add the suffix if given an `-o'
++	# argument, so we may need to know it at that point already.
++	# Even if this section looks crufty: it has the advantage of
++	# actually working.
++	break;;
++    * )
++	break;;
++  esac
++done
++test "$ac_cv_exeext" = no && ac_cv_exeext=
++
++else
++  ac_file=''
++fi
++if test -z "$ac_file"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++$as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error 77 "C compiler cannot create executables
++See \`config.log' for more details" "$LINENO" 5; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
++$as_echo_n "checking for C compiler default output file name... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
++$as_echo "$ac_file" >&6; }
++ac_exeext=$ac_cv_exeext
++
++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
++ac_clean_files=$ac_clean_files_save
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
++$as_echo_n "checking for suffix of executables... " >&6; }
++if { { ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_link") 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; then :
++  # If both `conftest.exe' and `conftest' are `present' (well, observable)
++# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
++# work properly (i.e., refer to `conftest.exe'), while it won't with
++# `rm'.
++for ac_file in conftest.exe conftest conftest.*; do
++  test -f "$ac_file" || continue
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
++    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
++	  break;;
++    * ) break;;
++  esac
++done
++else
++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "cannot compute suffix of executables: cannot compile and link
++See \`config.log' for more details" "$LINENO" 5; }
++fi
++rm -f conftest conftest$ac_cv_exeext
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
++$as_echo "$ac_cv_exeext" >&6; }
++
++rm -f conftest.$ac_ext
++EXEEXT=$ac_cv_exeext
++ac_exeext=$EXEEXT
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#include <stdio.h>
++int
++main ()
++{
++FILE *f = fopen ("conftest.out", "w");
++ return ferror (f) || fclose (f) != 0;
++
++  ;
++  return 0;
++}
++_ACEOF
++ac_clean_files="$ac_clean_files conftest.out"
++# Check that the compiler produces executables we can run.  If not, either
++# the compiler is broken, or we cross compile.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
++$as_echo_n "checking whether we are cross compiling... " >&6; }
++if test "$cross_compiling" != yes; then
++  { { ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_link") 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }
++  if { ac_try='./conftest$ac_cv_exeext'
++  { { case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_try") 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }; then
++    cross_compiling=no
++  else
++    if test "$cross_compiling" = maybe; then
++	cross_compiling=yes
++    else
++	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "cannot run C compiled programs.
++If you meant to cross compile, use \`--host'.
++See \`config.log' for more details" "$LINENO" 5; }
++    fi
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
++$as_echo "$cross_compiling" >&6; }
++
++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
++ac_clean_files=$ac_clean_files_save
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
++$as_echo_n "checking for suffix of object files... " >&6; }
++if ${ac_cv_objext+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.o conftest.obj
++if { { ac_try="$ac_compile"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
++$as_echo "$ac_try_echo"; } >&5
++  (eval "$ac_compile") 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; then :
++  for ac_file in conftest.o conftest.obj conftest.*; do
++  test -f "$ac_file" || continue;
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
++    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
++       break;;
++  esac
++done
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "cannot compute suffix of object files: cannot compile
++See \`config.log' for more details" "$LINENO" 5; }
++fi
++rm -f conftest.$ac_cv_objext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
++$as_echo "$ac_cv_objext" >&6; }
++OBJEXT=$ac_cv_objext
++ac_objext=$OBJEXT
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
++$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
++if ${ac_cv_c_compiler_gnu+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++#ifndef __GNUC__
++       choke me
++#endif
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_compiler_gnu=yes
++else
++  ac_compiler_gnu=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++ac_cv_c_compiler_gnu=$ac_compiler_gnu
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
++$as_echo "$ac_cv_c_compiler_gnu" >&6; }
++if test $ac_compiler_gnu = yes; then
++  GCC=yes
++else
++  GCC=
++fi
++ac_test_CFLAGS=${CFLAGS+set}
++ac_save_CFLAGS=$CFLAGS
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
++$as_echo_n "checking whether $CC accepts -g... " >&6; }
++if ${ac_cv_prog_cc_g+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  ac_save_c_werror_flag=$ac_c_werror_flag
++   ac_c_werror_flag=yes
++   ac_cv_prog_cc_g=no
++   CFLAGS="-g"
++   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_prog_cc_g=yes
++else
++  CFLAGS=""
++      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++else
++  ac_c_werror_flag=$ac_save_c_werror_flag
++	 CFLAGS="-g"
++	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_prog_cc_g=yes
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++   ac_c_werror_flag=$ac_save_c_werror_flag
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
++$as_echo "$ac_cv_prog_cc_g" >&6; }
++if test "$ac_test_CFLAGS" = set; then
++  CFLAGS=$ac_save_CFLAGS
++elif test $ac_cv_prog_cc_g = yes; then
++  if test "$GCC" = yes; then
++    CFLAGS="-g -O2"
++  else
++    CFLAGS="-g"
++  fi
++else
++  if test "$GCC" = yes; then
++    CFLAGS="-O2"
++  else
++    CFLAGS=
++  fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
++$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
++if ${ac_cv_prog_cc_c89+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  ac_cv_prog_cc_c89=no
++ac_save_CC=$CC
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#include <stdarg.h>
++#include <stdio.h>
++struct stat;
++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
++struct buf { int x; };
++FILE * (*rcsopen) (struct buf *, struct stat *, int);
++static char *e (p, i)
++     char **p;
++     int i;
++{
++  return p[i];
++}
++static char *f (char * (*g) (char **, int), char **p, ...)
++{
++  char *s;
++  va_list v;
++  va_start (v,p);
++  s = g (p, va_arg (v,int));
++  va_end (v);
++  return s;
++}
++
++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
++   function prototypes and stuff, but not '\xHH' hex character constants.
++   These don't provoke an error unfortunately, instead are silently treated
++   as 'x'.  The following induces an error, until -std is added to get
++   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
++   array size at least.  It's necessary to write '\x00'==0 to get something
++   that's true only with -std.  */
++int osf4_cc_array ['\x00' == 0 ? 1 : -1];
++
++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
++   inside strings and character constants.  */
++#define FOO(x) 'x'
++int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
++
++int test (int i, double x);
++struct s1 {int (*f) (int a);};
++struct s2 {int (*f) (double a);};
++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
++int argc;
++char **argv;
++int
++main ()
++{
++return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
++  ;
++  return 0;
++}
++_ACEOF
++for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
++	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
++do
++  CC="$ac_save_CC $ac_arg"
++  if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_prog_cc_c89=$ac_arg
++fi
++rm -f core conftest.err conftest.$ac_objext
++  test "x$ac_cv_prog_cc_c89" != "xno" && break
++done
++rm -f conftest.$ac_ext
++CC=$ac_save_CC
++
++fi
++# AC_CACHE_VAL
++case "x$ac_cv_prog_cc_c89" in
++  x)
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++$as_echo "none needed" >&6; } ;;
++  xno)
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++$as_echo "unsupported" >&6; } ;;
++  *)
++    CC="$CC $ac_cv_prog_cc_c89"
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
++$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
++esac
++if test "x$ac_cv_prog_cc_c89" != xno; then :
++
++fi
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++
++
++ac_safe=`echo "openssl/ec.h" | sed 'y%./+-%__pm%'`
++old_CPPFLAGS="$CPPFLAGS"
++smart_include=
++smart_include_dir="/usr/local/include /opt/include"
++
++_smart_try_dir=
++_smart_include_dir=
++
++for _prefix in $smart_prefix ""; do
++  for _dir in $smart_try_dir; do
++    _smart_try_dir="${_smart_try_dir} ${_dir}/${_prefix}"
++  done
++
++  for _dir in $smart_include_dir; do
++    _smart_include_dir="${_smart_include_dir} ${_dir}/${_prefix}"
++  done
++done
++
++if test "x$_smart_try_dir" != "x"; then
++  for try in $_smart_try_dir; do
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ec.h in $try" >&5
++$as_echo_n "checking for openssl/ec.h in $try... " >&6; }
++    CPPFLAGS="-isystem $try $old_CPPFLAGS"
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++		    #include <openssl/ec.h>
++int
++main ()
++{
++int a = 1;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++		     smart_include="-isystem $try"
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		     break
++
++else
++
++		     smart_include=
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++  done
++  CPPFLAGS="$old_CPPFLAGS"
++fi
++
++if test "x$smart_include" = "x"; then
++  for _prefix in $smart_prefix; do
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${_prefix}/openssl/ec.h" >&5
++$as_echo_n "checking for ${_prefix}/openssl/ec.h... " >&6; }
++
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++		    #include <openssl/ec.h>
++int
++main ()
++{
++int a = 1;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++		     smart_include="-isystem ${_prefix}/"
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		     break
++
++else
++
++		     smart_include=
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++  done
++fi
++
++if test "x$smart_include" = "x"; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ec.h" >&5
++$as_echo_n "checking for openssl/ec.h... " >&6; }
++
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++		    #include <openssl/ec.h>
++int
++main ()
++{
++int a = 1;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++		     smart_include=" "
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		     break
++
++else
++
++		     smart_include=
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++
++if test "x$smart_include" = "x"; then
++
++  for prefix in $smart_prefix; do
++
++
++if test "x$LOCATE" != "x"; then
++        DIRS=
++  file="${_prefix}/${1}"
++
++  for x in `${LOCATE} $file 2>/dev/null`; do
++                                        base=`echo $x | sed "s%/${file}%%"`
++    if test "x$x" = "x$base"; then
++      continue;
++    fi
++
++    dir=`${DIRNAME} $x 2>/dev/null`
++                exclude=`echo ${dir} | ${GREP} /home`
++    if test "x$exclude" != "x"; then
++      continue
++    fi
++
++                    already=`echo \$_smart_include_dir ${DIRS} | ${GREP} ${dir}`
++    if test "x$already" = "x"; then
++      DIRS="$DIRS $dir"
++    fi
++  done
++fi
++
++eval "_smart_include_dir=\"\$_smart_include_dir $DIRS\""
++
++  done
++
++
++if test "x$LOCATE" != "x"; then
++        DIRS=
++  file=openssl/ec.h
++
++  for x in `${LOCATE} $file 2>/dev/null`; do
++                                        base=`echo $x | sed "s%/${file}%%"`
++    if test "x$x" = "x$base"; then
++      continue;
++    fi
++
++    dir=`${DIRNAME} $x 2>/dev/null`
++                exclude=`echo ${dir} | ${GREP} /home`
++    if test "x$exclude" != "x"; then
++      continue
++    fi
++
++                    already=`echo \$_smart_include_dir ${DIRS} | ${GREP} ${dir}`
++    if test "x$already" = "x"; then
++      DIRS="$DIRS $dir"
++    fi
++  done
++fi
++
++eval "_smart_include_dir=\"\$_smart_include_dir $DIRS\""
++
++
++  for try in $_smart_include_dir; do
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ec.h in $try" >&5
++$as_echo_n "checking for openssl/ec.h in $try... " >&6; }
++    CPPFLAGS="-isystem $try $old_CPPFLAGS"
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++		    #include <openssl/ec.h>
++int
++main ()
++{
++int a = 1;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++
++		     smart_include="-isystem $try"
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		     break
++
++else
++
++		     smart_include=
++		     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++  done
++  CPPFLAGS="$old_CPPFLAGS"
++fi
++
++if test "x$smart_include" != "x"; then
++  eval "ac_cv_header_$ac_safe=yes"
++  CPPFLAGS="$smart_include $old_CPPFLAGS"
++  SMART_CPPFLAGS="$smart_include $SMART_CPPFLAGS"
++fi
++
++smart_prefix=
++
++	if test "$ac_cv_header_openssl_ec_h" != "yes"; then
++	  fail="$fail openssl/ec.h"
++	fi
++
++	smart_try_dir=$openssl_lib_dir
++
++
++sm_lib_safe=`echo "crypto" | sed 'y%./+-%__p_%'`
++sm_func_safe=`echo "EVP_CIPHER_CTX_new" | sed 'y%./+-%__p_%'`
++
++old_LIBS="$LIBS"
++old_CPPFLAGS="$CPPFLAGS"
++smart_lib=
++smart_ldflags=
++smart_lib_dir=
++
++if test "x$smart_try_dir" != "x"; then
++  for try in $smart_try_dir; do
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto in $try" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto in $try... " >&6; }
++    LIBS="-lcrypto $old_LIBS"
++    CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++extern char EVP_CIPHER_CTX_new();
++int
++main ()
++{
++EVP_CIPHER_CTX_new()
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++
++		 smart_lib="-lcrypto"
++		 smart_ldflags="-L$try -Wl,-rpath,$try"
++		 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		 break
++
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++  done
++  LIBS="$old_LIBS"
++  CPPFLAGS="$old_CPPFLAGS"
++fi
++
++if test "x$smart_lib" = "x"; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto... " >&6; }
++  LIBS="-lcrypto $old_LIBS"
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++extern char EVP_CIPHER_CTX_new();
++int
++main ()
++{
++EVP_CIPHER_CTX_new()
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++
++	        smart_lib="-lcrypto"
++	        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++  LIBS="$old_LIBS"
++fi
++
++if test "x$smart_lib" = "x"; then
++
++
++if test "x$LOCATE" != "x"; then
++        DIRS=
++  file=libcrypto${libltdl_cv_shlibext}
++
++  for x in `${LOCATE} $file 2>/dev/null`; do
++                                        base=`echo $x | sed "s%/${file}%%"`
++    if test "x$x" = "x$base"; then
++      continue;
++    fi
++
++    dir=`${DIRNAME} $x 2>/dev/null`
++                exclude=`echo ${dir} | ${GREP} /home`
++    if test "x$exclude" != "x"; then
++      continue
++    fi
++
++                    already=`echo \$smart_lib_dir ${DIRS} | ${GREP} ${dir}`
++    if test "x$already" = "x"; then
++      DIRS="$DIRS $dir"
++    fi
++  done
++fi
++
++eval "smart_lib_dir=\"\$smart_lib_dir $DIRS\""
++
++
++
++if test "x$LOCATE" != "x"; then
++        DIRS=
++  file=libcrypto.a
++
++  for x in `${LOCATE} $file 2>/dev/null`; do
++                                        base=`echo $x | sed "s%/${file}%%"`
++    if test "x$x" = "x$base"; then
++      continue;
++    fi
++
++    dir=`${DIRNAME} $x 2>/dev/null`
++                exclude=`echo ${dir} | ${GREP} /home`
++    if test "x$exclude" != "x"; then
++      continue
++    fi
++
++                    already=`echo \$smart_lib_dir ${DIRS} | ${GREP} ${dir}`
++    if test "x$already" = "x"; then
++      DIRS="$DIRS $dir"
++    fi
++  done
++fi
++
++eval "smart_lib_dir=\"\$smart_lib_dir $DIRS\""
++
++
++  for try in $smart_lib_dir /usr/local/lib /opt/lib; do
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto in $try" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto in $try... " >&6; }
++    LIBS="-lcrypto $old_LIBS"
++    CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++extern char EVP_CIPHER_CTX_new();
++int
++main ()
++{
++EVP_CIPHER_CTX_new()
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++
++		  smart_lib="-lcrypto"
++		  smart_ldflags="-L$try -Wl,-rpath,$try"
++		  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++		  break
++
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++  done
++  LIBS="$old_LIBS"
++  CPPFLAGS="$old_CPPFLAGS"
++fi
++
++if test "x$smart_lib" != "x"; then
++  eval "ac_cv_lib_${sm_lib_safe}_${sm_func_safe}=yes"
++  LIBS="$smart_ldflags $smart_lib $old_LIBS"
++  SMART_LIBS="$smart_ldflags $smart_lib $SMART_LIBS"
++fi
++
++        if test "x$ac_cv_lib_crypto_EVP_CIPHER_CTX_new" != "xyes"; then
++	  fail="libssl"
++	fi
++
++    ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
++$as_echo_n "checking how to run the C preprocessor... " >&6; }
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++  CPP=
++fi
++if test -z "$CPP"; then
++  if ${ac_cv_prog_CPP+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++      # Double quotes because CPP needs to be expanded
++    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
++    do
++      ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
++do
++  # Use a header file that comes with gcc, so configuring glibc
++  # with a fresh cross-compiler works.
++  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++  # <limits.h> exists even on freestanding compilers.
++  # On the NeXT, cc -E runs the code through the compiler's parser,
++  # not just through cpp. "Syntax error" is here to catch this case.
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
++		     Syntax error
++_ACEOF
++if ac_fn_c_try_cpp "$LINENO"; then :
++
++else
++  # Broken: fails on valid input.
++continue
++fi
++rm -f conftest.err conftest.i conftest.$ac_ext
++
++  # OK, works on sane cases.  Now check whether nonexistent headers
++  # can be detected and how.
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#include <ac_nonexistent.h>
++_ACEOF
++if ac_fn_c_try_cpp "$LINENO"; then :
++  # Broken: success on invalid input.
++continue
++else
++  # Passes both tests.
++ac_preproc_ok=:
++break
++fi
++rm -f conftest.err conftest.i conftest.$ac_ext
++
++done
++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
++rm -f conftest.i conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then :
++  break
++fi
++
++    done
++    ac_cv_prog_CPP=$CPP
++
++fi
++  CPP=$ac_cv_prog_CPP
++else
++  ac_cv_prog_CPP=$CPP
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
++$as_echo "$CPP" >&6; }
++ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
++do
++  # Use a header file that comes with gcc, so configuring glibc
++  # with a fresh cross-compiler works.
++  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++  # <limits.h> exists even on freestanding compilers.
++  # On the NeXT, cc -E runs the code through the compiler's parser,
++  # not just through cpp. "Syntax error" is here to catch this case.
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
++		     Syntax error
++_ACEOF
++if ac_fn_c_try_cpp "$LINENO"; then :
++
++else
++  # Broken: fails on valid input.
++continue
++fi
++rm -f conftest.err conftest.i conftest.$ac_ext
++
++  # OK, works on sane cases.  Now check whether nonexistent headers
++  # can be detected and how.
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#include <ac_nonexistent.h>
++_ACEOF
++if ac_fn_c_try_cpp "$LINENO"; then :
++  # Broken: success on invalid input.
++continue
++else
++  # Passes both tests.
++ac_preproc_ok=:
++break
++fi
++rm -f conftest.err conftest.i conftest.$ac_ext
++
++done
++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
++rm -f conftest.i conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then :
++
++else
++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details" "$LINENO" 5; }
++fi
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
++$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
++if ${ac_cv_path_GREP+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if test -z "$GREP"; then
++  ac_path_GREP_found=false
++  # Loop through the user's path and test for each of PROGNAME-LIST
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_prog in grep ggrep; do
++    for ac_exec_ext in '' $ac_executable_extensions; do
++      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
++      as_fn_executable_p "$ac_path_GREP" || continue
++# Check for GNU ac_path_GREP and select it if it is found.
++  # Check for GNU $ac_path_GREP
++case `"$ac_path_GREP" --version 2>&1` in
++*GNU*)
++  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
++*)
++  ac_count=0
++  $as_echo_n 0123456789 >"conftest.in"
++  while :
++  do
++    cat "conftest.in" "conftest.in" >"conftest.tmp"
++    mv "conftest.tmp" "conftest.in"
++    cp "conftest.in" "conftest.nl"
++    $as_echo 'GREP' >> "conftest.nl"
++    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
++    as_fn_arith $ac_count + 1 && ac_count=$as_val
++    if test $ac_count -gt ${ac_path_GREP_max-0}; then
++      # Best one so far, save it but keep looking for a better one
++      ac_cv_path_GREP="$ac_path_GREP"
++      ac_path_GREP_max=$ac_count
++    fi
++    # 10*(2^10) chars as input seems more than enough
++    test $ac_count -gt 10 && break
++  done
++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
++esac
++
++      $ac_path_GREP_found && break 3
++    done
++  done
++  done
++IFS=$as_save_IFS
++  if test -z "$ac_cv_path_GREP"; then
++    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++  fi
++else
++  ac_cv_path_GREP=$GREP
++fi
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
++$as_echo "$ac_cv_path_GREP" >&6; }
++ GREP="$ac_cv_path_GREP"
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
++$as_echo_n "checking for egrep... " >&6; }
++if ${ac_cv_path_EGREP+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
++   then ac_cv_path_EGREP="$GREP -E"
++   else
++     if test -z "$EGREP"; then
++  ac_path_EGREP_found=false
++  # Loop through the user's path and test for each of PROGNAME-LIST
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    for ac_prog in egrep; do
++    for ac_exec_ext in '' $ac_executable_extensions; do
++      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
++      as_fn_executable_p "$ac_path_EGREP" || continue
++# Check for GNU ac_path_EGREP and select it if it is found.
++  # Check for GNU $ac_path_EGREP
++case `"$ac_path_EGREP" --version 2>&1` in
++*GNU*)
++  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
++*)
++  ac_count=0
++  $as_echo_n 0123456789 >"conftest.in"
++  while :
++  do
++    cat "conftest.in" "conftest.in" >"conftest.tmp"
++    mv "conftest.tmp" "conftest.in"
++    cp "conftest.in" "conftest.nl"
++    $as_echo 'EGREP' >> "conftest.nl"
++    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
++    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
++    as_fn_arith $ac_count + 1 && ac_count=$as_val
++    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
++      # Best one so far, save it but keep looking for a better one
++      ac_cv_path_EGREP="$ac_path_EGREP"
++      ac_path_EGREP_max=$ac_count
++    fi
++    # 10*(2^10) chars as input seems more than enough
++    test $ac_count -gt 10 && break
++  done
++  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
++esac
++
++      $ac_path_EGREP_found && break 3
++    done
++  done
++  done
++IFS=$as_save_IFS
++  if test -z "$ac_cv_path_EGREP"; then
++    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
++  fi
++else
++  ac_cv_path_EGREP=$EGREP
++fi
++
++   fi
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
++$as_echo "$ac_cv_path_EGREP" >&6; }
++ EGREP="$ac_cv_path_EGREP"
++
++
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#include <openssl/crypto.h>
++       #if (OPENSSL_VERSION_NUMBER >= 0x01000100fL)
++       yes
++       #endif
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++  $EGREP "yes" >/dev/null 2>&1; then :
++
++        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL version >= 1.0.1a" >&5
++$as_echo_n "checking for OpenSSL version >= 1.0.1a... " >&6; }
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++else
++
++        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL version >= 1.0.1a" >&5
++$as_echo_n "checking for OpenSSL version >= 1.0.1a... " >&6; }
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++        fail="openssl>1.0.1"
++
++
++fi
++rm -f conftest*
++
++
++	targetname=rlm_eap_fast
++else
++	targetname=
++	echo \*\*\* module rlm_eap_fast is disabled.
++fi
++
++if test x"$fail" != x""; then
++	if test x"${enable_strict_dependencies}" = x"yes"; then
++		as_fn_error $? "set --without-rlm_eap_fast to disable it explicitly." "$LINENO" 5
++	else
++		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: silently not building rlm_eap_fast." >&5
++$as_echo "$as_me: WARNING: silently not building rlm_eap_fast." >&2;}
++		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: FAILURE: rlm_eap_fast requires: $fail." >&5
++$as_echo "$as_me: WARNING: FAILURE: rlm_eap_fast requires: $fail." >&2;}
++		targetname=""
++	fi
++fi
++
++
++
++
++
++  unset ac_cv_env_LIBS_set
++  unset ac_cv_env_LIBS_value
++
++  ac_config_files="$ac_config_files all.mk"
++
++cat >confcache <<\_ACEOF
++# This file is a shell script that caches the results of configure
++# tests run on this system so they can be shared between configure
++# scripts and configure runs, see configure's option --config-cache.
++# It is not useful on other systems.  If it contains results you don't
++# want to keep, you may remove or edit it.
++#
++# config.status only pays attention to the cache file if you give it
++# the --recheck option to rerun configure.
++#
++# `ac_cv_env_foo' variables (set or unset) will be overridden when
++# loading this file, other *unset* `ac_cv_foo' will be assigned the
++# following values.
++
++_ACEOF
++
++# The following way of writing the cache mishandles newlines in values,
++# but we know of no workaround that is simple, portable, and efficient.
++# So, we kill variables containing newlines.
++# Ultrix sh set writes to stderr and can't be redirected directly,
++# and sets the high bit in the cache file unless we assign to the vars.
++(
++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
++    eval ac_val=\$$ac_var
++    case $ac_val in #(
++    *${as_nl}*)
++      case $ac_var in #(
++      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
++      esac
++      case $ac_var in #(
++      _ | IFS | as_nl) ;; #(
++      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
++      *) { eval $ac_var=; unset $ac_var;} ;;
++      esac ;;
++    esac
++  done
++
++  (set) 2>&1 |
++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
++    *${as_nl}ac_space=\ *)
++      # `set' does not quote correctly, so add quotes: double-quote
++      # substitution turns \\\\ into \\, and sed turns \\ into \.
++      sed -n \
++	"s/'/'\\\\''/g;
++	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
++      ;; #(
++    *)
++      # `set' quotes correctly as required by POSIX, so do not add quotes.
++      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
++      ;;
++    esac |
++    sort
++) |
++  sed '
++     /^ac_cv_env_/b end
++     t clear
++     :clear
++     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
++     t end
++     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
++     :end' >>confcache
++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
++  if test -w "$cache_file"; then
++    if test "x$cache_file" != "x/dev/null"; then
++      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
++$as_echo "$as_me: updating cache $cache_file" >&6;}
++      if test ! -f "$cache_file" || test -h "$cache_file"; then
++	cat confcache >"$cache_file"
++      else
++        case $cache_file in #(
++        */* | ?:*)
++	  mv -f confcache "$cache_file"$$ &&
++	  mv -f "$cache_file"$$ "$cache_file" ;; #(
++        *)
++	  mv -f confcache "$cache_file" ;;
++	esac
++      fi
++    fi
++  else
++    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
++$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
++  fi
++fi
++rm -f confcache
++
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
++
++# Transform confdefs.h into DEFS.
++# Protect against shell expansion while executing Makefile rules.
++# Protect against Makefile macro expansion.
++#
++# If the first sed substitution is executed (which looks for macros that
++# take arguments), then branch to the quote section.  Otherwise,
++# look for a macro that doesn't take arguments.
++ac_script='
++:mline
++/\\$/{
++ N
++ s,\\\n,,
++ b mline
++}
++t clear
++:clear
++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
++t quote
++s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
++t quote
++b any
++:quote
++s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
++s/\[/\\&/g
++s/\]/\\&/g
++s/\$/$$/g
++H
++:any
++${
++	g
++	s/^\n//
++	s/\n/ /g
++	p
++}
++'
++DEFS=`sed -n "$ac_script" confdefs.h`
++
++
++ac_libobjs=
++ac_ltlibobjs=
++U=
++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
++  # 1. Remove the extension, and $U if already installed.
++  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
++  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
++  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
++  #    will be set to the directory where LIBOBJS objects are built.
++  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
++  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
++done
++LIBOBJS=$ac_libobjs
++
++LTLIBOBJS=$ac_ltlibobjs
++
++
++
++: "${CONFIG_STATUS=./config.status}"
++ac_write_fail=0
++ac_clean_files_save=$ac_clean_files
++ac_clean_files="$ac_clean_files $CONFIG_STATUS"
++{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
++$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
++as_write_fail=0
++cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
++#! $SHELL
++# Generated by $as_me.
++# Run this file to recreate the current configuration.
++# Compiler output produced by configure, useful for debugging
++# configure, is in config.log if it exists.
++
++debug=false
++ac_cs_recheck=false
++ac_cs_silent=false
++
++SHELL=\${CONFIG_SHELL-$SHELL}
++export SHELL
++_ASEOF
++cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
++## -------------------- ##
++## M4sh Initialization. ##
++## -------------------- ##
++
++# Be more Bourne compatible
++DUALCASE=1; export DUALCASE # for MKS sh
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
++  emulate sh
++  NULLCMD=:
++  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
++  # is contrary to our usage.  Disable this feature.
++  alias -g '${1+"$@"}'='"$@"'
++  setopt NO_GLOB_SUBST
++else
++  case `(set -o) 2>/dev/null` in #(
++  *posix*) :
++    set -o posix ;; #(
++  *) :
++     ;;
++esac
++fi
++
++
++as_nl='
++'
++export as_nl
++# Printing a long string crashes Solaris 7 /usr/bin/printf.
++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
++# Prefer a ksh shell builtin over an external printf program on Solaris,
++# but without wasting forks for bash or zsh.
++if test -z "$BASH_VERSION$ZSH_VERSION" \
++    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
++  as_echo='print -r --'
++  as_echo_n='print -rn --'
++elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
++  as_echo='printf %s\n'
++  as_echo_n='printf %s'
++else
++  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
++    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
++    as_echo_n='/usr/ucb/echo -n'
++  else
++    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
++    as_echo_n_body='eval
++      arg=$1;
++      case $arg in #(
++      *"$as_nl"*)
++	expr "X$arg" : "X\\(.*\\)$as_nl";
++	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
++      esac;
++      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
++    '
++    export as_echo_n_body
++    as_echo_n='sh -c $as_echo_n_body as_echo'
++  fi
++  export as_echo_body
++  as_echo='sh -c $as_echo_body as_echo'
++fi
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++  PATH_SEPARATOR=:
++  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
++    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
++      PATH_SEPARATOR=';'
++  }
++fi
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.  Quoting is
++# there to prevent editors from complaining about space-tab.
++# (If _AS_PATH_WALK were called with IFS unset, it would disable word
++# splitting by setting IFS to empty value.)
++IFS=" ""	$as_nl"
++
++# Find who we are.  Look in the path if we contain no directory separator.
++as_myself=
++case $0 in #((
++  *[\\/]* ) as_myself=$0 ;;
++  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++  done
++IFS=$as_save_IFS
++
++     ;;
++esac
++# We did not find ourselves, most probably we were run as `sh COMMAND'
++# in which case we are not to be found in the path.
++if test "x$as_myself" = x; then
++  as_myself=$0
++fi
++if test ! -f "$as_myself"; then
++  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
++  exit 1
++fi
++
++# Unset variables that we do not need and which cause bugs (e.g. in
++# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
++# suppresses any "Segmentation fault" message there.  '((' could
++# trigger a bug in pdksh 5.2.14.
++for as_var in BASH_ENV ENV MAIL MAILPATH
++do eval test x\${$as_var+set} = xset \
++  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
++done
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++LC_ALL=C
++export LC_ALL
++LANGUAGE=C
++export LANGUAGE
++
++# CDPATH.
++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
++
++
++# as_fn_error STATUS ERROR [LINENO LOG_FD]
++# ----------------------------------------
++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
++# script with STATUS, using 1 if that was 0.
++as_fn_error ()
++{
++  as_status=$1; test $as_status -eq 0 && as_status=1
++  if test "$4"; then
++    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++  fi
++  $as_echo "$as_me: error: $2" >&2
++  as_fn_exit $as_status
++} # as_fn_error
++
++
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++  return $1
++} # as_fn_set_status
++
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++  set +e
++  as_fn_set_status $1
++  exit $1
++} # as_fn_exit
++
++# as_fn_unset VAR
++# ---------------
++# Portably unset VAR.
++as_fn_unset ()
++{
++  { eval $1=; unset $1;}
++}
++as_unset=as_fn_unset
++# as_fn_append VAR VALUE
++# ----------------------
++# Append the text in VALUE to the end of the definition contained in VAR. Take
++# advantage of any shell optimizations that allow amortized linear growth over
++# repeated appends, instead of the typical quadratic growth present in naive
++# implementations.
++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
++  eval 'as_fn_append ()
++  {
++    eval $1+=\$2
++  }'
++else
++  as_fn_append ()
++  {
++    eval $1=\$$1\$2
++  }
++fi # as_fn_append
++
++# as_fn_arith ARG...
++# ------------------
++# Perform arithmetic evaluation on the ARGs, and store the result in the
++# global $as_val. Take advantage of shells that can avoid forks. The arguments
++# must be portable across $(()) and expr.
++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
++  eval 'as_fn_arith ()
++  {
++    as_val=$(( $* ))
++  }'
++else
++  as_fn_arith ()
++  {
++    as_val=`expr "$@" || test $? -eq 1`
++  }
++fi # as_fn_arith
++
++
++if expr a : '\(a\)' >/dev/null 2>&1 &&
++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
++  as_dirname=dirname
++else
++  as_dirname=false
++fi
++
++as_me=`$as_basename -- "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++	 X"$0" : 'X\(//\)$' \| \
++	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\/\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\/\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++ECHO_C= ECHO_N= ECHO_T=
++case `echo -n x` in #(((((
++-n*)
++  case `echo 'xy\c'` in
++  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
++  xy)  ECHO_C='\c';;
++  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
++       ECHO_T='	';;
++  esac;;
++*)
++  ECHO_N='-n';;
++esac
++
++rm -f conf$$ conf$$.exe conf$$.file
++if test -d conf$$.dir; then
++  rm -f conf$$.dir/conf$$.file
++else
++  rm -f conf$$.dir
++  mkdir conf$$.dir 2>/dev/null
++fi
++if (echo >conf$$.file) 2>/dev/null; then
++  if ln -s conf$$.file conf$$ 2>/dev/null; then
++    as_ln_s='ln -s'
++    # ... but there are two gotchas:
++    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
++    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
++    # In both cases, we have to default to `cp -pR'.
++    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
++      as_ln_s='cp -pR'
++  elif ln conf$$.file conf$$ 2>/dev/null; then
++    as_ln_s=ln
++  else
++    as_ln_s='cp -pR'
++  fi
++else
++  as_ln_s='cp -pR'
++fi
++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
++rmdir conf$$.dir 2>/dev/null
++
++
++# as_fn_mkdir_p
++# -------------
++# Create "$as_dir" as a directory, including parents if necessary.
++as_fn_mkdir_p ()
++{
++
++  case $as_dir in #(
++  -*) as_dir=./$as_dir;;
++  esac
++  test -d "$as_dir" || eval $as_mkdir_p || {
++    as_dirs=
++    while :; do
++      case $as_dir in #(
++      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++      *) as_qdir=$as_dir;;
++      esac
++      as_dirs="'$as_qdir' $as_dirs"
++      as_dir=`$as_dirname -- "$as_dir" ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++	 X"$as_dir" : 'X\(//\)[^/]' \| \
++	 X"$as_dir" : 'X\(//\)$' \| \
++	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$as_dir" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)[^/].*/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++      test -d "$as_dir" && break
++    done
++    test -z "$as_dirs" || eval "mkdir $as_dirs"
++  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
++
++
++} # as_fn_mkdir_p
++if mkdir -p . 2>/dev/null; then
++  as_mkdir_p='mkdir -p "$as_dir"'
++else
++  test -d ./-p && rmdir ./-p
++  as_mkdir_p=false
++fi
++
++
++# as_fn_executable_p FILE
++# -----------------------
++# Test if FILE is an executable regular file.
++as_fn_executable_p ()
++{
++  test -f "$1" && test -x "$1"
++} # as_fn_executable_p
++as_test_x='test -x'
++as_executable_p=as_fn_executable_p
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
++
++
++exec 6>&1
++## ----------------------------------- ##
++## Main body of $CONFIG_STATUS script. ##
++## ----------------------------------- ##
++_ASEOF
++test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++# Save the log message, to keep $0 and so on meaningful, and to
++# report actual input values of CONFIG_FILES etc. instead of their
++# values after options handling.
++ac_log="
++This file was extended by $as_me, which was
++generated by GNU Autoconf 2.69.  Invocation command line was
++
++  CONFIG_FILES    = $CONFIG_FILES
++  CONFIG_HEADERS  = $CONFIG_HEADERS
++  CONFIG_LINKS    = $CONFIG_LINKS
++  CONFIG_COMMANDS = $CONFIG_COMMANDS
++  $ $0 $@
++
++on `(hostname || uname -n) 2>/dev/null | sed 1q`
++"
++
++_ACEOF
++
++case $ac_config_files in *"
++"*) set x $ac_config_files; shift; ac_config_files=$*;;
++esac
++
++
++
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++# Files that config.status was made for.
++config_files="$ac_config_files"
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++ac_cs_usage="\
++\`$as_me' instantiates files and other configuration actions
++from templates according to the current configuration.  Unless the files
++and actions are specified as TAGs, all are instantiated by default.
++
++Usage: $0 [OPTION]... [TAG]...
++
++  -h, --help       print this help, then exit
++  -V, --version    print version number and configuration settings, then exit
++      --config     print configuration, then exit
++  -q, --quiet, --silent
++                   do not print progress messages
++  -d, --debug      don't remove temporary files
++      --recheck    update $as_me by reconfiguring in the same conditions
++      --file=FILE[:TEMPLATE]
++                   instantiate the configuration file FILE
++
++Configuration files:
++$config_files
++
++Report bugs to the package provider."
++
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
++ac_cs_version="\\
++config.status
++configured by $0, generated by GNU Autoconf 2.69,
++  with options \\"\$ac_cs_config\\"
++
++Copyright (C) 2012 Free Software Foundation, Inc.
++This config.status script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it."
++
++ac_pwd='$ac_pwd'
++srcdir='$srcdir'
++test -n "\$AWK" || AWK=awk
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++# The default lists apply if the user does not specify any file.
++ac_need_defaults=:
++while test $# != 0
++do
++  case $1 in
++  --*=?*)
++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
++    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
++    ac_shift=:
++    ;;
++  --*=)
++    ac_option=`expr "X$1" : 'X\([^=]*\)='`
++    ac_optarg=
++    ac_shift=:
++    ;;
++  *)
++    ac_option=$1
++    ac_optarg=$2
++    ac_shift=shift
++    ;;
++  esac
++
++  case $ac_option in
++  # Handling of the options.
++  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++    ac_cs_recheck=: ;;
++  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
++    $as_echo "$ac_cs_version"; exit ;;
++  --config | --confi | --conf | --con | --co | --c )
++    $as_echo "$ac_cs_config"; exit ;;
++  --debug | --debu | --deb | --de | --d | -d )
++    debug=: ;;
++  --file | --fil | --fi | --f )
++    $ac_shift
++    case $ac_optarg in
++    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    '') as_fn_error $? "missing file argument" ;;
++    esac
++    as_fn_append CONFIG_FILES " '$ac_optarg'"
++    ac_need_defaults=false;;
++  --he | --h |  --help | --hel | -h )
++    $as_echo "$ac_cs_usage"; exit ;;
++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++  | -silent | --silent | --silen | --sile | --sil | --si | --s)
++    ac_cs_silent=: ;;
++
++  # This is an error.
++  -*) as_fn_error $? "unrecognized option: \`$1'
++Try \`$0 --help' for more information." ;;
++
++  *) as_fn_append ac_config_targets " $1"
++     ac_need_defaults=false ;;
++
++  esac
++  shift
++done
++
++ac_configure_extra_args=
++
++if $ac_cs_silent; then
++  exec 6>/dev/null
++  ac_configure_extra_args="$ac_configure_extra_args --silent"
++fi
++
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++if \$ac_cs_recheck; then
++  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
++  shift
++  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
++  CONFIG_SHELL='$SHELL'
++  export CONFIG_SHELL
++  exec "\$@"
++fi
++
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++exec 5>>config.log
++{
++  echo
++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
++## Running $as_me. ##
++_ASBOX
++  $as_echo "$ac_log"
++} >&5
++
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++
++# Handling of arguments.
++for ac_config_target in $ac_config_targets
++do
++  case $ac_config_target in
++    "all.mk") CONFIG_FILES="$CONFIG_FILES all.mk" ;;
++
++  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
++  esac
++done
++
++
++# If the user did not use the arguments to specify the items to instantiate,
++# then the envvar interface is used.  Set only those that are not.
++# We use the long form for the default assignment because of an extremely
++# bizarre bug on SunOS 4.1.3.
++if $ac_need_defaults; then
++  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
++fi
++
++# Have a temporary directory for convenience.  Make it in the build tree
++# simply because there is no reason against having it here, and in addition,
++# creating and moving files from /tmp can sometimes cause problems.
++# Hook for its removal unless debugging.
++# Note that there is a small window in which the directory will not be cleaned:
++# after its creation but before its name has been assigned to `$tmp'.
++$debug ||
++{
++  tmp= ac_tmp=
++  trap 'exit_status=$?
++  : "${ac_tmp:=$tmp}"
++  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
++' 0
++  trap 'as_fn_exit 1' 1 2 13 15
++}
++# Create a (secure) tmp directory for tmp files.
++
++{
++  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
++  test -d "$tmp"
++}  ||
++{
++  tmp=./conf$$-$RANDOM
++  (umask 077 && mkdir "$tmp")
++} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
++ac_tmp=$tmp
++
++# Set up the scripts for CONFIG_FILES section.
++# No need to generate them if there are no CONFIG_FILES.
++# This happens for instance with `./config.status config.h'.
++if test -n "$CONFIG_FILES"; then
++
++
++ac_cr=`echo X | tr X '\015'`
++# On cygwin, bash can eat \r inside `` if the user requested igncr.
++# But we know of no other shell where ac_cr would be empty at this
++# point, so we can use a bashism as a fallback.
++if test "x$ac_cr" = x; then
++  eval ac_cr=\$\'\\r\'
++fi
++ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
++if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
++  ac_cs_awk_cr='\\r'
++else
++  ac_cs_awk_cr=$ac_cr
++fi
++
++echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
++_ACEOF
++
++
++{
++  echo "cat >conf$$subs.awk <<_ACEOF" &&
++  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
++  echo "_ACEOF"
++} >conf$$subs.sh ||
++  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
++ac_delim='%!_!# '
++for ac_last_try in false false false false false :; do
++  . ./conf$$subs.sh ||
++    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++
++  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
++  if test $ac_delim_n = $ac_delim_num; then
++    break
++  elif $ac_last_try; then
++    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
++  else
++    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
++  fi
++done
++rm -f conf$$subs.sh
++
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
++_ACEOF
++sed -n '
++h
++s/^/S["/; s/!.*/"]=/
++p
++g
++s/^[^!]*!//
++:repl
++t repl
++s/'"$ac_delim"'$//
++t delim
++:nl
++h
++s/\(.\{148\}\)..*/\1/
++t more1
++s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
++p
++n
++b repl
++:more1
++s/["\\]/\\&/g; s/^/"/; s/$/"\\/
++p
++g
++s/.\{148\}//
++t nl
++:delim
++h
++s/\(.\{148\}\)..*/\1/
++t more2
++s/["\\]/\\&/g; s/^/"/; s/$/"/
++p
++b
++:more2
++s/["\\]/\\&/g; s/^/"/; s/$/"\\/
++p
++g
++s/.\{148\}//
++t delim
++' <conf$$subs.awk | sed '
++/^[^""]/{
++  N
++  s/\n//
++}
++' >>$CONFIG_STATUS || ac_write_fail=1
++rm -f conf$$subs.awk
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++_ACAWK
++cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
++  for (key in S) S_is_set[key] = 1
++  FS = ""
++
++}
++{
++  line = $ 0
++  nfields = split(line, field, "@")
++  substed = 0
++  len = length(field[1])
++  for (i = 2; i < nfields; i++) {
++    key = field[i]
++    keylen = length(key)
++    if (S_is_set[key]) {
++      value = S[key]
++      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
++      len += length(value) + length(field[++i])
++      substed = 1
++    } else
++      len += 1 + keylen
++  }
++
++  print line
++}
++
++_ACAWK
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
++  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
++else
++  cat
++fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
++  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
++_ACEOF
++
++# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
++# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
++# trailing colons and then remove the whole line if VPATH becomes empty
++# (actually we leave an empty line to preserve line numbers).
++if test "x$srcdir" = x.; then
++  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
++h
++s///
++s/^/:/
++s/[	 ]*$/:/
++s/:\$(srcdir):/:/g
++s/:\${srcdir}:/:/g
++s/:@srcdir@:/:/g
++s/^:*//
++s/:*$//
++x
++s/\(=[	 ]*\).*/\1/
++G
++s/\n//
++s/^[^=]*=[	 ]*$//
++}'
++fi
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++fi # test -n "$CONFIG_FILES"
++
++
++eval set X "  :F $CONFIG_FILES      "
++shift
++for ac_tag
++do
++  case $ac_tag in
++  :[FHLC]) ac_mode=$ac_tag; continue;;
++  esac
++  case $ac_mode$ac_tag in
++  :[FHL]*:*);;
++  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
++  :[FH]-) ac_tag=-:-;;
++  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
++  esac
++  ac_save_IFS=$IFS
++  IFS=:
++  set x $ac_tag
++  IFS=$ac_save_IFS
++  shift
++  ac_file=$1
++  shift
++
++  case $ac_mode in
++  :L) ac_source=$1;;
++  :[FH])
++    ac_file_inputs=
++    for ac_f
++    do
++      case $ac_f in
++      -) ac_f="$ac_tmp/stdin";;
++      *) # Look for the file first in the build tree, then in the source tree
++	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
++	 # because $ac_f cannot contain `:'.
++	 test -f "$ac_f" ||
++	   case $ac_f in
++	   [\\/$]*) false;;
++	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
++	   esac ||
++	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
++      esac
++      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
++      as_fn_append ac_file_inputs " '$ac_f'"
++    done
++
++    # Let's still pretend it is `configure' which instantiates (i.e., don't
++    # use $as_me), people would be surprised to read:
++    #    /* config.h.  Generated by config.status.  */
++    configure_input='Generated from '`
++	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
++	`' by configure.'
++    if test x"$ac_file" != x-; then
++      configure_input="$ac_file.  $configure_input"
++      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
++$as_echo "$as_me: creating $ac_file" >&6;}
++    fi
++    # Neutralize special characters interpreted by sed in replacement strings.
++    case $configure_input in #(
++    *\&* | *\|* | *\\* )
++       ac_sed_conf_input=`$as_echo "$configure_input" |
++       sed 's/[\\\\&|]/\\\\&/g'`;; #(
++    *) ac_sed_conf_input=$configure_input;;
++    esac
++
++    case $ac_tag in
++    *:-:* | *:-) cat >"$ac_tmp/stdin" \
++      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
++    esac
++    ;;
++  esac
++
++  ac_dir=`$as_dirname -- "$ac_file" ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++	 X"$ac_file" : 'X\(//\)[^/]' \| \
++	 X"$ac_file" : 'X\(//\)$' \| \
++	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X"$ac_file" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)[^/].*/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\/\)$/{
++	    s//\1/
++	    q
++	  }
++	  /^X\(\/\).*/{
++	    s//\1/
++	    q
++	  }
++	  s/.*/./; q'`
++  as_dir="$ac_dir"; as_fn_mkdir_p
++  ac_builddir=.
++
++case "$ac_dir" in
++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
++*)
++  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
++  # A ".." for each directory in $ac_dir_suffix.
++  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
++  case $ac_top_builddir_sub in
++  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
++  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
++  esac ;;
++esac
++ac_abs_top_builddir=$ac_pwd
++ac_abs_builddir=$ac_pwd$ac_dir_suffix
++# for backward compatibility:
++ac_top_builddir=$ac_top_build_prefix
++
++case $srcdir in
++  .)  # We are building in place.
++    ac_srcdir=.
++    ac_top_srcdir=$ac_top_builddir_sub
++    ac_abs_top_srcdir=$ac_pwd ;;
++  [\\/]* | ?:[\\/]* )  # Absolute name.
++    ac_srcdir=$srcdir$ac_dir_suffix;
++    ac_top_srcdir=$srcdir
++    ac_abs_top_srcdir=$srcdir ;;
++  *) # Relative name.
++    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
++    ac_top_srcdir=$ac_top_build_prefix$srcdir
++    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
++esac
++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
++
++
++  case $ac_mode in
++  :F)
++  #
++  # CONFIG_FILE
++  #
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++# If the template does not know about datarootdir, expand it.
++# FIXME: This hack should be removed a few years after 2.60.
++ac_datarootdir_hack=; ac_datarootdir_seen=
++ac_sed_dataroot='
++/datarootdir/ {
++  p
++  q
++}
++/@datadir@/p
++/@docdir@/p
++/@infodir@/p
++/@localedir@/p
++/@mandir@/p'
++case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
++*datarootdir*) ac_datarootdir_seen=yes;;
++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
++$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++  ac_datarootdir_hack='
++  s&@datadir@&$datadir&g
++  s&@docdir@&$docdir&g
++  s&@infodir@&$infodir&g
++  s&@localedir@&$localedir&g
++  s&@mandir@&$mandir&g
++  s&\\\${datarootdir}&$datarootdir&g' ;;
++esac
++_ACEOF
++
++# Neutralize VPATH when `$srcdir' = `.'.
++# Shell code in configure.ac might set extrasub.
++# FIXME: do we really want to maintain this feature?
++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++ac_sed_extra="$ac_vpsub
++$extrasub
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++:t
++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
++s|@configure_input@|$ac_sed_conf_input|;t t
++s&@top_builddir@&$ac_top_builddir_sub&;t t
++s&@top_build_prefix@&$ac_top_build_prefix&;t t
++s&@srcdir@&$ac_srcdir&;t t
++s&@abs_srcdir@&$ac_abs_srcdir&;t t
++s&@top_srcdir@&$ac_top_srcdir&;t t
++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
++s&@builddir@&$ac_builddir&;t t
++s&@abs_builddir@&$ac_abs_builddir&;t t
++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
++$ac_datarootdir_hack
++"
++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
++  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
++
++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
++  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
++  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
++      "$ac_tmp/out"`; test -z "$ac_out"; } &&
++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
++which seems to be undefined.  Please make sure it is defined" >&5
++$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
++which seems to be undefined.  Please make sure it is defined" >&2;}
++
++  rm -f "$ac_tmp/stdin"
++  case $ac_file in
++  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
++  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
++  esac \
++  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
++ ;;
++
++
++
++  esac
++
++done # for ac_tag
++
++
++as_fn_exit 0
++_ACEOF
++ac_clean_files=$ac_clean_files_save
++
++test $ac_write_fail = 0 ||
++  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
++
++
++# configure is writing to config.log, and then calls config.status.
++# config.status does its own redirection, appending to config.log.
++# Unfortunately, on DOS this fails, as config.log is still kept open
++# by configure, so config.status won't be able to write to it; its
++# output is simply discarded.  So we exec the FD to /dev/null,
++# effectively closing config.log, so it can be properly (re)opened and
++# appended to by config.status.  When coming back to configure, we
++# need to make the FD available again.
++if test "$no_create" != yes; then
++  ac_cs_success=:
++  ac_config_status_args=
++  test "$silent" = yes &&
++    ac_config_status_args="$ac_config_status_args --quiet"
++  exec 5>/dev/null
++  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
++  exec 5>>config.log
++  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
++  # would make configure fail if this is the last instruction.
++  $ac_cs_success || as_fn_exit 1
++fi
++if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
++$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
++fi
++
++
+diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/configure.ac b/src/modules/rlm_eap/types/rlm_eap_fast/configure.ac
+new file mode 100644
+index 000000000..e52e75459
+--- /dev/null
++++ b/src/modules/rlm_eap/types/rlm_eap_fast/configure.ac
+@@ -0,0 +1,104 @@
++#
++# Autoconf input file.
++#
++# Version:	$Id$
++#
++
++AC_PREREQ([2.53])
++AC_INIT(rlm_eap_fast.c)
++AC_REVISION($Revision$)
++AC_DEFUN(modname,[rlm_eap_fast])
++
++mod_ldflags=
++mod_cflags=
++
++if test x$with_[]modname != xno; then
++
++	dnl ############################################################
++	dnl # Check for command line options
++	dnl ############################################################
++	dnl extra argument: --with-openssl-lib-dir
++	openssl_lib_dir=
++	AC_ARG_WITH(openssl-lib-dir,
++	[  --with-openssl-lib-dir=DIR       directory for LDAP library files []],
++	[ case "$withval" in
++	    no)
++		AC_MSG_ERROR(Need openssl-lib-dir)
++		;;
++	    yes)
++		;;
++	    *)
++		openssl_lib_dir="$withval"
++		;;
++	  esac ]
++	)
++
++	dnl extra argument: --with-openssl-include-dir
++	openssl_include_dir=
++	AC_ARG_WITH(openssl-include-dir,
++	[  --with-openssl-include-dir=DIR   directory for LDAP include files []],
++	[ case "$withval" in
++	    no)
++		AC_MSG_ERROR(Need openssl-include-dir)
++		;;
++	    yes)
++		;;
++	    *)
++		openssl_include_dir="$withval"
++		;;
++	  esac ]
++	)
++
++	dnl ############################################################
++	dnl # Check for header files
++	dnl ############################################################
++
++	smart_try_dir=$openssl_include_dir
++	FR_SMART_CHECK_INCLUDE(openssl/ec.h)
++	if test "$ac_cv_header_openssl_ec_h" != "yes"; then
++	  fail="$fail openssl/ec.h"
++	fi
++
++	smart_try_dir=$openssl_lib_dir
++        FR_SMART_CHECK_LIB(crypto, EVP_CIPHER_CTX_new)
++        if test "x$ac_cv_lib_crypto_EVP_CIPHER_CTX_new" != "xyes"; then
++	  fail="libssl"
++	fi
++
++    AC_EGREP_CPP(yes,
++      [#include <openssl/crypto.h>
++       #if (OPENSSL_VERSION_NUMBER >= 0x01000100fL)
++       yes
++       #endif
++      ],
++      [
++        AC_MSG_CHECKING([for OpenSSL version >= 1.0.1a])
++        AC_MSG_RESULT(yes)
++      ],
++      [
++        AC_MSG_CHECKING([for OpenSSL version >= 1.0.1a])
++        AC_MSG_RESULT(no)
++        fail="openssl>1.0.1"
++      ]
++    )
++
++	targetname=modname
++else
++	targetname=
++	echo \*\*\* module modname is disabled.
++fi
++
++if test x"$fail" != x""; then
++	if test x"${enable_strict_dependencies}" = x"yes"; then
++		AC_MSG_ERROR([set --without-]modname[ to disable it explicitly.])
++	else
++		AC_MSG_WARN([silently not building ]modname[.])
++		AC_MSG_WARN([FAILURE: ]modname[ requires: $fail.])
++		targetname=""
++	fi
++fi
++
++AC_SUBST(mod_ldflags)
++AC_SUBST(mod_cflags)
++AC_SUBST(targetname)
++AC_OUTPUT(all.mk)
+diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
+index 713b47e3b..6fbb88198 100644
+--- a/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
++++ b/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
+@@ -185,9 +185,15 @@ static void eap_fast_session_ticket(tls_session_t *tls_session, uint8_t *client_
+ }
+ 
+ // hostap:src/crypto/tls_openssl.c:tls_sess_sec_cb()
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ static int _session_secret(SSL *s, void *secret, int *secret_len,
+ 			   UNUSED STACK_OF(SSL_CIPHER) *peer_ciphers,
+ 			   UNUSED SSL_CIPHER **cipher, void *arg)
++#else
++static int _session_secret(SSL *s, void *secret, int *secret_len,
++			   UNUSED STACK_OF(SSL_CIPHER) *peer_ciphers,
++			   UNUSED const SSL_CIPHER **cipher, void *arg)
++#endif
+ {
+ 	// FIXME enforce non-anon cipher
+ 
+@@ -206,8 +212,8 @@ static int _session_secret(SSL *s, void *secret, int *secret_len,
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ 	eap_fast_session_ticket(tls_session, s->s3->client_random, s->s3->server_random, secret, secret_len);
+ #else
+-	uint8_t const client_random[SSL3_RANDOM_SIZE];
+-	uint8_t const server_random[SSL3_RANDOM_SIZE];
++	uint8_t client_random[SSL3_RANDOM_SIZE];
++	uint8_t server_random[SSL3_RANDOM_SIZE];
+ 
+ 	SSL_get_client_random(s, client_random, sizeof(client_random));
+ 	SSL_get_server_random(s, server_random, sizeof(server_random));
+diff --git a/src/modules/rlm_eap/types/rlm_eap_pwd/configure b/src/modules/rlm_eap/types/rlm_eap_pwd/configure
+index 14bdfde1a..6e535f2cd 100755
+--- a/src/modules/rlm_eap/types/rlm_eap_pwd/configure
++++ b/src/modules/rlm_eap/types/rlm_eap_pwd/configure
+@@ -2917,7 +2917,7 @@ smart_prefix=
+ 
+ 
+ sm_lib_safe=`echo "crypto" | sed 'y%./+-%__p_%'`
+-sm_func_safe=`echo "EVP_cleanup" | sed 'y%./+-%__p_%'`
++sm_func_safe=`echo "EVP_CIPHER_CTX_new" | sed 'y%./+-%__p_%'`
+ 
+ old_LIBS="$LIBS"
+ old_CPPFLAGS="$CPPFLAGS"
+@@ -2927,17 +2927,17 @@ smart_lib_dir=
+ 
+ if test "x$smart_try_dir" != "x"; then
+   for try in $smart_try_dir; do
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_cleanup in -lcrypto in $try" >&5
+-$as_echo_n "checking for EVP_cleanup in -lcrypto in $try... " >&6; }
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto in $try" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto in $try... " >&6; }
+     LIBS="-lcrypto $old_LIBS"
+     CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+-extern char EVP_cleanup();
++extern char EVP_CIPHER_CTX_new();
+ int
+ main ()
+ {
+-EVP_cleanup()
++EVP_CIPHER_CTX_new()
+   ;
+   return 0;
+ }
+@@ -2962,16 +2962,16 @@ rm -f core conftest.err conftest.$ac_objext \
+ fi
+ 
+ if test "x$smart_lib" = "x"; then
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_cleanup in -lcrypto" >&5
+-$as_echo_n "checking for EVP_cleanup in -lcrypto... " >&6; }
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto... " >&6; }
+   LIBS="-lcrypto $old_LIBS"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+-extern char EVP_cleanup();
++extern char EVP_CIPHER_CTX_new();
+ int
+ main ()
+ {
+-EVP_cleanup()
++EVP_CIPHER_CTX_new()
+   ;
+   return 0;
+ }
+@@ -3048,17 +3048,17 @@ eval "smart_lib_dir=\"\$smart_lib_dir $DIRS\""
+ 
+ 
+   for try in $smart_lib_dir /usr/local/lib /opt/lib; do
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_cleanup in -lcrypto in $try" >&5
+-$as_echo_n "checking for EVP_cleanup in -lcrypto in $try... " >&6; }
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_CIPHER_CTX_new in -lcrypto in $try" >&5
++$as_echo_n "checking for EVP_CIPHER_CTX_new in -lcrypto in $try... " >&6; }
+     LIBS="-lcrypto $old_LIBS"
+     CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+-extern char EVP_cleanup();
++extern char EVP_CIPHER_CTX_new();
+ int
+ main ()
+ {
+-EVP_cleanup()
++EVP_CIPHER_CTX_new()
+   ;
+   return 0;
+ }
+@@ -3088,7 +3088,7 @@ if test "x$smart_lib" != "x"; then
+   SMART_LIBS="$smart_ldflags $smart_lib $SMART_LIBS"
+ fi
+ 
+-        if test "x$ac_cv_lib_crypto_EVP_cleanup" != "xyes"; then
++        if test "x$ac_cv_lib_crypto_EVP_CIPHER_CTX_new" != "xyes"; then
+ 	  fail="libssl"
+         else
+           for ac_func in EVP_sha256
+diff --git a/src/modules/rlm_eap/types/rlm_eap_pwd/configure.ac b/src/modules/rlm_eap/types/rlm_eap_pwd/configure.ac
+index 7c1c7aba7..34c2240fc 100644
+--- a/src/modules/rlm_eap/types/rlm_eap_pwd/configure.ac
++++ b/src/modules/rlm_eap/types/rlm_eap_pwd/configure.ac
+@@ -60,8 +60,8 @@ if test x$with_[]modname != xno; then
+ 	fi
+ 
+ 	smart_try_dir=$openssl_lib_dir
+-        FR_SMART_CHECK_LIB(crypto, EVP_cleanup)
+-        if test "x$ac_cv_lib_crypto_EVP_cleanup" != "xyes"; then
++        FR_SMART_CHECK_LIB(crypto, EVP_CIPHER_CTX_new)
++        if test "x$ac_cv_lib_crypto_EVP_CIPHER_CTX_new" != "xyes"; then
+ 	  fail="libssl"
+         else
+           AC_CHECK_FUNCS(EVP_sha256)
+diff --git a/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c b/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
+index 74892b3ba..3bd19bcf3 100644
+--- a/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
++++ b/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
+@@ -45,7 +45,7 @@ static void H_Init(HMAC_CTX *ctx)
+ 	uint8_t allzero[SHA256_DIGEST_LENGTH];
+ 
+ 	memset(allzero, 0, SHA256_DIGEST_LENGTH);
+-	HMAC_Init(ctx, allzero, SHA256_DIGEST_LENGTH, EVP_sha256());
++	HMAC_Init_ex(ctx, allzero, SHA256_DIGEST_LENGTH, EVP_sha256(), NULL);
+ }
+ 
+ static void H_Update(HMAC_CTX *ctx, uint8_t const *data, int len)
+@@ -58,46 +58,52 @@ static void H_Final(HMAC_CTX *ctx, uint8_t *digest)
+ 	unsigned int mdlen = SHA256_DIGEST_LENGTH;
+ 
+ 	HMAC_Final(ctx, digest, &mdlen);
+-	HMAC_CTX_cleanup(ctx);
+ }
+ 
+ /* a counter-based KDF based on NIST SP800-108 */
+-static void eap_pwd_kdf(uint8_t *key, int keylen, char const *label, int labellen, uint8_t *result, int resultbitlen)
++static int eap_pwd_kdf(uint8_t *key, int keylen, char const *label, int labellen, uint8_t *result, int resultbitlen)
+ {
+-	HMAC_CTX hctx;
++	HMAC_CTX *hctx = NULL;
+ 	uint8_t digest[SHA256_DIGEST_LENGTH];
+ 	uint16_t i, ctr, L;
+ 	int resultbytelen, len = 0;
+ 	unsigned int mdlen = SHA256_DIGEST_LENGTH;
+ 	uint8_t mask = 0xff;
+ 
++	hctx = HMAC_CTX_new();
++	if (hctx == NULL) {
++		DEBUG("failed allocating HMAC context");
++		return -1;
++	}
+ 	resultbytelen = (resultbitlen + 7)/8;
+ 	ctr = 0;
+ 	L = htons(resultbitlen);
+ 	while (len < resultbytelen) {
+ 		ctr++; i = htons(ctr);
+-		HMAC_Init(&hctx, key, keylen, EVP_sha256());
++		HMAC_Init_ex(hctx, key, keylen, EVP_sha256(), NULL);
+ 		if (ctr > 1) {
+-			HMAC_Update(&hctx, digest, mdlen);
++			HMAC_Update(hctx, digest, mdlen);
+ 		}
+-		HMAC_Update(&hctx, (uint8_t *) &i, sizeof(uint16_t));
+-		HMAC_Update(&hctx, (uint8_t const *)label, labellen);
+-		HMAC_Update(&hctx, (uint8_t *) &L, sizeof(uint16_t));
+-		HMAC_Final(&hctx, digest, &mdlen);
++		HMAC_Update(hctx, (uint8_t *) &i, sizeof(uint16_t));
++		HMAC_Update(hctx, (uint8_t const *)label, labellen);
++		HMAC_Update(hctx, (uint8_t *) &L, sizeof(uint16_t));
++		HMAC_Final(hctx, digest, &mdlen);
+ 		if ((len + (int) mdlen) > resultbytelen) {
+ 			memcpy(result + len, digest, resultbytelen - len);
+ 		} else {
+ 			memcpy(result + len, digest, mdlen);
+ 		}
+ 		len += mdlen;
+-		HMAC_CTX_cleanup(&hctx);
+ 	}
++	HMAC_CTX_free(hctx);
+ 
+ 	/* since we're expanding to a bit length, mask off the excess */
+ 	if (resultbitlen % 8) {
+ 		mask <<= (8 - (resultbitlen % 8));
+ 		result[resultbytelen - 1] &= mask;
+ 	}
++
++	return 0;
+ }
+ 
+ int compute_password_element (pwd_session_t *session, uint16_t grp_num,
+@@ -107,10 +113,16 @@ int compute_password_element (pwd_session_t *session, uint16_t grp_num,
+ 			      uint32_t *token)
+ {
+ 	BIGNUM *x_candidate = NULL, *rnd = NULL, *cofactor = NULL;
+-	HMAC_CTX ctx;
++	HMAC_CTX *ctx = NULL;
+ 	uint8_t pwe_digest[SHA256_DIGEST_LENGTH], *prfbuf = NULL, ctr;
+ 	int nid, is_odd, primebitlen, primebytelen, ret = 0;
+ 
++	ctx = HMAC_CTX_new();
++	if (ctx == NULL) {
++		DEBUG("failed allocating HMAC context");
++		goto fail;
++	}
++
+ 	switch (grp_num) { /* from IANA registry for IKE D-H groups */
+ 	case 19:
+ 		nid = NID_X9_62_prime256v1;
+@@ -190,17 +202,20 @@ int compute_password_element (pwd_session_t *session, uint16_t grp_num,
+ 		 *    pwd-seed = H(token | peer-id | server-id | password |
+ 		 *		   counter)
+ 		 */
+-		H_Init(&ctx);
+-		H_Update(&ctx, (uint8_t *)token, sizeof(*token));
+-		H_Update(&ctx, (uint8_t const *)id_peer, id_peer_len);
+-		H_Update(&ctx, (uint8_t const *)id_server, id_server_len);
+-		H_Update(&ctx, (uint8_t const *)password, password_len);
+-		H_Update(&ctx, (uint8_t *)&ctr, sizeof(ctr));
+-		H_Final(&ctx, pwe_digest);
++		H_Init(ctx);
++		H_Update(ctx, (uint8_t *)token, sizeof(*token));
++		H_Update(ctx, (uint8_t const *)id_peer, id_peer_len);
++		H_Update(ctx, (uint8_t const *)id_server, id_server_len);
++		H_Update(ctx, (uint8_t const *)password, password_len);
++		H_Update(ctx, (uint8_t *)&ctr, sizeof(ctr));
++		H_Final(ctx, pwe_digest);
+ 
+ 		BN_bin2bn(pwe_digest, SHA256_DIGEST_LENGTH, rnd);
+-		eap_pwd_kdf(pwe_digest, SHA256_DIGEST_LENGTH, "EAP-pwd Hunting And Pecking",
+-			    strlen("EAP-pwd Hunting And Pecking"), prfbuf, primebitlen);
++		if (eap_pwd_kdf(pwe_digest, SHA256_DIGEST_LENGTH, "EAP-pwd Hunting And Pecking",
++			        strlen("EAP-pwd Hunting And Pecking"), prfbuf, primebitlen) != 0) {
++			DEBUG("key derivation function failed");
++			goto fail;
++		}
+ 
+ 		BN_bin2bn(prfbuf, primebytelen, x_candidate);
+ 		/*
+@@ -266,6 +281,7 @@ int compute_password_element (pwd_session_t *session, uint16_t grp_num,
+ 	BN_clear_free(x_candidate);
+ 	BN_clear_free(rnd);
+ 	talloc_free(prfbuf);
++	HMAC_CTX_free(ctx);
+ 
+ 	return ret;
+ }
+@@ -420,10 +436,16 @@ finish:
+ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ {
+ 	BIGNUM *x = NULL, *y = NULL;
+-	HMAC_CTX ctx;
++	HMAC_CTX *ctx = NULL;
+ 	uint8_t *cruft = NULL;
+ 	int offset, req = -1;
+ 
++	ctx = HMAC_CTX_new();
++	if (ctx == NULL) {
++		DEBUG2("pwd: unable to allocate HMAC context!");
++		goto finish;
++	}
++
+ 	/*
+ 	 * Each component of the cruft will be at most as big as the prime
+ 	 */
+@@ -437,7 +459,7 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	 * commit is H(k | server_element | server_scalar | peer_element |
+ 	 *	       peer_scalar | ciphersuite)
+ 	 */
+-	H_Init(&ctx);
++	H_Init(ctx);
+ 
+ 	/*
+ 	 * Zero the memory each time because this is mod prime math and some
+@@ -447,7 +469,7 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	 */
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(session->k);
+ 	BN_bn2bin(session->k, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	 * next is server element: x, y
+@@ -459,12 +481,12 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(x);
+ 	BN_bn2bin(x, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(y);
+ 	BN_bn2bin(y, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	 * and server scalar
+@@ -472,7 +494,7 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->my_scalar);
+ 	BN_bn2bin(session->my_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
+ 
+ 	/*
+ 	 * next is peer element: x, y
+@@ -485,12 +507,12 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(x);
+ 	BN_bn2bin(x, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(y);
+ 	BN_bn2bin(y, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	 * and peer scalar
+@@ -498,20 +520,21 @@ int compute_server_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->peer_scalar);
+ 	BN_bn2bin(session->peer_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
+ 
+ 	/*
+ 	 * finally, ciphersuite
+ 	 */
+-	H_Update(&ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
++	H_Update(ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
+ 
+-	H_Final(&ctx, out);
++	H_Final(ctx, out);
+ 
+ 	req = 0;
+ finish:
+ 	talloc_free(cruft);
+ 	BN_free(x);
+ 	BN_free(y);
++	HMAC_CTX_free(ctx);
+ 
+ 	return req;
+ }
+@@ -519,10 +542,16 @@ finish:
+ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ {
+ 	BIGNUM *x = NULL, *y = NULL;
+-	HMAC_CTX ctx;
++	HMAC_CTX *ctx = NULL;
+ 	uint8_t *cruft = NULL;
+ 	int offset, req = -1;
+ 
++	ctx = HMAC_CTX_new();
++	if (ctx == NULL) {
++		DEBUG2("pwd: unable to allocate HMAC context!");
++		goto finish;
++	}
++
+ 	/*
+ 	 * Each component of the cruft will be at most as big as the prime
+ 	 */
+@@ -536,7 +565,7 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	 * commit is H(k | server_element | server_scalar | peer_element |
+ 	 *	       peer_scalar | ciphersuite)
+ 	 */
+-	H_Init(&ctx);
++	H_Init(ctx);
+ 
+ 	/*
+ 	 * Zero the memory each time because this is mod prime math and some
+@@ -546,7 +575,7 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	 */
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(session->k);
+ 	BN_bn2bin(session->k, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	* then peer element: x, y
+@@ -559,12 +588,12 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(x);
+ 	BN_bn2bin(x, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(y);
+ 	BN_bn2bin(y, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	 * and peer scalar
+@@ -572,7 +601,7 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->peer_scalar);
+ 	BN_bn2bin(session->peer_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
+ 
+ 	/*
+ 	 * then server element: x, y
+@@ -584,12 +613,12 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(x);
+ 	BN_bn2bin(x, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(y);
+ 	BN_bn2bin(y, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+ 	/*
+ 	 * and server scalar
+@@ -597,35 +626,42 @@ int compute_peer_confirm (pwd_session_t *session, uint8_t *out, BN_CTX *bnctx)
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->my_scalar);
+ 	BN_bn2bin(session->my_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
+ 
+ 	/*
+ 	 * finally, ciphersuite
+ 	 */
+-	H_Update(&ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
++	H_Update(ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
+ 
+-	H_Final(&ctx, out);
++	H_Final(ctx, out);
+ 
+ 	req = 0;
+ finish:
+ 	talloc_free(cruft);
+ 	BN_free(x);
+ 	BN_free(y);
++	HMAC_CTX_free(ctx);
+ 
+ 	return req;
+ }
+ 
+ int compute_keys (pwd_session_t *session, uint8_t *peer_confirm, uint8_t *msk, uint8_t *emsk)
+ {
+-	HMAC_CTX ctx;
+-	uint8_t mk[SHA256_DIGEST_LENGTH], *cruft;
++	HMAC_CTX *ctx = NULL;
++	uint8_t mk[SHA256_DIGEST_LENGTH], *cruft = NULL;
+ 	uint8_t session_id[SHA256_DIGEST_LENGTH + 1];
+ 	uint8_t msk_emsk[128];		/* 64 each */
+-	int offset;
++	int offset, ret = -1;
++
++	ctx = HMAC_CTX_new();
++	if (ctx == NULL) {
++		DEBUG2("pwd: unable to allocate HMAC context!");
++		goto finish;
++	}
+ 
+ 	if ((cruft = talloc_array(session, uint8_t, BN_num_bytes(session->prime))) == NULL) {
+ 		DEBUG2("pwd: unable to allocate space to compute keys");
+-		return -1;
++		goto finish;
+ 	}
+ 
+ 	/*
+@@ -633,41 +669,49 @@ int compute_keys (pwd_session_t *session, uint8_t *peer_confirm, uint8_t *msk, u
+ 	 *	scal_s)
+ 	 */
+ 	session_id[0] = PW_EAP_PWD;
+-	H_Init(&ctx);
+-	H_Update(&ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
++	H_Init(ctx);
++	H_Update(ctx, (uint8_t *)&session->ciphersuite, sizeof(session->ciphersuite));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->peer_scalar);
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	BN_bn2bin(session->peer_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
+ 	offset = BN_num_bytes(session->order) - BN_num_bytes(session->my_scalar);
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	BN_bn2bin(session->my_scalar, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->order));
+-	H_Final(&ctx, (uint8_t *)&session_id[1]);
++	H_Update(ctx, cruft, BN_num_bytes(session->order));
++	H_Final(ctx, (uint8_t *)&session_id[1]);
+ 
+ 	/* then compute MK = H(k | commit-peer | commit-server) */
+-	H_Init(&ctx);
++	H_Init(ctx);
+ 
+ 	memset(cruft, 0, BN_num_bytes(session->prime));
+ 	offset = BN_num_bytes(session->prime) - BN_num_bytes(session->k);
+ 	BN_bn2bin(session->k, cruft + offset);
+-	H_Update(&ctx, cruft, BN_num_bytes(session->prime));
++	H_Update(ctx, cruft, BN_num_bytes(session->prime));
+ 
+-	H_Update(&ctx, peer_confirm, SHA256_DIGEST_LENGTH);
++	H_Update(ctx, peer_confirm, SHA256_DIGEST_LENGTH);
+ 
+-	H_Update(&ctx, session->my_confirm, SHA256_DIGEST_LENGTH);
++	H_Update(ctx, session->my_confirm, SHA256_DIGEST_LENGTH);
+ 
+-	H_Final(&ctx, mk);
++	H_Final(ctx, mk);
+ 
+ 	/* stretch the mk with the session-id to get MSK | EMSK */
+-	eap_pwd_kdf(mk, SHA256_DIGEST_LENGTH, (char const *)session_id,
+-		    SHA256_DIGEST_LENGTH + 1, msk_emsk, 1024);  /* it's bits, ((64 + 64) * 8) */
++	if (eap_pwd_kdf(mk, SHA256_DIGEST_LENGTH, (char const *)session_id,
++		        SHA256_DIGEST_LENGTH + 1, msk_emsk,
++			/* it's bits, ((64 + 64) * 8) */
++			1024) != 0) {
++		DEBUG("key derivation function failed");
++		goto finish;
++	}
+ 
+ 	memcpy(msk, msk_emsk, 64);
+ 	memcpy(emsk, msk_emsk + 64, 64);
+ 
++	ret = 0;
++finish:
+ 	talloc_free(cruft);
+-	return 0;
++	HMAC_CTX_free(ctx);
++	return ret;
+ }
+ 
+ 
+diff --git a/src/modules/rlm_otp/otp_radstate.c b/src/modules/rlm_otp/otp_radstate.c
+index a70393918..66fd8b498 100644
+--- a/src/modules/rlm_otp/otp_radstate.c
++++ b/src/modules/rlm_otp/otp_radstate.c
+@@ -110,7 +110,7 @@ size_t otp_gen_state(char state[OTP_MAX_RADSTATE_LEN],
+ 		     size_t clen,
+ 		     int32_t flags, int32_t when, uint8_t const key[16])
+ {
+-	HMAC_CTX hmac_ctx;
++	HMAC_CTX *hmac_ctx;
+ 	uint8_t hmac[MD5_DIGEST_LENGTH];
+ 	char *p;
+ 
+@@ -120,12 +120,13 @@ size_t otp_gen_state(char state[OTP_MAX_RADSTATE_LEN],
+ 	 *	having to collect the data to be signed into one
+ 	 *	contiguous piece.
+ 	 */
+-	HMAC_Init(&hmac_ctx, key, sizeof(key[0]) * 16, EVP_md5());
+-	HMAC_Update(&hmac_ctx, (uint8_t const *) challenge, clen);
+-	HMAC_Update(&hmac_ctx, (uint8_t *) &flags, 4);
+-	HMAC_Update(&hmac_ctx, (uint8_t *) &when, 4);
+-	HMAC_Final(&hmac_ctx, hmac, NULL);
+-	HMAC_cleanup(&hmac_ctx);
++	hmac_ctx = HMAC_CTX_new();
++	HMAC_Init_ex(hmac_ctx, key, sizeof(key[0]) * 16, EVP_md5(), NULL);
++	HMAC_Update(hmac_ctx, (uint8_t const *) challenge, clen);
++	HMAC_Update(hmac_ctx, (uint8_t *) &flags, 4);
++	HMAC_Update(hmac_ctx, (uint8_t *) &when, 4);
++	HMAC_Final(hmac_ctx, hmac, NULL);
++	HMAC_CTX_free(hmac_ctx);
+ 
+ 	/*
+ 	 *	Generate the state.
+diff --git a/src/modules/rlm_wimax/rlm_wimax.c b/src/modules/rlm_wimax/rlm_wimax.c
+index 784ae635e..f0fb394fc 100644
+--- a/src/modules/rlm_wimax/rlm_wimax.c
++++ b/src/modules/rlm_wimax/rlm_wimax.c
+@@ -27,10 +27,9 @@ USES_APPLE_DEPRECATED_API	/* OpenSSL API has been deprecated by Apple */
+ #include <freeradius-devel/radiusd.h>
+ #include <freeradius-devel/modules.h>
+ 
+-/*
+- *	FIXME: Add check for this header to configure.ac
+- */
++#ifdef HAVE_OPENSSL_HMAC_H
+ #include <openssl/hmac.h>
++#endif
+ 
+ /*
+  *	FIXME: Fix the build system to create definitions from names.
+@@ -122,7 +121,7 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 	rlm_wimax_t *inst = instance;
+ 	VALUE_PAIR *msk, *emsk, *vp;
+ 	VALUE_PAIR *mn_nai, *ip, *fa_rk;
+-	HMAC_CTX hmac;
++	HMAC_CTX *hmac;
+ 	unsigned int rk1_len, rk2_len, rk_len;
+ 	uint32_t mip_spi;
+ 	uint8_t usage_data[24];
+@@ -161,20 +160,20 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 	/*
+ 	 *	MIP-RK-1 = HMAC-SSHA256(EMSK, usage-data | 0x01)
+ 	 */
+-	HMAC_CTX_init(&hmac);
+-	HMAC_Init_ex(&hmac, emsk->vp_octets, emsk->vp_length, EVP_sha256(), NULL);
++	hmac = HMAC_CTX_new();
++	HMAC_Init_ex(hmac, emsk->vp_octets, emsk->vp_length, EVP_sha256(), NULL);
+ 
+-	HMAC_Update(&hmac, &usage_data[0], sizeof(usage_data));
+-	HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++	HMAC_Update(hmac, &usage_data[0], sizeof(usage_data));
++	HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 	/*
+ 	 *	MIP-RK-2 = HMAC-SSHA256(EMSK, MIP-RK-1 | usage-data | 0x01)
+ 	 */
+-	HMAC_Init_ex(&hmac, emsk->vp_octets, emsk->vp_length, EVP_sha256(), NULL);
++	HMAC_Init_ex(hmac, emsk->vp_octets, emsk->vp_length, EVP_sha256(), NULL);
+ 
+-	HMAC_Update(&hmac, (uint8_t const *) &mip_rk_1, rk1_len);
+-	HMAC_Update(&hmac, &usage_data[0], sizeof(usage_data));
+-	HMAC_Final(&hmac, &mip_rk_2[0], &rk2_len);
++	HMAC_Update(hmac, (uint8_t const *) &mip_rk_1, rk1_len);
++	HMAC_Update(hmac, &usage_data[0], sizeof(usage_data));
++	HMAC_Final(hmac, &mip_rk_2[0], &rk2_len);
+ 
+ 	memcpy(mip_rk, mip_rk_1, rk1_len);
+ 	memcpy(mip_rk + rk1_len, mip_rk_2, rk2_len);
+@@ -183,10 +182,10 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 	/*
+ 	 *	MIP-SPI = HMAC-SSHA256(MIP-RK, "SPI CMIP PMIP");
+ 	 */
+-	HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha256(), NULL);
++	HMAC_Init_ex(hmac, mip_rk, rk_len, EVP_sha256(), NULL);
+ 
+-	HMAC_Update(&hmac, (uint8_t const *) "SPI CMIP PMIP", 12);
+-	HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++	HMAC_Update(hmac, (uint8_t const *) "SPI CMIP PMIP", 12);
++	HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 	/*
+ 	 *	Take the 4 most significant octets.
+@@ -246,12 +245,12 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 		 *	MN-HA-PMIP4 =
+ 		 *	   H(MIP-RK, "PMIP4 MN HA" | HA-IPv4 | MN-NAI);
+ 		 */
+-		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
++		HMAC_Init_ex(hmac, mip_rk, rk_len, EVP_sha1(), NULL);
+ 
+-		HMAC_Update(&hmac, (uint8_t const *) "PMIP4 MN HA", 11);
+-		HMAC_Update(&hmac, (uint8_t const *) &ip->vp_ipaddr, 4);
+-		HMAC_Update(&hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
+-		HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++		HMAC_Update(hmac, (uint8_t const *) "PMIP4 MN HA", 11);
++		HMAC_Update(hmac, (uint8_t const *) &ip->vp_ipaddr, 4);
++		HMAC_Update(hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
++		HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 		/*
+ 		 *	Put MN-HA-PMIP4 into WiMAX-MN-hHA-MIP4-Key
+@@ -296,12 +295,12 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 		 *	MN-HA-CMIP4 =
+ 		 *	   H(MIP-RK, "CMIP4 MN HA" | HA-IPv4 | MN-NAI);
+ 		 */
+-		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
++		HMAC_Init_ex(hmac, mip_rk, rk_len, EVP_sha1(), NULL);
+ 
+-		HMAC_Update(&hmac, (uint8_t const *) "CMIP4 MN HA", 11);
+-		HMAC_Update(&hmac, (uint8_t const *) &ip->vp_ipaddr, 4);
+-		HMAC_Update(&hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
+-		HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++		HMAC_Update(hmac, (uint8_t const *) "CMIP4 MN HA", 11);
++		HMAC_Update(hmac, (uint8_t const *) &ip->vp_ipaddr, 4);
++		HMAC_Update(hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
++		HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 		/*
+ 		 *	Put MN-HA-CMIP4 into WiMAX-MN-hHA-MIP4-Key
+@@ -346,12 +345,12 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 		 *	MN-HA-CMIP6 =
+ 		 *	   H(MIP-RK, "CMIP6 MN HA" | HA-IPv6 | MN-NAI);
+ 		 */
+-		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
++		HMAC_Init_ex(hmac, mip_rk, rk_len, EVP_sha1(), NULL);
+ 
+-		HMAC_Update(&hmac, (uint8_t const *) "CMIP6 MN HA", 11);
+-		HMAC_Update(&hmac, (uint8_t const *) &ip->vp_ipv6addr, 16);
+-		HMAC_Update(&hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
+-		HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++		HMAC_Update(hmac, (uint8_t const *) "CMIP6 MN HA", 11);
++		HMAC_Update(hmac, (uint8_t const *) &ip->vp_ipv6addr, 16);
++		HMAC_Update(hmac, (uint8_t const *) &mn_nai->vp_strvalue, mn_nai->vp_length);
++		HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 		/*
+ 		 *	Put MN-HA-CMIP6 into WiMAX-MN-hHA-MIP6-Key
+@@ -393,11 +392,11 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 	 */
+ 	fa_rk = fr_pair_find_by_num(request->reply->vps, 14, VENDORPEC_WIMAX, TAG_ANY);
+ 	if (fa_rk && (fa_rk->vp_length <= 1)) {
+-		HMAC_Init_ex(&hmac, mip_rk, rk_len, EVP_sha1(), NULL);
++		HMAC_Init_ex(hmac, mip_rk, rk_len, EVP_sha1(), NULL);
+ 
+-		HMAC_Update(&hmac, (uint8_t const *) "FA-RK", 5);
++		HMAC_Update(hmac, (uint8_t const *) "FA-RK", 5);
+ 
+-		HMAC_Final(&hmac, &mip_rk_1[0], &rk1_len);
++		HMAC_Final(hmac, &mip_rk_1[0], &rk1_len);
+ 
+ 		fr_pair_value_memcpy(fa_rk, &mip_rk_1[0], rk1_len);
+ 	}
+@@ -451,7 +450,7 @@ static rlm_rcode_t CC_HINT(nonnull) mod_post_auth(void *instance, REQUEST *reque
+ 	/*
+ 	 *	Wipe the context of all sensitive information.
+ 	 */
+-	HMAC_CTX_cleanup(&hmac);
++	HMAC_CTX_free(hmac);
+ 
+ 	return RLM_MODULE_UPDATED;
+ }
+-- 
+2.11.0
+


More information about the arch-commits mailing list