]> git.sur5r.net Git - openldap/blobdiff - configure.in
Add special check for pthreads under HP-UX (as last resort).
[openldap] / configure.in
index 4eebd5af5c40fc94a00c37a26f715028ab223b20..349b82b08a08d322ef2ace2fab9292f8d9d5d675 100644 (file)
@@ -1,10 +1,11 @@
-dnl Copyright 1998 The OpenLDAP Foundation.  All Rights Reserved.
+dnl
+dnl Copyright 1998,1999 The OpenLDAP Foundation.  All Rights Reserved.
 dnl 
 dnl Redistribution and use in source and binary forms are permitted only
 dnl as authorized by the OpenLDAP Public License.  A copy of this
 dnl license is available at http://www.OpenLDAP.org/license.html or
 dnl in file LICENSE in the top-level directory of the distribution.
-dnl ----
+dnl
 
 dnl Configure.in for OpenLDAP
 AC_INIT(include/ldap.h)dnl
@@ -39,9 +40,9 @@ AC_ARG_WITH(subdir, [  --with-subdir=DIR change default subdirectory used for in
 AC_SUBST(ldap_subdir)dnl
 
 OL_ARG_ENABLE(debug,[  --enable-debug  enable debugging], yes)dnl
+ol_enable_syslog=no
 dnl OL_ARG_ENABLE(syslog,[  --enable-syslog    enable syslog support], auto)dnl
 OL_ARG_ENABLE(proctitle,[  --enable-proctitle  enable proctitle support], yes)dnl
-OL_ARG_ENABLE(libui,[  --enable-libui  enable library user interface], yes)dnl
 OL_ARG_ENABLE(cache,[  --enable-cache  enable caching], yes)dnl
 OL_ARG_ENABLE(dns,[  --enable-dns              enable V2 DNS  extension], no)dnl
 OL_ARG_ENABLE(referrals,[  --enable-referrals  enable V2 Referrals extension], yes)dnl
@@ -49,7 +50,10 @@ 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
+
 OL_ARG_WITH(kerberos,[  --with-kerberos        use Kerberos],
        auto, [auto k5 k4 afs yes no])
 OL_ARG_WITH(threads,[  --with-threads  use threads],
@@ -67,9 +71,8 @@ dnl SLAPD OPTIONS
 AC_ARG_WITH(xxslapdoptions,[SLAPD Options:])
 OL_ARG_ENABLE(slapd,[  --enable-slapd  enable building slapd], yes)dnl
 OL_ARG_ENABLE(aclgroups,[    --enable-aclgroups        enable ACL group support], auto)dnl
+OL_ARG_ENABLE(cleartext,[    --enable-cleartext        enable cleartext passwords], yes)dnl
 OL_ARG_ENABLE(crypt,[    --enable-crypt        enable crypt(3) passwords], auto)dnl
-OL_ARG_ENABLE(md5,[    --enable-md5    enable MD5 passwords], auto)dnl
-OL_ARG_ENABLE(sha1,[    --enable-sha1  enable SHA1 passwords], auto)dnl
 OL_ARG_ENABLE(wrappers,[    --enable-wrappers  enable tcp wrapper support], no)dnl
 OL_ARG_ENABLE(phonetic,[    --enable-phonetic  enable phonetic/soundex], no)dnl
 OL_ARG_ENABLE(rlookups,[    --enable-rlookups  enable reverse lookups], auto)dnl
@@ -116,15 +119,6 @@ if test $ol_enable_slapd = no ; then
        if test $ol_enable_aclgroups = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroups argument])
        fi
-       if test $ol_enable_crypt = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable_crypt argument])
-       fi
-       if test $ol_enable_md5 = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable_md5 argument])
-       fi
-       if test $ol_enable_sha1 = yes ; then
-               AC_MSG_WARN([slapd disabled, ignoring --enable_sha1 argument])
-       fi
        if test $ol_enable_wrappers = yes ; then
                AC_MSG_WARN([slapd disabled, ignoring --enable_wrappers argument])
        fi
@@ -149,9 +143,6 @@ if test $ol_enable_slapd = no ; then
        ol_enable_shell=no
        ol_enable_passwd=no
        ol_enable_aclgroups=no
-       ol_enable_crypt=no
-       ol_enable_md5=no
-       ol_enable_sha1=no
        ol_enable_wrappers=no
        ol_enable_phonetic=no
        ol_enable_rlookups=no
@@ -318,6 +309,11 @@ if test $ol_link_isode != no; then
        AC_PATH_PROG(PEPSY, pepsy)
 fi
 
