X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=112bb76dceb50ec497e2438e58805964d26a1697;hb=845bf15d8996995dc77ef4c10f3ca1116650b657;hp=95f79d2982ce6f1a9bda0b3a43e2e98aca7092b8;hpb=2889c67adf7e0f88d6b8c704bea3c4a9e46ba61c;p=openldap diff --git a/configure.in b/configure.in index 95f79d2982..112bb76dce 100644 --- a/configure.in +++ b/configure.in @@ -49,7 +49,6 @@ OL_ARG_ENABLE(cldap,[ --enable-cldap enable connectionless ldap], no)dnl OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling], no, [yes no])dnl - dnl General "with" options OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl @@ -59,6 +58,8 @@ OL_ARG_WITH(threads,[ --with-threads use threads], auto, [auto posix mach lwp yes no manual] ) OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select], auto, [auto yes no manual] ) +OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support], + auto, [auto ssleay openssl yes no] ) dnl Server options @@ -261,11 +262,18 @@ SLAPD_PERL_CPPFLAGS= KRB_LIBS= TERMCAP_LIBS= +TLS_LIBS= dnl ---------------------------------------------------------------- dnl Checks for programs AC_PROG_INSTALL + +dnl The default compiler is cc (NOT gcc) +CC=${CC-"cc"} +dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets. +CFLAGS=${CFLAGS-""} + AM_PROG_LIBTOOL dnl AC_PROG_MAKE_SET @@ -452,6 +460,88 @@ if test $ol_link_kerberos = yes ; then AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos]) fi +dnl +dnl Check for SSL/TLS +dnl +ol_link_tls=no +if test $ol_with_tls != no ; then + + AC_CHECK_HEADERS(ssl.h) + + if test $ac_cv_header_ssl_h = yes ; then + AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms, + [have_ssleay=yes + need_rsaref=no], + [have_ssleay=no], + [-lcrypto]) + + if test $have_ssleay = no ; then + AC_CHECK_LIB(ssl, ssl3_accept, + [have_ssleay=yes + need_rsaref=yes], [have_ssleay=no], + [-lcrypto -lRSAglue -lrsaref]) + fi + + if test $have_ssleay = yes ; then + ol_with_tls=found + ol_link_tls=yes + + AC_DEFINE(HAVE_SSLEAY, 1, + [define if you have SSLeay or OpenSSL]) + + if test $need_rsaref = yes; then + TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref" + else + TLS_LIBS="-lssl -lcrypto" + fi + fi + fi +fi + +if test $ol_link_tls = yes ; then + AC_DEFINE(HAVE_TLS, 1, [define if you have TLS]) +fi + +dnl Tests for reentrant functions necessary to build a +dnl thread_safe -lldap. +AC_CHECK_FUNCS( \ + ctime_r \ + gethostbyname_r gethostbyaddr_r \ +) + +if test "$ac_cv_func_ctime_r" = no ; then + ol_cv_func_ctime_r_nargs=0 +else + OL_FUNC_CTIME_R_NARGS +dnl OL_FUNC_CTIME_R_TYPE +fi + +if test "$ac_cv_func_gethostbyname_r" = yes ; then + OL_FUNC_GETHOSTBYNAME_R_NARGS +else + ol_cv_func_gethostbyname_r_nargs=0 +fi + +if test "$ac_cv_func_gethostbyaddr_r" = yes ; then + OL_FUNC_GETHOSTBYADDR_R_NARGS +else + ol_cv_func_gethostbyaddr_r_nargs=0 +fi + +if test "$ac_cv_func_ctime_r" = yes \ + -a "$ol_cv_func_ctime_r_nargs" -ge 2 \ + -a "$ol_cv_func_ctime_r_nargs" -le 3 \ + -a "$ac_cv_func_gethostbyname_r" = yes \ + -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \ + -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \ + -a "$ac_cv_func_gethostbyaddr_r" = yes \ + -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \ + -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \ + ; then + + AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1) +fi + ol_link_threads=no if test $ol_with_threads = auto -o $ol_with_threads = yes \ -o $ol_with_threads = posix ; then @@ -523,8 +613,13 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ dnl save the flags save_LIBS="$LIBS" LIBS="-kthread $LIBS" - AC_TRY_LINK([#include ], - [pthread_create(NULL,NULL,NULL,NULL);], + AC_TRY_LINK([#include ],[ +#if HAVE_PTHREADS_D4 + pthread_create(NULL,pthread_attr_default,NULL,NULL); +#else + pthread_create(NULL,NULL,NULL,NULL); +#endif +], [ol_cv_kthread_flag=yes], [ol_cv_kthread_flag=no]) dnl restore the LIBS LIBS="$save_LIBS" @@ -543,8 +638,13 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ dnl save the flags save_LIBS="$LIBS" LIBS="-pthread $LIBS" - AC_TRY_LINK([#include ], - [pthread_create(NULL,NULL,NULL,NULL);], + AC_TRY_LINK([#include ],[ +#if HAVE_PTHREADS_D4 + pthread_create(NULL,pthread_attr_default,NULL,NULL); +#else + pthread_create(NULL,NULL,NULL,NULL); +#endif +], [ol_cv_pthread_flag=yes], [ol_cv_pthread_flag=no]) dnl restore the LIBS LIBS="$save_LIBS" @@ -563,8 +663,13 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ dnl save the flags save_LIBS="$LIBS" LIBS="-pthreads $LIBS" - AC_TRY_LINK([#include ], - [pthread_create(NULL,NULL,NULL,NULL);], + AC_TRY_LINK([#include ],[ +#if HAVE_PTHREADS_D4 + pthread_create(NULL,pthread_attr_default,NULL,NULL); +#else + pthread_create(NULL,NULL,NULL,NULL); +#endif +], [ol_cv_pthreads_flag=yes], [ol_cv_pthreads_flag=no]) dnl restore the LIBS LIBS="$save_LIBS" @@ -835,7 +940,11 @@ int main(argc, argv) char **argv; { pthread_t t; +#if HAVE_PTHREADS_D4 + exit(pthread_create(&t, pthread_attr_default, task, NULL)); +#else exit(pthread_create(&t, NULL, task, NULL)); +#endif } ], [ol_cv_pthread_create_works=yes], @@ -845,7 +954,7 @@ int main(argc, argv) AC_MSG_RESULT($ol_cv_pthread_create_works) if test $ol_cv_pthread_create_works = no ; then - AC_MSG_ERROR([pthread.h and pthread_create are not compatible]) + AC_MSG_ERROR([pthread_create is not usable, check environment settings]) fi dnl Check if select causes an yield @@ -909,7 +1018,11 @@ int main(argc, argv) #endif #endif +#if HAVE_PTHREADS_D4 + pthread_create(&t, pthread_attr_default, task, NULL); +#else pthread_create(&t, NULL, task, NULL); +#endif #if HAVE_SCHED_YIELD sched_yield(); /* make sure task runs first */ @@ -1132,8 +1245,6 @@ dnl CPPFLAGS="$save_CPPFLAGS" dnl LIBS="$save_LIBS" fi -dnl ---------------------------------------------------------------- - if test $ol_link_threads = no ; then if test $ol_with_threads = yes ; then AC_MSG_ERROR([no suitable thread support]) @@ -1149,6 +1260,12 @@ if test $ol_link_threads = no ; then LTHREAD_LIBS="" fi +if test $ol_link_threads != no ; then + AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1) +fi + +dnl ---------------------------------------------------------------- + ol_link_ldbm=no if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then OL_BERKELEY_DB2 @@ -1404,6 +1521,7 @@ AC_CHECK_HEADERS( \ getopt.h \ libutil.h \ limits.h \ + locale.h \ malloc.h \ memory.h \ regex.h \ @@ -1502,32 +1620,6 @@ AC_CHECK_FUNCS( \ waitpid \ ) -# these functions are required to build a thread_safe -lldap -AC_CHECK_FUNCS( \ - ctime_r \ - gethostbyaddr_r \ - gethostbyname_r \ -) - -if test "$ac_cv_func_ctime_r" = yes ; then - OL_FUNC_CTIME_R_NARGS -else - ol_cv_func_ctime_r=0 -fi - -if test "$ac_cv_func_ctime_r" = yes \ - -a "$ol_cv_func_ctime_r_nargs" -ge 2 -a "$ol_cv_func_ctime_r_nargs" -le 3 \ - -a "$ac_cv_func_gethostbyaddr_r" = yes \ - -a "$ac_cv_func_gethostbyname_r" = yes \ - ; then - - AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT, 1) -fi - -if test $ol_link_threads != no ; then - AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE, 1) -fi - dnl We actually may need to replace more than this. AC_REPLACE_FUNCS(getopt tempnam) @@ -1649,6 +1741,7 @@ AC_SUBST(SLAPD_PERL_LDFLAGS) AC_SUBST(KRB_LIBS) AC_SUBST(TERMCAP_LIBS) +AC_SUBST(TLS_LIBS) dnl ---------------------------------------------------------------- dnl final output