1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-03 12:58:35 +03:00

r16057: Coalesce the DMAPI configure tests into a single macro. Add

a more specific probe to try and eliminate old, incompatible
DMAPI implementations provided by IRIX 6.4 and AIX 4.3.
(This used to be commit aafd4db457ce8a60c628d54a3ace3b97c8885dca)
This commit is contained in:
James Peach 2006-06-06 07:43:17 +00:00 committed by Gerald (Jerry) Carter
parent 656d8c30db
commit 777c22b300
3 changed files with 92 additions and 30 deletions

91
source3/aclocal.m4 vendored
View File

@ -852,3 +852,94 @@ AC_DEFUN([SMB_REMOVELIB],
LIBS=`echo $LIBS | sed -es/-l$1//g`
])
dnl SMB_CHECK_DMAPI([actions if true], [actions if false])
dnl Check whether DMAPI is available and is a version that we know
dnl how to deal with. The default truth action is to set samba_dmapi_libs
dnl to the list of necessary libraries, and to define USE_DMAPI.
AC_DEFUN([SMB_CHECK_DMAPI],
[
samba_dmapi_libs=""
if test x"$samba_dmapi_libs" = x"" ; then
AC_CHECK_LIB(dm, dm_get_eventlist,
[ samba_dmapi_libs="-ldm"], [])
fi
if test x"$samba_dmapi_libs" = x"" ; then
AC_CHECK_LIB(jfsdm, dm_get_eventlist,
[samba_dmapi_libs="-ljfsdm"], [])
fi
if test x"$samba_dmapi_libs" = x"" ; then
AC_CHECK_LIB(xdsm, dm_get_eventlist,
[samba_dmapi_libs="-lxdsm"], [])
fi
# Only bother to test ehaders if we have a candidate DMAPI library
if test x"$samba_dmapi_libs" != x"" ; then
AC_CHECK_HEADERS(sys/dmi.h xfs/dmapi.h sys/jfsdmapi.h sys/dmapi.h)
fi
if test x"$samba_dmapi_libs" != x"" ; then
samba_dmapi_save_LIBS="$LIBS"
LIBS="$LIBS $samba_dmapi_libs"
AC_TRY_LINK(
[
#ifdef HAVE_XFS_DMAPI_H
#include <xfs/dmapi.h>
#elif defined(HAVE_SYS_DMI_H)
#include <sys/dmi.h>
#elif defined(HAVE_SYS_JFSDMAPI_H)
#include <sys/jfsdmapi.h>
#elif defined(HAVE_SYS_DMAPI_H)
#include <sys/dmapi.h>
#endif
],
[
/* This link test is designed to fail on IRI 6.4, but should
* succeed on Linux, IRIX 6.5 and AIX.
*/
void main(void) {
char * version;
dm_eventset_t events;
/* This doesn't take an argument on IRIX 6.4. */
dm_init_service(&version);
/* IRIX 6.4 expects events to be a pointer. */
DMEV_ISSET(DM_EVENT_READ, events);
}
],
[
true # DMAPI link test succeeded
],
[
# DMAPI link failure
samba_dmapi_libs=
])
LIBS="$samba_dmapi_save_LIBS"
fi
if test x"$samba_dmapi_libs" = x"" ; then
# DMAPI detection failure actions begin
ifelse($2, [],
[
AC_ERROR(Failed to detect a supported DMAPI implementation)
],
[
$2
])
# DMAPI detection failure actions end
else
# DMAPI detection success actions start
ifelse($1, [],
[
AC_DEFINE(USE_DMAPI, 1,
[Whether we should build DMAPI integration components])
AC_MSG_NOTICE(Found DMAPI support in $samba_dmapi_libs)
],
[
$1
])
# DMAPI detection success actions end
fi
])

View File

@ -849,7 +849,6 @@ AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h s
AC_CHECK_HEADERS(sys/sysmacros.h security/_pam_macros.h dlfcn.h)
AC_CHECK_HEADERS(sys/syslog.h syslog.h)
AC_CHECK_HEADERS(langinfo.h locale.h)
AC_CHECK_HEADERS(sys/dmi.h xfs/dmapi.h sys/jfsdmapi.h sys/dmapi.h)
AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
#if HAVE_RPC_RPC_H
@ -2473,29 +2472,7 @@ fi
#################################################
# Check for DMAPI interfaces in libdm/libjfsdm/libxsdm
AC_CHECK_LIB(dm, dm_get_eventlist,
[samba_cv_HAVE_LIBDM=yes; samba_dmapi_libs="-ldm"],
[samba_cv_HAVE_LIBDM=no])
if test x"$samba_cv_HAVE_LIBDM" = x"yes" ; then
AC_DEFINE(HAVE_LIBDM, 1, [Whether dmapi libdm is available])
fi
AC_CHECK_LIB(jfsdm, dm_get_eventlist,
[samba_cv_HAVE_LIBJFSDM=yes; samba_dmapi_libs="-ljfsdm"],
[samba_cv_HAVE_LIBJFSDM=no])
if test x"$samba_cv_HAVE_LIBJFSDM" = x"yes" ; then
AC_DEFINE(HAVE_LIBJFSDM, 1, [Whether dmapi libjfsdm is available])
fi
AC_CHECK_LIB(xdsm, dm_get_eventlist,
[samba_cv_HAVE_LIBXDSM=yes; samba_dmapi_libs="-lxdsm"],
[samba_cv_HAVE_LIBXDSM=no])
if test x"$samba_cv_HAVE_LIBXDSM" = x"yes" ; then
AC_DEFINE(HAVE_LIBXDSM, 1, [Whether dmapi libxdsm is available])
fi
SMB_CHECK_DMAPI([], AC_MSG_NOTICE(DMAPI support not present) )
AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
AC_TRY_RUN([

View File

@ -24,12 +24,6 @@
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_DMAPI
#if defined(HAVE_LIBDM) || defined(HAVE_LIBJFSDM) || defined(HAVE_LIBXDSM)
#if defined(HAVE_XFS_DMAPI_H) || defined(HAVE_SYS_DMI_H) || defined(HAVE_SYS_JFSDMAPI_H) || defined(HAVE_SYS_DMAPI_H)
#define USE_DMAPI 1
#endif
#endif
#ifndef USE_DMAPI
int dmapi_init_session(void) { return -1; }