+dnl
+dnl check for kerberos
+dnl
+ol_link_kerberos=no
+
 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
        AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
 
@@ -330,11 +326,11 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
                        ol_link_kerberos=yes
 
                        AC_DEFINE(HAVE_KERBEROS)
-
                        KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
                fi
        fi
 fi
+
 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
        AC_CHECK_HEADERS(krb.h des.h)
 
@@ -347,14 +343,21 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
 
                        AC_DEFINE(HAVE_KERBEROS)
                        KRB_LIBS="-lkrb -ldes"
-
-                       AC_CHECK_FUNCS(des_string_to_key)
                fi
        fi
 fi
 
+dnl    if test $ol_link_kerberos = yes ; then
+dnl            save_LIBS=$LIBS
+dnl            LIBS="$KRB_LIBS $LIBS"
+dnl            AC_CHECK_FUNCS(des_string_to_key)
+dnl            LIBS=$save_LIBS
+dnl fi
+
 ol_link_threads=no
-if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
+if test $ol_with_threads = auto -o $ol_with_threads = yes \
+       -o $ol_with_threads = posix ; then
+
        AC_CHECK_HEADERS(pthread.h sched.h)
 
        if test $ac_cv_header_pthread_h = yes ; then
@@ -402,6 +405,26 @@ if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
                        fi
                fi
 
+               if test $ol_link_threads = no ; then
+                       dnl try -pthreads
+                       AC_CACHE_CHECK([for pthread_create with -pthreads],
+                               [ol_cv_pthreads_flag], [
+                               dnl save the flags
+                               save_LIBS="$LIBS"
+                               LIBS="-pthreads $LIBS"
+                               AC_TRY_LINK([char pthread();],[
+                                       pthread_create();
+                                       ], ol_cv_pthreads_flag=yes, ol_cv_pthreads_flag=no)
+                               dnl restore the LIBS
+                               LIBS="$save_LIBS"
+                       ])
+
+                       if test $ol_cv_pthreads_flag = yes ; then
+                               LTHREAD_LIBS="$LTHREAD_LIBS -pthreads"
+                               ol_link_threads=posix
+                       fi
+               fi
+
                if test $ol_link_threads = no ; then
                        dnl try -thread
                        AC_CACHE_CHECK([for pthread_create with -thread],
@@ -466,6 +489,46 @@ if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
                        LIBS="$save_LIBS"
                fi
 
+               if test $ol_link_threads = no ; then
+                       dnl try -lpthreads
+                       save_LIBS="$LIBS"
+                       AC_CHECK_LIB(pthreads, pthread_create, [
+                               ol_link_threads=posix
+                               LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"])
+                       LIBS="$save_LIBS"
+               fi
+
+               dnl HP-UX 11 check
+               if test $ol_link_threads = no; then
+                       save_LIBS="$LIBS"
+                       LIBS="$LIBS -lpthread"
+                       AC_MSG_CHECKING([for pthread_create() in HP-UX -lpthread])
+                       ol_try_pthread_hpux_11=no
+                       AC_CACHE_VAL(ol_cv_pthread_hpux_11,[
+                               AC_TRY_LINK([
+#include <pthread.h>
+#include <elf.h>
+#ifndef ELFABI_HPUX_REL11
+       die horribly
+#endif
+                               ], [pthread_create(NULL, NULL, NULL, NULL);],
+                                       ol_try_pthread_hpux_11=yes
+                                       ol_cv_pthread_hpux_11=yes,
+                                       ol_cv_pthread_hpux_11=no)])
+                       AC_MSG_RESULT(yes)
+                       LIBS="$save_LIBS"
+
+                       if test $ol_cv_pthread_hpux_11=yes ; then
+                               ol_link_threads=posix
+                               LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"
+                               if test $ol_try_pthread_hpux_11=yes ; then
+                                       dnl Some tests below may fail, cause we aint including
+                                       dnl pthread.h. Force appropriate ones to yes
+                                       ac_cv_func_pthread_attr_init=yes
+                               fi
+                       fi
+               fi
+
                if test $ol_link_threads != no ; then
                        AC_DEFINE(HAVE_PTHREADS)
 
@@ -520,12 +583,15 @@ if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
                        AC_MSG_CHECKING([if pthread_create() works])
                        AC_CACHE_VAL(ol_cv_pthread_create_works,[
                        AC_TRY_RUN([
-#include <stdlib.h>
 #include <pthread.h>
-static int g = 0;
+#ifndef NULL
+#define NULL (void*)0
+#endif
 
-static void task(void *p) {
-       return g++;
+static void *task(p)
+       void *p;
+{
+       return (void *) (p == NULL);
 }
 
 int main(argc, argv)
@@ -533,8 +599,9 @@ int main(argc, argv)
        char **argv;
 {
        pthread_t t;
-       exit(pthread_create(&t, NULL, (void *) task, NULL));
-}],
+       exit(pthread_create(&t, NULL, task, NULL));
+}
+],
                                [ol_cv_pthread_create_works=yes],
                                [ol_cv_pthread_create_works=no],
                                [dnl assume yes
@@ -555,13 +622,13 @@ int main(argc, argv)
 #include <unistd.h>
 #include <pthread.h>
 #ifndef NULL
-#define NULL 0
+#define NULL (void*) 0
 #endif
 
-int fildes[2];
+static int fildes[2];
 
-int task(arg)
-       int *arg;
+static void *task(p)
+       void *p;
 {
        int i;
        struct timeval tv;
@@ -579,10 +646,10 @@ int task(arg)
 
        if(i < 0) {
                perror("select");
-               exit(0);
+               exit(10);
        }
 
-       exit(1); /* if we exit here, the select blocked the whole process */
+       exit(0); /* if we exit here, the select blocked the whole process */
 }
 
 int main(argc, argv)
@@ -594,7 +661,7 @@ int main(argc, argv)
        /* create a pipe to select */
        if(pipe(&fildes[0])) {
                perror("select");
-               exit(0);
+               exit(1);
        }
 
 #ifdef HAVE_PTHREAD_SETCONCURRENCY
@@ -606,7 +673,7 @@ int main(argc, argv)
 #endif
 #endif
 
-       pthread_create(&t, NULL, (void *) task, NULL);
+       pthread_create(&t, NULL, task, NULL);
 
 #if HAVE_SCHED_YIELD
        sched_yield();  /* make sure task runs first */
@@ -615,10 +682,11 @@ int main(argc, argv)
        pthread_yield();        /* make sure task runs first */
 #endif
 #endif
-       exit(0);
+
+       exit(2);
 }],
-                               [ol_cv_pthread_select_yields=yes],
-                               [ol_cv_pthread_select_yields=no], [
+                               [ol_cv_pthread_select_yields=no],
+                               [ol_cv_pthread_select_yields=yes], [
                                AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])])])
                                AC_MSG_RESULT($ol_cv_pthread_select_yields)
 
