1AC_ARG_ENABLE([sasl], 2 [AS_HELP_STRING([--enable-sasl=@<:@auto/yes/no@:>@], 3 [Use libsasl for Kerberos.])], 4 [], 5 [enable_sasl=auto]) 6 7sasl_mode=no 8 9AS_IF([test "$enable_sasl" != "no"],[ 10 AS_IF( 11 [test "$enable_sasl" = "gssapi"], 12 [ 13 sasl_mode=gssapi 14 AS_IF( 15 [test "$os_darwin" = "yes"], 16 [SASL_LIBS="-framework GSS"], 17 [ 18 AC_CHECK_HEADERS( 19 [gssapi/gssapi.h], 20 [have_gssapi_headers=yes], 21 [have_gssapi_headers=no] 22 ) 23 PKG_CHECK_MODULES(KRB5_GSSAPI, 24 [krb5-gssapi], 25 [have_krb5_gssapi=yes], 26 [have_krb5_gssapi=no] 27 ) 28 if test "$have_gssapi_headers" = "no" -o "$have_krb5_gssapi" = "no"; then 29 AC_MSG_ERROR([You must install the krb5 libraries and development headers to enable GSSAPI support.]) 30 fi 31 SASL_CFLAGS=$KRB5_GSSAPI_CFLAGS 32 SASL_LIBS=$KRB5_GSSAPI_LIBS 33 ] 34 ) 35 ], 36 [ 37 PKG_CHECK_MODULES(SASL, 38 [libsasl2], 39 [sasl_mode=sasl2], 40 [ 41 AS_IF([test "$enable_sasl" != "no"], 42 [ 43 AC_CHECK_LIB([sasl2],[sasl_client_init],[have_sasl2_lib=yes],[have_sasl2_lib=no]) 44 AC_CHECK_LIB([sasl],[sasl_client_init],[have_sasl_lib=yes],[have_sasl_lib=no]) 45 if test "$have_sasl_lib" = "no" -a "$have_sasl2_lib" = "no" -a "$enable_sasl" = "yes" ; then 46 AC_MSG_ERROR([You must install the Cyrus SASL libraries and development headers to enable SASL support.]) 47 fi 48 49 old_CFLAGS=$CFLAGS 50 CFLAGS=$SASL_CFLAGS 51 AC_CHECK_HEADER([sasl/sasl.h],[have_sasl_headers=yes],[have_sasl_headers=no]) 52 if test "$have_sasl_headers" = "no" -a "$enable_sasl" = "yes" ; then 53 AC_MSG_ERROR([You must install the Cyrus SASL development headers to enable SASL support.]) 54 fi 55 CFLAGS=$old_CFLAGS 56 57 if test "$have_sasl_headers" -a "$have_sasl2_lib" = "yes" ; then 58 sasl_mode=sasl2 59 SASL_LIBS=-lsasl2 60 fi 61 62 if test "$have_sasl_headers" -a "$have_sasl_lib" = "yes" ; then 63 sasl_mode=sasl 64 SASL_LIBS=-lsasl 65 fi 66 ]) 67 ] 68 ) 69 ] 70 ) 71]) 72 73if test "$enable_sasl" = "auto" -a "$sasl_mode" != "no"; then 74 AC_CHECK_HEADERS([sasl/sasl.h], 75 [have_sasl_headers=yes], 76 [have_sasl_headers=no]) 77 if test "$have_sasl_headers" = "no"; then 78 SASL_LIBS="" 79 enable_sasl=no 80 sasl_mode=no 81 fi 82fi 83 84AM_CONDITIONAL([ENABLE_SASL], [test "$sasl_mode" != "no"]) 85AM_CONDITIONAL([ENABLE_SASL_GSSAPI], [test "$sasl_mode" = "gssapi"]) 86AM_CONDITIONAL([ENABLE_SASL_CYRUS], [test "$sasl_mode" = "sasl" -o "$sasl_mode" = "sasl2"]) 87AM_CONDITIONAL([ENABLE_SASL_SSPI], false) 88 89AC_SUBST(SASL_CFLAGS) 90AC_SUBST(SASL_LIBS) 91 92dnl Let mongoc-config.h.in know about SASL status. 93if test "$sasl_mode" != "no" ; then 94 AC_SUBST(MONGOC_ENABLE_SASL, 1) 95 AC_SUBST(MONGOC_ENABLE_SASL_SSPI, 0) 96 if test "$sasl_mode" = "gssapi" ; then 97 AC_SUBST(MONGOC_ENABLE_SASL_GSSAPI, 1) 98 AC_SUBST(MONGOC_ENABLE_SASL_CYRUS, 0) 99 AC_SUBST(MONGOC_HAVE_SASL_CLIENT_DONE, 0) 100 else 101 AC_SUBST(MONGOC_ENABLE_SASL_GSSAPI, 0) 102 AC_SUBST(MONGOC_ENABLE_SASL_CYRUS, 1) 103 AC_CHECK_LIB([sasl2],[sasl_client_done], 104 [have_sasl_client_done=yes], 105 [have_sasl_client_done=no]) 106 if test "$have_sasl_client_done" = "yes" ; then 107 AC_SUBST(MONGOC_HAVE_SASL_CLIENT_DONE, 1) 108 else 109 AC_SUBST(MONGOC_HAVE_SASL_CLIENT_DONE, 0) 110 fi 111 fi 112 113else 114 AC_SUBST(MONGOC_ENABLE_SASL, 0) 115 AC_SUBST(MONGOC_ENABLE_SASL_CYRUS, 0) 116 AC_SUBST(MONGOC_ENABLE_SASL_GSSAPI, 0) 117 AC_SUBST(MONGOC_ENABLE_SASL_SSPI, 0) 118 AC_SUBST(MONGOC_HAVE_SASL_CLIENT_DONE, 0) 119fi 120