]> git.sur5r.net Git - openldap/blobdiff - build/openldap.m4
saslAuthzTo/From stuff
[openldap] / build / openldap.m4
index 9a565db8b335d0fc6fb209bd2dede00bdaa8e1aa..50a49e338934f51c68aadf982c7198b38d9d8f61 100644 (file)
@@ -1,15 +1,17 @@
+dnl OpenLDAP Autoconf Macros
 dnl $OpenLDAP$
 dnl $OpenLDAP$
+dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
 dnl
 dnl
-dnl Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA
+dnl Copyright 1998-2003 The OpenLDAP Foundation.
 dnl All rights reserved.
 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 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
-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
 dnl
 dnl --------------------------------------------------------------------
 dnl Restricted form of AC_ARG_ENABLE that limits user options
@@ -254,7 +256,7 @@ AC_DEFUN([OL_BERKELEY_DB_TRY],
 [
        ol_DB_LIB=ifelse($2,,,$2)
        ol_LIBS=$LIBS
 [
        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_TRY_LINK([
 #ifdef HAVE_DB_185_H
@@ -312,9 +314,17 @@ dnl Try to locate appropriate library
 AC_DEFUN([OL_BERKELEY_DB_LINK],
 [ol_cv_lib_db=no
 OL_BERKELEY_DB_TRY(ol_cv_db_none)
 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_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_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])
 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])
@@ -328,8 +338,9 @@ dnl Check if Berkeley DB supports DB_THREAD
 AC_DEFUN([OL_BERKELEY_DB_THREAD],
 [AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [
        ol_LIBS="$LIBS"
 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
        if test $ol_cv_lib_db != yes ; then
-               LIBS="$ol_cv_lib_db"
+               LIBS="$ol_cv_lib_db $LIBS"
        fi
 
        AC_TRY_RUN([
        fi
 
        AC_TRY_RUN([
@@ -401,12 +412,13 @@ main()
        [ol_cv_berkeley_db_thread=cross])
 
        LIBS="$ol_LIBS"
        [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
 
        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
 dnl
 dnl --------------------------------------------------------------------
 dnl Find any DB
@@ -432,12 +444,15 @@ AC_DEFUN([OL_BDB_COMPAT],
 #ifndef DB_VERSION_MAJOR
 #      define DB_VERSION_MAJOR 1
 #endif
 #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
        __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 --------------------------------------------------------------------
@@ -621,56 +636,48 @@ dnl
 dnl ====================================================================
 dnl Check POSIX Thread version 
 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    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
 dnl tests:
-dnl    pthread_yield() was renamed to sched_yield() in Draft 10, so
-dnl            only a Draft 10 library will define this
-dnl    PTHREAD_INTR_ENABLE was introduced in Draft 6, and renamed to
-dnl            PTHREAD_CANCEL_ENABLE in Draft 7. Draft 7-10 has _CANCEL_,
-dnl            only Draft 6 has _INTR_
+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_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
-dnl Besides the use of sched_yield vs pthread_yield, differences from
-dnl Draft 7 thru Draft 10 don't appear significant for our purposes.
+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],[
 dnl
 AC_DEFUN([OL_POSIX_THREAD_VERSION],
 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
-       AC_EGREP_HEADER(sched_yield,pthread.h,
-       ol_cv_pthread_version=10, [
-       
+       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>
        AC_EGREP_CPP(draft7,[
 #              include <pthread.h>
-#              ifdef PTHREAD_CANCEL_ENABLE
+#              ifdef PTHREAD_CREATE_UNDETACHED
                draft7
 #              endif
        ], ol_cv_pthread_version=7, [
                draft7
 #              endif
        ], ol_cv_pthread_version=7, [
-
-       AC_EGREP_CPP(draft6,[
-#              include <pthread.h>
-#ifdef         PTHREAD_INTR_ENABLE
-               draft6
-#endif
-       ], ol_cv_pthread_version=6, [
-
+       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
        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=5, ol_cv_pthread_version=4) ]) ]) ])
 ])
 ])dnl
 dnl
 ])
 ])dnl
 dnl
@@ -1205,13 +1212,24 @@ AC_DEFUN([OL_SASL_COMPAT],
 #endif
 
 /* require 2.1.3 or later */
 #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)";
+#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
 #elif SASL_VERSION_MAJOR == 2  && SASL_VERSION_MINOR == 1 \
        && SASL_VERSION_STEP >=3
-       __sasl_compat = "2.1.3+ or better okay";
+       char *__sasl_compat = "2.1.3+ or better okay";
 #endif
        ],      [ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])])
 ])
 #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