@@ -627,17 +695,6 @@ int main(argc, argv)
                                fi
                        fi
 
-dnl                    dnl check for reentrant/threadsafe functions
-dnl                    AC_CHECK_FUNCS( \
-dnl                            feof_unlocked \
-dnl                            unlocked_feof \
-dnl                            ftrylockfile \
-dnl                            flockfile \
-dnl                            putc_unlocked \
-dnl                            gmtime_r \
-dnl                            strtok_r \
-dnl                    )
-
                        dnl restore flags
                        CPPFLAGS="$save_CPPFLAGS"
                        LIBS="$save_LIBS"
@@ -651,7 +708,9 @@ dnl                 )
        fi
 fi
 
-if test $ol_with_threads = auto -o $ol_with_threads = mach ; then
+if test $ol_with_threads = auto -o $ol_with_threads = yes \
+       -o $ol_with_threads = mach ; then
+
        dnl check for Mach CThreads
        AC_CHECK_HEADERS(mach/cthreads.h)
        if test $ac_cv_header_mach_cthreads_h = yes ; then
@@ -694,7 +753,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = mach ; then
        fi
 fi
 
-if test $ol_with_threads = auto -o $ol_with_threads = lwp ; then
+if test $ol_with_threads = auto -o $ol_with_threads = yes \
+       -o $ol_with_threads = lwp ; then
+
        dnl check for SunOS5 LWP
        AC_CHECK_HEADERS(thread.h synch.h)
        if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
@@ -747,7 +808,7 @@ if test $ol_with_threads = manual ; then
        AC_CHECK_HEADERS(thread.h synch.h)
 fi
 
-if test $ol_with_threads != no ; then  
+if test $ol_link_threads != no ; then  
        dnl needed to get reentrant/threadsafe versions
        dnl
        AC_DEFINE(REENTRANT,1)
@@ -776,6 +837,58 @@ int x = errno;
                LIBS="$LTHREAD_LIBS $LIBS"
                LTHREAD_LIBS=""
        fi
