X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=configure.in;h=8cd00df1f01ff51c580088d76c144c116c11c310;hp=aaffb2d7f1fc561ec6bde8871e4cdd2f1adc3f21;hb=74a9c55e518cbd4ece01a2c57104222d9b675fb0;hpb=2650ce9c83edfde2fbe2de3cb65812309b2edebd diff --git a/configure.in b/configure.in index aaffb2d..8cd00df 100644 --- a/configure.in +++ b/configure.in @@ -34,7 +34,7 @@ AC_ARG_ENABLE(nfsv3, enable_nfsv3=$enableval, enable_nfsv3=yes) if test "$enable_nfsv3" = yes; then - AC_DEFINE(NFS3_SUPPORTED) + AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in]) else enable_nfsv3= fi @@ -44,7 +44,7 @@ AC_ARG_ENABLE(nfsv4, enable_nfsv4=$enableval, enable_nfsv4=yes) if test "$enable_nfsv4" = yes; then - AC_DEFINE(NFS4_SUPPORTED) + AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in]) IDMAPD=idmapd else enable_nfsv4= @@ -57,7 +57,7 @@ AC_ARG_ENABLE(gss, enable_gss=$enableval, enable_gss=yes) if test "$enable_gss" = yes; then - AC_DEFINE(GSS_SUPPORTED) + AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in]) GSSD=gssd SVCGSSD=svcgssd else @@ -78,7 +78,7 @@ AC_ARG_ENABLE(secure-statd, test "$enableval" = "yes" && secure_statd=yes, secure_statd=no) if test "$secure_statd" = yes; then - AC_DEFINE(RESTRICTED_STATD) + AC_DEFINE(RESTRICTED_STATD, 1, [Define this if you want to enable various security checks in statd. These checks basically keep anyone but lockd from using this service.]) fi AC_SUBST(secure_statd) AC_ARG_ENABLE(rquotad, @@ -117,8 +117,8 @@ AC_CHECK_LIB(socket, main, [LIBSOCKET="-lnsl"]) AC_CHECK_LIB(nsl, main, [LIBNSL="-lnsl"]) AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"]) if test "$enable_nfsv4" = yes; then - AC_CHECK_LIB(event, event_dispatch, , [AC_MSG_ERROR(libevent needed for nfsv4 support)]) - AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)]) + AC_CHECK_LIB(event, event_dispatch, [libevent=1], [AC_MSG_ERROR(libevent needed for nfsv4 support)]) + AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, [libnfsidmap=1], [AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)]) AC_CHECK_HEADERS(event.h, ,[AC_MSG_ERROR(libevent needed for nfsv4 support)]) AC_CHECK_HEADERS(nfsidmap.h, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)]) fi @@ -155,8 +155,8 @@ if test "$enable_gss" = yes; then esac ] ) - for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \ - /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do + for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \ + /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do dnl This ugly hack brought on by the split installation of dnl MIT Kerberos on Fedora Core 1 K5CONFIG="" @@ -166,40 +166,34 @@ if test "$enable_gss" = yes; then K5CONFIG="/usr/kerberos/bin/krb5-config" fi if test "$K5CONFIG" != ""; then + KRBINC=`$K5CONFIG --cflags` + KRBLIB=`$K5CONFIG --libs gssapi` + K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($4,v,"."); if (v[[3]] == "") v[[3]] = "0"; print v[[1]]v[[2]]v[[3]] }'` + AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number]) if test -f $dir/include/gssapi/gssapi_krb5.h -a \ \( -f $dir/lib/libgssapi_krb5.a -o \ -f $dir/lib/libgssapi_krb5.so \) ; then - AC_DEFINE(HAVE_KRB5) + AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries]) KRBDIR="$dir" - K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[[1]]v[[2]]v[[3]] }'` - AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS) - KRBLIB=`$K5CONFIG --libs gssapi` + dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the + dnl private function (gss_krb5_ccache_name) to get correct + dnl behavior of changing the ccache used by gssapi. + dnl Starting in 1.3.2, we *DO NOT* want to use + dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME + dnl to get gssapi to use a different ccache if test $K5VERS -le 131; then - AC_DEFINE(USE_PRIVATE_KRB5_FUNCTIONS) + AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable]) fi - AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context, - AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB) - AC_CHECK_LIB(gssapi_krb5, gss_krb5_set_allowable_enctypes, - AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB) - AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name, - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB) + gssapi_lib=gssapi_krb5 break dnl The following ugly hack brought on by the split installation dnl of Heimdal Kerberos on SuSe elif test \( -f $dir/include/heim_err.h -o\ -f $dir/include/heimdal/heim_err.h \) -a \ -f $dir/lib/libroken.a; then - AC_DEFINE(HAVE_HEIMDAL) + AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries]) KRBDIR="$dir" - K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[[1]]v[[2]]v[[3]] }'` - AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS) - KRBLIB=`$K5CONFIG --libs gssapi` - AC_CHECK_LIB(gssapi, gss_krb5_export_lucid_sec_context, - AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB) - AC_CHECK_LIB(gssapi, gss_krb5_set_allowable_enctypes, - AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB) - AC_CHECK_LIB(gssapi, gss_krb5_ccache_name, - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB) + gssapi_lib=gssapi break fi CFLAGS=$CFLAGS `$K5CONFIG --cflags` @@ -207,14 +201,23 @@ if test "$enable_gss" = yes; then done dnl We didn't find a usable Kerberos environment if test "x$KRBDIR" = "x"; then - AC_MSG_RESULT("no") if test "x$krb5_with" = "x"; then AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=) else AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with) fi fi + CFLAGS="$CFLAGS `$K5CONFIG --cflags`" AC_MSG_RESULT($KRBDIR) + + dnl Now check for functions within gssapi library + AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, + AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIB) + AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, + AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIB) + AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIB) + dnl If they specified a directory and it didn't work, give them a warning if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!) @@ -222,6 +225,7 @@ if test "$enable_gss" = yes; then AC_SUBST([KRBDIR]) AC_SUBST([KRBLIB]) + AC_SUBST([KRBINC]) AC_SUBST([K5VERS]) fi @@ -229,16 +233,26 @@ dnl ************************************************************* dnl Check for headers dnl ************************************************************* dnl AC_HAVE_HEADERS(string.h) +AC_HAVE_HEADERS(com_err.h) +AC_HAVE_HEADERS(et/com_err.h) dnl ************************************************************* dnl Check for functions dnl ************************************************************* AC_HAVE_FUNCS(innetgr) +dnl ************************************************************* +dnl Check for data sizes +dnl ************************************************************* +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(size_t) + dnl ************************************************************* dnl Export some path names to config.h dnl ************************************************************* -AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir") +AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!]) AC_SUBST(LDFLAGS) AC_SUBST(CXXFLAGS)