X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=build%2Fopenldap.m4;h=7de0ec9d34cfd8f2505bf45c5b0fcd995b326b45;hb=02d832ed8b1b9a1b3be3956059dc011437b7f076;hp=4ceadfe3e11165acdaf77673c8aaccd1fcbb4b8b;hpb=40fa9d36ce344cb67bb3e693eecc01f9d9832cf5;p=openldap diff --git a/build/openldap.m4 b/build/openldap.m4 index 4ceadfe3e1..7de0ec9d34 100644 --- a/build/openldap.m4 +++ b/build/openldap.m4 @@ -56,6 +56,33 @@ dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1) ])dnl dnl dnl ==================================================================== +dnl +AC_DEFUN(AC_COMPILE_CHECK_SIZEOF, +[changequote(<<, >>)dnl +dnl The name to #define. +define(<>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(size of $1) +AC_CACHE_VAL(AC_CV_NAME, +[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence. + AC_TRY_COMPILE([#include "confdefs.h" +#include +$2 +], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size) + if test x$AC_CV_NAME != x ; then break; fi +done +]) +if test x$AC_CV_NAME = x ; then + AC_MSG_ERROR([cannot determine a size for $1]) +fi +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1]) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +]) +dnl ==================================================================== dnl check if hard links are supported. dnl AC_DEFUN([OL_PROG_LN_H], [# test for ln hardlink support @@ -227,7 +254,7 @@ if test $ac_cv_header_db_h = yes ; then /* this check could be improved */ # ifdef DB_VERSION_MAJOR # if DB_VERSION_MAJOR == 2 - __db_version_2 + __db_version_2; # endif # endif ], ol_cv_header_db2=yes, ol_cv_header_db2=no)]) @@ -242,12 +269,12 @@ dnl dnl defines ol_cv_lib_db2 to '-ldb' or 'no' dnl dnl uses: -dnl AC_CHECK_LIB(db,db_open) +dnl AC_CHECK_LIB(db,db_appexit) dnl AC_DEFUN([OL_LIB_BERKELEY_DB2], [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2], [ ol_LIBS="$LIBS" - AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no]) + AC_CHECK_LIB(db,db_appexit,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no]) LIBS="$ol_LIBS" ]) ])dnl @@ -276,6 +303,48 @@ AC_DEFUN([OL_BERKELEY_DB2], fi ])dnl dnl +dnl +dnl -------------------------------------------------------------------- +dnl Check if Berkeley db2 supports DB_THREAD +AC_DEFUN([OL_BERKELEY_DB2_DB_THREAD], +[AC_CACHE_CHECK([for DB_THREAD support], [ol_cv_berkeley_db2_db_thread], [ + ol_LIBS="$LIBS" + if test $ol_cv_lib_db2 != yes ; then + LIBS="$ol_cv_lib_db2" + fi + + AC_TRY_RUN([ +#include +#ifndef NULL +#define NULL ((void *)0) +#endif +main() +{ + int rc; + DB_ENV env; + u_int32_t flags = DB_CREATE | DB_THREAD; + + memset( &env, '\0', sizeof(env) ); + + rc = db_appinit( NULL, NULL, &env, flags ); + + if( rc == 0 ) { + db_appexit( &env ); + } + + return rc; +}], + [ol_cv_berkeley_db2_db_thread=yes], + [ol_cv_berkeley_db2_db_thread=no], + [ol_cv_berkeley_db2_db_thread=cross]) + + LIBS="$ol_LIBS" + + if test $ol_cv_berkeley_db2_db_thread != no ; then + AC_DEFINE(HAVE_BERKELEY_DB2_DB_THREAD, 1, + [define if BerkeleyDB2 has DB_THREAD support]) + fi +])])dnl dnl ==================================================================== dnl Check for db.h/db_185.h is Berkeley DB dnl @@ -507,7 +576,7 @@ AC_DEFUN([OL_POSIX_THREAD_VERSION], # include /* this check could be improved */ # ifdef PTHREAD_ONCE_INIT - pthread_version_final + pthread_version_final; # endif ], ol_pthread_final=yes, ol_pthread_final=no) @@ -515,7 +584,7 @@ AC_DEFUN([OL_POSIX_THREAD_VERSION], # include /* this check could be improved */ # ifdef pthread_once_init - pthread_version_draft4 + pthread_version_draft4; # endif ], ol_pthread_draft4=yes, ol_pthread_draft4=no) @@ -620,7 +689,7 @@ AC_DEFUN([OL_HEADER_GNU_PTH_PTHREAD_H], [ [AC_EGREP_CPP(__gnu_pth__, [#include #ifdef _POSIX_THREAD_IS_GNU_PTH - __gnu_pth__ + __gnu_pth__; #endif ], [ol_cv_header_gnu_pth_pthread_h=yes], @@ -628,6 +697,19 @@ AC_DEFUN([OL_HEADER_GNU_PTH_PTHREAD_H], [ ]) ])dnl dnl ==================================================================== +dnl Check for NT Threads +AC_DEFUN([OL_NT_THREADS], [ + AC_CACHE_CHECK([for NT Threads], [ol_cv_nt_threads], [ + AC_CHECK_FUNC(_beginthread, + [ol_cv_nt_threads=yes], + [ol_cv_nt_threads=no]) + ]) + + if test $ol_cv_nt_threads = yes ; then + AC_DEFINE(HAVE_NT_THREADS,1,[if you have NT Threads]) + fi +]) +dnl ==================================================================== dnl Check LinuxThreads Header dnl dnl defines ol_cv_header linux_threads to 'yes' or 'no' @@ -740,7 +822,10 @@ AC_DEFUN([OL_SYS_ERRLIST], AC_TRY_COMPILE([ #include #include -#include ], +#include +#ifdef WINNT +#include +#endif ], [char *c = (char *) *sys_errlist], [ol_cv_dcl_sys_errlist=yes ol_cv_have_sys_errlist=yes], @@ -865,13 +950,31 @@ AC_DEFUN(OL_FUNC_CTIME_R_NARGS, [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs, [AC_TRY_COMPILE([#include ], [time_t ti; char *buffer; ctime_r(&ti,buffer,32);], - ol_cv_func_ctime_r_nargs=3, - [AC_TRY_COMPILE([#include ], - [time_t ti; char *buffer; ctime_r(&ti,buffer);], - ol_cv_func_ctime_r_nargs=2, - ol_cv_func_ctime_r_nargs=0)])]) + ol_cv_func_ctime_r_nargs3=yes, + ol_cv_func_ctime_r_nargs3=no) + + AC_TRY_COMPILE([#include ], + [time_t ti; char *buffer; ctime_r(&ti,buffer);], + ol_cv_func_ctime_r_nargs2=yes, + ol_cv_func_ctime_r_nargs2=no) + + if test $ol_cv_func_ctime_r_nargs3 = yes -a \ + $ol_cv_func_ctime_r_nargs2 = no ; then + + ol_cv_func_ctime_r_nargs=3 + + elif test $ol_cv_func_ctime_r_nargs3 = no -a \ + $ol_cv_func_ctime_r_nargs2 = yes ; then + + ol_cv_func_ctime_r_nargs=2 + + else + ol_cv_func_ctime_r_nargs=0 + fi + ]) + if test $ol_cv_func_ctime_r_nargs -gt 1 ; then - AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs, + AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs, [set to the number of arguments ctime_r() expects]) fi ])dnl @@ -902,19 +1005,36 @@ AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS, int bufsize=BUFSIZE;int h_errno; (void)gethostbyname_r("segovia.cs.purdue.edu", &hent, buffer, bufsize, &h_errno);], - ol_cv_func_gethostbyname_r_nargs=5, - [AC_TRY_COMPILE([#include + ol_cv_func_gethostbyname_r_nargs5=yes, + ol_cv_func_gethostbyname_r_nargs5=no) + + AC_TRY_COMPILE([#include #include #include #include #define BUFSIZE (sizeof(struct hostent)+10)], - [struct hostent hent;struct hostent *rhent; - char buffer[BUFSIZE]; - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyname_r("localhost", &hent, buffer, bufsize, - &rhent, &h_errno);], - ol_cv_func_gethostbyname_r_nargs=6, - ol_cv_func_gethostbyname_r_nargs=0)])]) + [struct hostent hent;struct hostent *rhent; + char buffer[BUFSIZE]; + int bufsize=BUFSIZE;int h_errno; + (void)gethostbyname_r("localhost", &hent, buffer, bufsize, + &rhent, &h_errno);], + ol_cv_func_gethostbyname_r_nargs6=yes, + ol_cv_func_gethostbyname_r_nargs6=no) + + if test $ol_cv_func_gethostbyname_r_nargs5 = yes -a \ + $ol_cv_func_gethostbyname_r_nargs6 = no ; then + + ol_cv_func_gethostbyname_r_nargs=5 + + elif test $ol_cv_func_gethostbyname_r_nargs5 = no -a \ + $ol_cv_func_gethostbyname_r_nargs6 = yes ; then + + ol_cv_func_gethostbyname_r_nargs=6 + + else + ol_cv_func_gethostbyname_r_nargs=0 + fi + ]) if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS, $ol_cv_func_gethostbyname_r_nargs, @@ -937,22 +1057,39 @@ AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS, int bufsize=BUFSIZE;int h_errno; (void)gethostbyaddr_r( (void *)&(add.s_addr), alen, AF_INET, &hent, buffer, bufsize, &h_errno);], - ol_cv_func_gethostbyaddr_r_nargs=7, - [AC_TRY_COMPILE([#include + ol_cv_func_gethostbyaddr_r_nargs7=yes, + ol_cv_func_gethostbyaddr_r_nargs7=no) + + AC_TRY_COMPILE([#include #include #include #include #define BUFSIZE (sizeof(struct hostent)+10)], - [struct hostent hent; - struct hostent *rhent; char buffer[BUFSIZE]; - struct in_addr add; - size_t alen=sizeof(struct in_addr); - int bufsize=BUFSIZE;int h_errno; - (void)gethostbyaddr_r( (void *)&(add.s_addr), - alen, AF_INET, &hent, buffer, bufsize, - &rhent, &h_errno);], - ol_cv_func_gethostbyaddr_r_nargs=8, - ol_cv_func_gethostbyaddr_r_nargs=0)])]) + [struct hostent hent; + struct hostent *rhent; char buffer[BUFSIZE]; + struct in_addr add; + size_t alen=sizeof(struct in_addr); + int bufsize=BUFSIZE;int h_errno; + (void)gethostbyaddr_r( (void *)&(add.s_addr), + alen, AF_INET, &hent, buffer, bufsize, + &rhent, &h_errno);], + ol_cv_func_gethostbyaddr_r_nargs8=yes, + ol_cv_func_gethostbyaddr_r_nargs8=no) + + if test $ol_cv_func_gethostbyaddr_r_nargs7 = yes -a \ + $ol_cv_func_gethostbyaddr_r_nargs8 = no ; then + + ol_cv_func_gethostbyaddr_r_nargs=7 + + elif test $ol_cv_func_gethostbyaddr_r_nargs7 = no -a \ + $ol_cv_func_gethostbyaddr_r_nargs8 = yes ; then + + ol_cv_func_gethostbyaddr_r_nargs=8 + + else + ol_cv_func_gethostbyaddr_r_nargs=0 + fi + ]) if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS, $ol_cv_func_gethostbyaddr_r_nargs,