+
+dnl When in thread environment, use 
+dnl            #if defined( HAVE_REENTRANT_FUNCTIONS ) \ 
+dnl                    || defined( HAVE_FUNC_R )
+dnl                    func_r(...);
+dnl            #else
+dnl            #       if defined( HAVE_THREADS ) 
+dnl                            /* lock */
+dnl            #       endif
+dnl                            func(...);
+dnl            #       if defined( HAVE_THREADS ) 
+dnl                            /* unlock */
+dnl            #       endif
+dnl            #endif
+dnl
+dnl HAVE_REENTRANT_FUNCTIONS is derived from:
+dnl            _POSIX_REENTRANT_FUNCTIONS
+dnl            _POSIX_THREAD_SAFE_FUNCTIONS
+dnl            _POSIX_THREADSAFE_FUNCTIONS
+dnl
+dnl            and is currently defined in lthread.h
+dnl
+dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
+dnl 
+dnl libldap/*.c should only include <lthread.h> iff
+dnl LDAP_R_COMPILE is defined.  ie:
+dnl            #ifdef LDAP_R_COMPILE
+dnl            #       include LDAP_R_COMPILE
+dnl            #endif
+dnl
+dnl LDAP_R_COMIPLE is defined by libldap_r/Makefile.in
+dnl specifically for compiling the threadsafe version of
+dnl    the ldap library (-lldap_r).
+dnl            
+dnl    dnl check for reentrant/threadsafe functions
+dnl    dnl
+dnl    dnl note: these should only be used when linking
+dnl    dnl       with $LTHREAD_LIBS
+dnl    dnl
+dnl    save_CPPFLAGS="$CPPFLAGS"
+dnl    save_LIBS="$LIBS"
+dnl    LIBS="$LTHREAD_LIBS $LIBS"
+dnl    AC_CHECK_FUNCS( \
+dnl            strtok_r \
+dnl            gmtime_r \
+dnl            gethostbyaddr_r gethostbyname_r \
+dnl            feof_unlocked unlocked_feof \
+dnl            putc_unlocked unlocked_putc \
+dnl            flockfile ftrylockfile \
+dnl    )
+dnl    CPPFLAGS="$save_CPPFLAGS"
+dnl    LIBS="$save_LIBS"
 fi  
 
 dnl ----------------------------------------------------------------
@@ -864,14 +977,12 @@ if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
        fi
 fi
 
-if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = ndbm ; then
+if test $ol_with_ldbm_api = auto ; then
+       AC_MSG_WARN([skipping automatic checking for NDBM, must be manually enabled.])
+elif test $ol_with_ldbm_api = ndbm ; then
        OL_NDBM
 
        if test $ol_cv_ndbm = yes ; then
-               if test $ol_with_ldbm_api = auto ; then
-                       AC_MSG_WARN([Attempting to use NDBM.  Functionality will be limited.])
-               fi
-
                ol_link_ldbm=ndbm
                ol_with_ldbm_api=ndbm
 
@@ -891,8 +1002,8 @@ if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
        ol_enable_ldbm=no
 fi
 
-if test $ol_enable_wrappers = yes ; then
-       AC_CHECK_LIB(wrap, hosts_access,
+if test $ol_enable_wrappers != no ; then
+       AC_CHECK_LIB(wrap, main,
                [have_wrappers=yes], [have_wrappers=no])
 
        if test $have_wrappers = yes ; then
@@ -910,6 +1021,19 @@ if test $ol_enable_wrappers = yes ; then
 
 fi
 
+if test $ol_enable_syslog != no ; then
+       AC_CHECK_FUNC(openlog)
+       if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
+               AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
+       fi
+       ol_enable_syslog=$ac_cv_func_openlog
+fi
+
+if test $ol_enable_dmalloc != no ; then
+       AC_CHECK_HEADERS(dmalloc.h)
+       AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
+fi
+
 # ud needs termcap (should insert check here)
 ol_link_termcap=no
 AC_CHECK_HEADERS(termcap.h ncurses.h)
@@ -1026,6 +1150,7 @@ AC_TYPE_OFF_T
 AC_TYPE_PID_T
 AM_TYPE_PTRDIFF_T
 AC_TYPE_SIGNAL
+OL_TYPE_SIG_ATOMIC_T
 AC_TYPE_SIZE_T
 AC_STRUCT_ST_BLKSIZE
 AC_HEADER_TIME
@@ -1033,6 +1158,7 @@ AC_STRUCT_TM
 
 OL_C_UPPER_LOWER
 AC_C_CONST
+OL_C_VOLATILE
 
 if test $cross_compiling = yes ; then
        AC_DEFINE(CROSS_COMPILING, 1)
@@ -1053,7 +1179,7 @@ AC_FUNC_VPRINTF
 
 if test $ac_cv_func_vprintf = yes ; then
        dnl check for vsnprintf
-       AC_CHECK_FUNCS(vsnprintf)
+       AC_CHECK_FUNCS(vsnprintf vsprintf)
 fi
 
 AC_FUNC_WAIT3
@@ -1089,6 +1215,27 @@ AC_CHECK_FUNCS(          \
        waitpid                 \
 )
 
+# these functions are required to build a thread_safe -lldap
+AC_CHECK_FUNCS(                \
+       strtok_r                \
+       ctime_r                 \
+       gethostbyaddr_r \
+       gethostbyname_r \
+)
+
+if test $ac_cv_func_strtok_r = yes \
+       -a $ac_cv_func_ctime_r = yes \
+       -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 strdup tempnam)
 
@@ -1099,74 +1246,71 @@ OL_SYS_ERRLIST
 dnl ----------------------------------------------------------------
 dnl Sort out defines
 
-if test $ol_enable_debug != no ; then
+if test "$ol_enable_debug" != no ; then
        AC_DEFINE(LDAP_DEBUG,1)
 fi
-dnl    if test $ol_enable_syslog != no ; then
-dnl            AC_DEFINE(LDAP_SYSLOG,1)
-dnl    fi
-if test $ol_enable_libui = yes ; then
+if test "$ol_enable_syslog" = yes ; then
+       AC_DEFINE(LDAP_SYSLOG,1)
+fi
+if test "$ol_enable_libui" = yes ; then
        AC_DEFINE(LDAP_LIBUI,1)
 fi
-if test $ol_enable_cache = no ; then
+if test "$ol_enable_cache" = no ; then
        AC_DEFINE(LDAP_NOCACHE,1)
 fi
-if test $ol_enable_dns != no ; then
+if test "$ol_enable_dns" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_DNS,LDAP_API_VENDOR_VERSION,1)
 fi
-if test $ol_enable_proctitle != no ; then
+if test "$ol_enable_proctitle" != no ; then
        AC_DEFINE(LDAP_PROCTITLE,1)
 fi
-if test $ol_enable_referrals != no ; then
+if test "$ol_enable_referrals" != no ; then
        AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_API_VENDOR_VERSION,1)
 fi
-if test $ol_enable_cldap != no ; then
+if test "$ol_enable_cldap" != no ; then
        AC_DEFINE(LDAP_CONNECTIONLESS,1)
 fi
 
-if test $ol_enable_aclgroups != no ; then
+if test "$ol_enable_aclgroups" != no ; then
        AC_DEFINE(SLAPD_ACLGROUPS,1)
 fi
-if test $ol_enable_crypt != no ; then
+if test "$ol_enable_crypt" != no ; then
        AC_DEFINE(SLAPD_CRYPT,1)
 fi
-if test $ol_enable_md5 != no ; then
-       AC_DEFINE(SLAPD_MD5,1)
-fi
-if test $ol_enable_sha1 != no ; then
-       AC_DEFINE(SLAPD_SHA1,1)
+if test "$ol_enable_cleartext" != no ; then
+       AC_DEFINE(SLAPD_CLEARTEXT,1)
 fi
-if test $ol_enable_phonetic != no ; then
+if test "$ol_enable_phonetic" != no ; then
        AC_DEFINE(SLAPD_PHONETIC,1)
 fi
-if test $ol_enable_rlookups != no ; then
+if test "$ol_enable_rlookups" != no ; then
        AC_DEFINE(SLAPD_RLOOKUPS,1)
 fi
 
-if test $ol_link_ldbm != no ; then
+if test "$ol_link_ldbm" != no ; then
        AC_DEFINE(SLAPD_LDBM,1)
        BUILD_SLAPD=yes
        BUILD_LDBM=yes
 fi
 
-if test $ol_enable_passwd != no ; then
+if test "$ol_enable_passwd" != no ; then
        AC_DEFINE(SLAPD_PASSWD,1)
        BUILD_SLAPD=yes
        BUILD_PASSWD=yes
 fi
 
-if test $ol_enable_shell != no ; then
+if test "$ol_enable_shell" != no ; then
        AC_DEFINE(SLAPD_SHELL,1)
        BUILD_SLAPD=yes
        BUILD_SHELL=yes
 fi
 
-if test $ol_enable_slurpd != no -a $ol_link_threads != no -a \
+if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
        $BUILD_SLAPD = yes ; then
        BUILD_SLURPD=yes
 fi
 
-if test $ol_link_isode != no ; then
+if test "$ol_link_isode" != no ; then
        BUILD_LDAPD=yes
 fi
 
@@ -1216,6 +1360,7 @@ libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk        \
 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk   \
 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
+libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk     \
 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
 libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk:build/lib-static.mk   \