]> git.sur5r.net Git - openldap/blobdiff - build/openldap.m4
saslAuthzTo/From stuff
[openldap] / build / openldap.m4
index 846fe85eb24f50614503f8ad5445f598a6ef82b3..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,51 +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 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_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_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],[
 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_UNDETACHED
                draft7
 #              endif
        ], ol_cv_pthread_version=7, [
        AC_EGREP_CPP(draft7,[
 #              include <pthread.h>
 #              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
        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
@@ -1200,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