+dnl OpenLDAP Autoconf Macros
dnl $OpenLDAP$
+dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
dnl
-dnl Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA
+dnl Copyright 1998-2004 The OpenLDAP Foundation.
dnl All rights reserved.
-dnl
+dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted only as authorized by the OpenLDAP
-dnl Public License. A copy of this license is available at
-dnl http://www.OpenLDAP.org/license.html or in file LICENSE in the
-dnl top-level directory of the distribution.
+dnl Public License.
dnl
-dnl OpenLDAP Autoconf Macros
+dnl A copy of this license is available in the file LICENSE in the
+dnl top-level directory of the distribution or, alternatively, at
+dnl <http://www.OpenLDAP.org/license.html>.
dnl
dnl --------------------------------------------------------------------
dnl Restricted form of AC_ARG_ENABLE that limits user options
[
ol_DB_LIB=ifelse($2,,,$2)
ol_LIBS=$LIBS
- LIBS="$ol_DB_LIB $LIBS"
+ LIBS="$ol_DB_LIB $LTHREAD_LIBS $LIBS"
AC_TRY_LINK([
#ifdef HAVE_DB_185_H
AC_DEFUN([OL_BERKELEY_DB_LINK],
[ol_cv_lib_db=no
OL_BERKELEY_DB_TRY(ol_cv_db_none)
-OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
+OL_BERKELEY_DB_TRY(ol_cv_db_db42,[-ldb42])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_42,[-ldb-42])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_2,[-ldb-4.2])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_2,[-ldb-4-2])
OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4])
+OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
+OL_BERKELEY_DB_TRY(ol_cv_db_db41,[-ldb41])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_41,[-ldb-41])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_1,[-ldb-4.1])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_1,[-ldb-4-1])
OL_BERKELEY_DB_TRY(ol_cv_db_db3,[-ldb3])
OL_BERKELEY_DB_TRY(ol_cv_db_db_3,[-ldb-3])
OL_BERKELEY_DB_TRY(ol_cv_db_db2,[-ldb2])
AC_DEFUN([OL_BERKELEY_DB_THREAD],
[AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [
ol_LIBS="$LIBS"
+ LIBS="$LTHREAD_LIBS $LIBS"
if test $ol_cv_lib_db != yes ; then
- LIBS="$ol_cv_lib_db"
+ LIBS="$ol_cv_lib_db $LIBS"
fi
AC_TRY_RUN([
[ol_cv_berkeley_db_thread=cross])
LIBS="$ol_LIBS"
+])
if test $ol_cv_berkeley_db_thread != no ; then
AC_DEFINE(HAVE_BERKELEY_DB_THREAD, 1,
[define if Berkeley DB has DB_THREAD support])
fi
-])])dnl
+])dnl
dnl
dnl --------------------------------------------------------------------
dnl Find any DB
#ifndef DB_VERSION_MAJOR
# define DB_VERSION_MAJOR 1
#endif
+#ifndef DB_VERSION_MINOR
+# define DB_VERSION_MINOR 0
+#endif
-/* require 4.0 or later */
-#if DB_VERSION_MAJOR >= 4
+/* require 4.2 or later */
+#if (DB_VERSION_MAJOR >= 4) && (DB_VERSION_MINOR >= 2)
__db_version_compat
#endif
- ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
+ ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
])
dnl --------------------------------------------------------------------
dnl ====================================================================
dnl Check POSIX Thread version
dnl
-dnl defines ol_cv_pthread_version to 0, 4, 5, 6, 7, 10, depending on the
+dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 8, 10, depending on the
dnl version of the POSIX.4a Draft that is implemented.
dnl 10 == POSIX.4a Final == POSIX.1c-1996 for our purposes.
-dnl 0 implies that the version could not be detected
-dnl or that pthreads.h does exist. Existence of pthreads.h
-dnl should be tested separately.
+dnl Existence of pthread.h should be tested separately.
dnl
dnl tests:
-dnl pthread_yield() was dropped in Draft 9, so
-dnl only a Draft <= 8 library will define this
dnl pthread_detach() was dropped in Draft 8, it is present
dnl in every other version
dnl PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called
dnl PTHREAD_CREATE_JOINABLE after that
+dnl pthread_attr_create was renamed to pthread_attr_init in Draft 6.
+dnl Draft 6-10 has _init, Draft 4-5 has _create.
dnl pthread_attr_default was dropped in Draft 6, only 4 and 5 have it
dnl PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not
dnl interesting to us because we don't try to statically
dnl initialize mutexes. 5-10 has it.
-dnl pthread_attr_create was renamed to pthread_attr_init after Draft 4.
-dnl Draft 6-10 has _init, Draft 4 has _create. (dunno about 5)
dnl
dnl Draft 9 and 10 are equivalent for our purposes.
dnl
AC_DEFUN([OL_POSIX_THREAD_VERSION],
[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
- AC_EGREP_HEADER(pthread_yield,pthread.h,[
- AC_EGREP_HEADER(pthread_detach,pthread.h,[
+ AC_TRY_COMPILE([
+# include <pthread.h>
+ ],[
+ int i = PTHREAD_CREATE_JOINABLE;
+ ],[
+ AC_EGREP_HEADER(pthread_detach,pthread.h,
+ ol_cv_pthread_version=10, ol_cv_pthread_version=8)],[
AC_EGREP_CPP(draft7,[
# include <pthread.h>
-# ifdef PTHREAD_CREATE_JOINABLE
+# ifdef PTHREAD_CREATE_UNDETACHED
draft7
# endif
], ol_cv_pthread_version=7, [
- AC_EGREP_HEADER(pthread_attr_default,pthread.h,[
+ AC_EGREP_HEADER(pthread_attr_init,pthread.h,
+ ol_cv_pthread_version=6, [
AC_EGREP_CPP(draft5,[
# include <pthread.h>
#ifdef PTHREAD_MUTEX_INITIALIZER
draft5
#endif
- ], ol_cv_pthread_version=5, [
- AC_EGREP_HEADER(pthread_attr_create,pthread.h,
- ol_cv_pthread_version=4, ol_cv_pthread_version=0) ]) ],
- ol_cv_pthread_version=6) ]) ],
- ol_cv_pthread_version=8) ],
- ol_cv_pthread_version=10)
+ ], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ]) ]) ])
])
])dnl
dnl
])dnl
dnl
dnl --------------------------------------------------------------------
-dnl Check for Cyrus SASL version compatility, need 2.1.3 or newer
+dnl Check for Cyrus SASL version compatility
AC_DEFUN([OL_SASL_COMPAT],
[AC_CACHE_CHECK([Cyrus SASL library version], [ol_cv_sasl_compat],[
AC_EGREP_CPP(__sasl_compat,[
#include <sasl.h>
#endif
-/* require 2.1.3 or later */
-#if SASL_VERSION_MAJOR == 1 && SASL_VERSION_MINOR >= 5
- char *__sasl_compat = "1.5.x okay";
-#elif SASL_VERSION_MAJOR == 2 && SASL_VERSION_MINOR > 1
- __sasl_compat "2.2+ or better okay (we guess)";
+/* Require 2.1.15+ */
+#if SASL_VERSION_MAJOR == 2 && SASL_VERSION_MINOR > 1
+ char *__sasl_compat = "2.2+ or better okay (we guess)";
#elif SASL_VERSION_MAJOR == 2 && SASL_VERSION_MINOR == 1 \
- && SASL_VERSION_STEP >=3
- __sasl_compat = "2.1.3+ or better okay";
+ && SASL_VERSION_STEP >=15
+ char *__sasl_compat = "2.1.15+ or better okay";
#endif
], [ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])])
])
+dnl ====================================================================
+dnl check for msg_accrights in msghdr
+AC_DEFUN(OL_MSGHDR_MSG_ACCRIGHTS,
+ [AC_CACHE_CHECK(for msg_accrights in msghdr, ol_cv_msghdr_msg_accrights,
+ [AC_TRY_COMPILE([#include <sys/socket.h>],
+ [struct msghdr m; m.msg_accrightslen=0],
+ ol_cv_msghdr_msg_accrights=yes, ol_cv_msghdr_msg_accrights=no)
+ ])
+ if test $ol_cv_msghdr_msg_accrights = "yes" ; then
+ AC_DEFINE(HAVE_MSGHDR_MSG_ACCRIGHTS,1,
+ [define if struct msghdr has msg_accrights])
+ fi
+])dnl