2 dnl Copyright 1998,1999 The OpenLDAP Foundation. All Rights Reserved.
4 dnl Redistribution and use in source and binary forms are permitted only
5 dnl as authorized by the OpenLDAP Public License. A copy of this
6 dnl license is available at http://www.OpenLDAP.org/license.html or
7 dnl in file LICENSE in the top-level directory of the distribution.
10 dnl Configure.in for OpenLDAP
11 AC_INIT(include/ldap.h)dnl
12 AC_CONFIG_AUX_DIR(build)dnl
13 AM_INIT_AUTOMAKE(OpenLDAP,[2.0-devel], [no ac_define])dnl
15 dnl We use autoconf features new to 2.13.
16 dnl aclocal.m4 should be built using aclocal from automake 1.4
17 AC_PREREQ(2.13)dnl Required Autoconf version
19 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h)dnl
23 AC_MSG_CHECKING(configure arguments)
24 AC_PREFIX_DEFAULT(/usr/local)
27 AC_SUBST(top_builddir)dnl
29 ldap_subdir="openldap"
31 AC_ARG_WITH(subdir, [ --with-subdir=DIR change default subdirectory used for installs], [
32 if test "$withval" = "no"; then
34 elif test "$withval" != "yes"; then
35 ldap_subdir="$withval"
39 AC_SUBST(ldap_subdir)dnl
41 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
43 dnl OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
44 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
45 OL_ARG_ENABLE(cache,[ --enable-cache enable caching], yes)dnl
46 OL_ARG_ENABLE(dns,[ --enable-dns enable V2 DNS extension], no)dnl
47 OL_ARG_ENABLE(referrals,[ --enable-referrals enable V2 Referrals extension], yes)dnl
48 OL_ARG_ENABLE(cldap,[ --enable-cldap enable connectionless ldap], no)dnl
49 OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling],
52 dnl General "with" options
53 OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
55 OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
56 auto, [auto k5 k4 afs yes no])
57 OL_ARG_WITH(readline,[ --with-readline with readline support],
59 OL_ARG_WITH(threads,[ --with-threads use threads],
60 auto, [auto posix mach lwp yes no manual] )
61 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
62 auto, [auto ssleay openssl yes no] )
63 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
64 auto, [auto yes no manual] )
69 AC_ARG_WITH(xxldapdoptions,[LDAPD Options:])
70 OL_ARG_ENABLE(ldapd,[ --enable-ldapd enable building ldapd], no)dnl
73 AC_ARG_WITH(xxslapdoptions,[SLAPD Options:])
74 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
75 OL_ARG_ENABLE(aclgroups,[ --enable-aclgroups enable ACL group support], auto)dnl
76 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
77 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
78 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
79 OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
80 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
82 dnl SLAPD Backend options
83 OL_ARG_ENABLE(bdb2,[ --enable-bdb2 enable bdb2 backend], no)dnl
84 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
85 OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
86 [auto db2 db mdbm gdbm ndbm manual])
87 OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
90 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
91 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend], no)dnl
92 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
93 OL_ARG_ENABLE(tcl,[ --enable-tcl enable tcl backend], no)dnl
96 AC_ARG_WITH(xxslurpdoptions,[SLURPD Options:])
97 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
99 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
101 dnl AM_DISABLE_SHARED
104 dnl General "enable" options
106 if test $ol_enable_dns = yes ; then
107 if test $ol_enable_referrals = no ; then
108 AC_MSG_ERROR([DNS requires --enable-referrals])
110 if test $ol_enable_referrals = auto ; then
111 AC_MSG_WARN([DNS requires referrals, adding --enable-referrals])
112 ol_enable_referrals=yes
116 if test $ol_enable_slapd = no ; then
117 dnl SLAPD was specificallly disabled
118 if test $ol_enable_bdb2 = yes ; then
119 AC_MSG_WARN([slapd disabled, ignoring --enable_bdb2 argument])
121 if test $ol_enable_ldbm = yes ; then
122 AC_MSG_WARN([slapd disabled, ignoring --enable_ldbm argument])
124 if test $ol_enable_passwd = yes ; then
125 AC_MSG_WARN([slapd disabled, ignoring --enable_passwd argument])
127 if test $ol_enable_perl = yes ; then
128 AC_MSG_WARN([slapd disabled, ignoring --enable_perl argument])
130 if test $ol_enable_shell = yes ; then
131 AC_MSG_WARN([slapd disabled, ignoring --enable_shell argument])
133 if test $ol_enable_tcl = yes ; then
134 AC_MSG_WARN([slapd disabled, ignoring --enable_tcl argument])
136 if test $ol_enable_aclgroups = yes ; then
137 AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroups argument])
139 if test $ol_enable_wrappers = yes ; then
140 AC_MSG_WARN([slapd disabled, ignoring --enable_wrappers argument])
142 if test $ol_enable_phonetic = yes ; then
143 AC_MSG_WARN([slapd disabled, ignoring --enable_phonetic argument])
145 if test $ol_enable_rlookups = yes ; then
146 AC_MSG_WARN([slapd disabled, ignoring --enable_rlookups argument])
148 if test $ol_with_ldbm_api != auto ; then
149 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_api argument])
151 if test $ol_with_ldbm_type != auto ; then
152 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_type argument])
154 if test $ol_enable_slurpd = yes ; then
155 AC_MSG_ERROR([slurpd requires slapd])
158 # force settings to no
165 ol_enable_aclgroups=no
166 ol_enable_wrappers=no
167 ol_enable_phonetic=no
168 ol_enable_rlookups=no
173 elif test $ol_enable_ldbm = no ; then
174 dnl SLAPD without LDBM
176 if test $ol_with_ldbm_api != auto ; then
177 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_api argument])
180 if test $ol_with_ldbm_type != auto ; then
181 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_type argument])
184 if test $ol_enable_bdb2 = yes ; then
185 AC_MSG_ERROR([BDB2 requires --enable-ldbm])
188 if test $ol_enable_passwd = no -a \
189 $ol_enable_perl = no -a \
190 $ol_enable_shell = no -a \
191 $ol_enable_tcl = no ; then
192 AC_MSG_ERROR([slapd requires a backend])
198 elif test $ol_enable_bdb2 = yes ; then
201 if test $ol_with_ldbm_api != auto -a \
202 $ol_with_ldbm_api != db2 ; then
203 AC_MSG_ERROR([BDB2 requires LDBM API DB2])
211 if test $ol_enable_bdb2 != no ; then
212 if test $ol_with_ldbm_api != auto -a \
213 $ol_with_ldbm_api != db2 ; then
214 AC_MSG_WARN([BDB2 requires LDBM api db2 or auto])
219 if test $ol_with_ldbm_api = gdbm -a \
220 $ol_with_ldbm_type = btree ; then
221 AC_MSG_ERROR([GDBM only supports LDBM type hash])
223 if test $ol_with_ldbm_api = mdbm -a \
224 $ol_with_ldbm_type = btree ; then
225 AC_MSG_ERROR([MDBM only supports LDBM type hash])
227 if test $ol_with_ldbm_api = ndbm -a \
228 $ol_with_ldbm_type = btree ; then
229 AC_MSG_ERROR([NDBM only supports LDBM type hash])
233 if test $ol_enable_slurpd = yes ; then
234 dnl SLURPD was specifically enabled
235 if test $ol_with_threads = no ; then
236 AC_MSG_ERROR([slurpd requires threads])
272 dnl ----------------------------------------------------------------
273 dnl Checks for programs
277 dnl The default compiler is cc (NOT gcc)
279 dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
280 dnl CFLAGS=${CFLAGS-""}
289 if test "$LN_H" = "cp" -a "$LN_S" = "ln"; then
293 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
294 $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
295 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
296 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
298 if test $ol_enable_perl = yes ; then
299 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
301 if test "no$PERLBIN" = "no" ; then
305 SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
306 SLAPD_PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e perl_inc`"
311 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
312 AC_MSG_WARN([cross compiling.... some functionality will be removed.])
314 elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
315 AC_MSG_WARN([programs compiled here do run here...])
316 AC_MSG_ERROR([ if not cross compiling, use --disable-x-compile.])
318 elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
319 AC_MSG_WARN([programs compiled here do not run here...])
320 AC_MSG_ERROR([ if cross compiling, add --enable-x-compile.])
323 dnl Checks for UNIX Variants
328 dnl BeOS requires -lbe -lroot
329 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot"], :, [-lroot])
331 dnl Checks for system services
337 dnl OpenLDAP requires STDC features
339 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
340 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC prototypes.])
345 dnl Checks for libraries
348 dnl Likely combinations:
349 dnl -lsocket [ -lnsl_s | -lnsl ]
352 AC_CHECK_FUNC(socket, [have_socket=yes], [
354 dnl hopefully we won't include too many libraries
356 AC_CHECK_LIB(socket, main)
357 AC_CHECK_LIB(net, main)
358 AC_CHECK_LIB(nsl_s, main)
359 AC_CHECK_LIB(nsl, main)
360 AC_CHECK_LIB(inet, socket)
361 AC_CHECK_LIB(gen, main)
364 dnl Check for resolver routines
365 AC_CHECK_FUNCS(res_search)
366 if test $ac_cv_func_res_search = "no" ; then
367 AC_CHECK_LIB(bind, res_search)
368 if test "$ac_cv_lib_bind_res_search" = "yes" ; then
369 AC_DEFINE(HAVE_RES_SEARCH,1)
371 AC_CHECK_LIB(resolv, res_search)
372 if test "$ac_cv_lib_resolv_res_search" = "yes" ; then
373 AC_DEFINE(HAVE_RES_SEARCH,1)
378 dnl HP-UX requires -lV3
379 AC_CHECK_LIB(V3, sigset)
383 if test $ol_enable_ldapd != no ; then
384 dnl look for ISODE libraries
385 AC_CHECK_LIB(xtpp, main, [
387 AC_DEFINE(HAVE_XTPP,1, [define if you have -lxttp])
388 LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi"
389 ],:,[-lxtdsap -lxtisode -losi])
390 AC_CHECK_LIB(dsap, main, [
392 AC_DEFINE(HAVE_DSAP,1, [define if you have -ldsap])
393 LDAPD_LIBS="$LDAPD_LIBS -ldsap"
395 AC_CHECK_LIB(isode, main, [
397 AC_DEFINE(HAVE_ISODE,1, [define if you have -lisode])
398 LDAPD_LIBS="$LDAPD_LIBS -lisode"
402 if test $ol_link_isode != no; then
403 AC_CHECK_LIB(pp, main, [
404 AC_DEFINE(HAVE_PP,1, [define if you have -lpp])
405 LDAPD_LIBS="-lpp $LDAPD_LIBS"
408 AC_PATH_PROG(PEPSY, pepsy)
412 dnl check for kerberos
416 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
417 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
419 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
420 AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
423 if test $have_k5 = yes ; then
424 ol_with_kerberos=found
427 KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
429 LIBS="$KRB_LIBS $LIBS"
431 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
432 [ol_cv_var_des_debug], [
435 LIBS="$KRB_LIBS $LIBS"
437 #include <kerberosIV/krb.h>
438 #include <kerberosIV/des.h>
439 extern int des_debug;
442 ], ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
447 if test $ol_cv_var_des_debug = yes ; then
448 AC_DEFINE(HAVE_DES_DEBUG,1,
449 [define if you have Kerberos des_debug])
457 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
458 AC_CHECK_HEADERS(krb.h des.h)
460 if test $ac_cv_header_krb_h = yes ; then
461 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
463 if test $have_k4 = yes ; then
464 ol_with_kerberos=found
467 KRB_LIBS="-lkrb -ldes"
472 if test $ol_link_kerberos = yes ; then
473 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
477 dnl Check for SSL/TLS
480 if test $ol_with_tls != no ; then
482 AC_CHECK_HEADERS(ssl.h)
484 if test $ac_cv_header_ssl_h = yes ; then
485 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
491 if test $have_ssleay = no ; then
492 AC_CHECK_LIB(ssl, ssl3_accept,
494 need_rsaref=yes], [have_ssleay=no],
495 [-lcrypto -lRSAglue -lrsaref])
498 if test $have_ssleay = yes ; then
502 AC_DEFINE(HAVE_SSLEAY, 1,
503 [define if you have SSLeay or OpenSSL])
505 if test $need_rsaref = yes; then
506 AC_DEFINE(HAVE_RSAREF, 1,
507 [define if you have RSAref])
509 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
511 TLS_LIBS="-lssl -lcrypto"
517 if test $ol_link_tls = yes ; then
518 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
521 dnl Tests for reentrant functions necessary to build a
522 dnl thread_safe -lldap.
525 gethostbyname_r gethostbyaddr_r \
528 if test "$ac_cv_func_ctime_r" = no ; then
529 ol_cv_func_ctime_r_nargs=0
531 OL_FUNC_CTIME_R_NARGS
532 dnl OL_FUNC_CTIME_R_TYPE
535 if test "$ac_cv_func_gethostbyname_r" = yes ; then
536 OL_FUNC_GETHOSTBYNAME_R_NARGS
538 ol_cv_func_gethostbyname_r_nargs=0
541 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
542 OL_FUNC_GETHOSTBYADDR_R_NARGS
544 ol_cv_func_gethostbyaddr_r_nargs=0
547 if test "$ac_cv_func_ctime_r" = yes \
548 -a "$ol_cv_func_ctime_r_nargs" -ge 2 \
549 -a "$ol_cv_func_ctime_r_nargs" -le 3 \
550 -a "$ac_cv_func_gethostbyname_r" = yes \
551 -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \
552 -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \
553 -a "$ac_cv_func_gethostbyaddr_r" = yes \
554 -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \
555 -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \
558 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
562 if test $ol_with_threads = auto -o $ol_with_threads = yes \
563 -o $ol_with_threads = posix ; then
565 AC_CHECK_HEADERS(pthread.h sched.h)
567 if test $ac_cv_header_pthread_h = yes ; then
568 OL_POSIX_THREAD_VERSION
570 if test $ol_cv_pthread_version = final ; then
571 AC_DEFINE(HAVE_PTHREADS_FINAL,1,
572 [define if pthreads API compatible with final spec])
573 elif test $ol_cv_pthread_version = draft4 ; then
574 AC_DEFINE(HAVE_PTHREADS_D4,1,
575 [define if pthreads API compatible with draft4 spec])
577 AC_MSG_ERROR([unknown pthread version])
580 # consider threads found
581 ol_with_threads=found
585 if test $ol_cv_linux_threads = yes ; then
586 AC_DEFINE(HAVE_LINUX_THREADS,1,
587 [define if you have LinuxThreads])
590 dnl Now the hard part, how to link?
592 dnl currently supported checks:
594 dnl Check for no flags
595 dnl pthread_create() in $LIBS
597 dnl Check special pthread (final) flags
598 dnl pthread_create() with -mt (Solaris)
599 dnl pthread_create() with -kthread (FreeBSD)
600 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
601 dnl pthread_create() with -pthreads (?)
602 dnl pthread_create() with -thread (?)
604 dnl Check pthread (final) libraries
605 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
606 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
607 dnl pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
608 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
609 dnl pthread_create() in -lpthread (many)
610 dnl pthread_create() in -lc_r (FreeBSD)
612 dnl Check pthread (draft4) flags (depreciated)
613 dnl pthread_create() with -threads (OSF/1)
615 dnl Check pthread (draft4) libraries (depreciated)
616 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
617 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
618 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
619 dnl pthread_create() in -lpthreads (many)
622 dnl pthread_create in $LIBS
623 AC_MSG_CHECKING([for pthread_create in default libraries])
624 AC_CACHE_VAL(ol_cv_pthread_create,[
628 #define NULL (void*)0
634 return (void *) (p == NULL);
644 /* make sure pthread_create() isn't just a stub */
646 status = pthread_create(&t, pthread_attr_default, task, NULL));
648 status = pthread_create(&t, NULL, task, NULL);
651 if( status ) return status;
653 /* make sure pthread_detach() isn't just a stub */
655 status = pthread_detach( &t );
657 status = pthread_detach( t );
660 if( status ) return status;
665 [ol_cv_pthread_create=yes],
666 [ol_cv_pthread_create=no],
668 ol_cv_pthread_create=yes])])
669 AC_MSG_RESULT($ol_cv_pthread_create)
671 if test $ol_cv_pthread_create != no ; then
672 ol_link_threads=posix
675 if test $ol_link_threads = no ; then
677 AC_CACHE_CHECK([for pthread_create with -mt],
678 [ol_cv_pthread_mt_flag], [
682 AC_TRY_LINK([char pthread_create();],
684 [ol_cv_pthread_mt_flag=yes], [ol_cv_pthread_mt_flag=no])
689 if test $ol_cv_pthread_mt_flag = yes ; then
690 LTHREAD_LIBS="$LTHREAD_LIBS -mt"
691 ol_link_threads=posix
695 if test $ol_link_threads = no ; then
697 AC_CACHE_CHECK([for pthread_create with -kthread],
698 [ol_cv_kthread_flag], [
701 LIBS="-kthread $LIBS"
702 AC_TRY_LINK([#include <pthread.h>],[
704 pthread_create(NULL,pthread_attr_default,NULL,NULL);
707 pthread_create(&t,NULL,NULL,NULL);
711 [ol_cv_kthread_flag=yes], [ol_cv_kthread_flag=no])
716 if test $ol_cv_kthread_flag = yes ; then
717 LTHREAD_LIBS="$LTHREAD_LIBS -kthread"
718 ol_link_threads=posix
722 if test $ol_link_threads = no ; then
724 AC_CACHE_CHECK([for pthread_create with -pthread],
725 [ol_cv_pthread_flag], [
728 LIBS="-pthread $LIBS"
729 AC_TRY_LINK([#include <pthread.h>],[
731 pthread_create(NULL,pthread_attr_default,NULL,NULL);
733 pthread_create(NULL,NULL,NULL,NULL);
736 [ol_cv_pthread_flag=yes], [ol_cv_pthread_flag=no])
741 if test $ol_cv_pthread_flag = yes ; then
742 LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
743 ol_link_threads=posix
747 if test $ol_link_threads = no ; then
749 AC_CACHE_CHECK([for pthread_create with -pthreads],
750 [ol_cv_pthreads_flag], [
753 LIBS="-pthreads $LIBS"
754 AC_TRY_LINK([#include <pthread.h>],[
756 pthread_create(NULL,pthread_attr_default,NULL,NULL);
758 pthread_create(NULL,NULL,NULL,NULL);
761 [ol_cv_pthreads_flag=yes], [ol_cv_pthreads_flag=no])
766 if test $ol_cv_pthreads_flag = yes ; then
767 LTHREAD_LIBS="$LTHREAD_LIBS -pthreads"
768 ol_link_threads=posix
772 if test $ol_link_threads = no ; then
774 AC_CACHE_CHECK([for pthread_create with -thread],
775 [ol_cv_thread_flag], [
779 AC_TRY_LINK([char pthread_create();],
781 [ol_cv_thread_flag=yes], [ol_cv_thread_flag=no])
786 if test $ol_cv_thread_flag = yes ; then
787 LTHREAD_LIBS="$LTHREAD_LIBS -thread"
788 ol_link_threads=posix
792 if test $ol_link_threads = no ; then
793 dnl try DEC Threads -lpthread -lmach -lexc -lc_r
795 AC_CHECK_LIB(pthread, pthread_mutex_unlock, [
796 ol_link_threads=posix
797 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc_r"
798 dnl if test $ol_with_yielding_select = auto ; then
799 dnl ol_with_yielding_select=yes
801 ],:,[-lmach -lexc -lc_r])
805 if test $ol_link_threads = no ; then
806 dnl try DEC Threads -lpthread -lmach -lexc
808 AC_CHECK_LIB(pthread, pthread_mutex_lock, [
809 ol_link_threads=posix
810 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc"
811 dnl if test $ol_with_yielding_select = auto ; then
812 dnl ol_with_yielding_select=yes
818 if test $ol_link_threads = no ; then
819 dnl try DEC Threads -lpthread -lexc
821 AC_CHECK_LIB(pthread, pthread_mutex_trylock, [
822 ol_link_threads=posix
823 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lexc"
824 dnl if test $ol_with_yielding_select = auto ; then
825 dnl ol_with_yielding_select=yes
831 dnl IRIX Pthread check
832 if test $ol_link_threads = no ; then
833 dnl try IRIX Pthreads -Wl,-woff,85 -lpthread
835 AC_CHECK_LIB(pthread, pthread_join, [
836 ol_link_threads=posix
837 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"
842 if test $ol_link_threads = no ; then
845 AC_CHECK_LIB(pthread, pthread_create, [
846 ol_link_threads=posix
847 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"],:)
851 if test $ol_link_threads = no ; then
854 AC_CHECK_LIB(c_r, pthread_create, [
855 ol_link_threads=posix
856 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"],:)
860 if test $ol_link_threads = no ; then
862 AC_CACHE_CHECK([for pthread_create with -threads],
863 [ol_cv_threads_flag], [
866 LIBS="-threads $LIBS"
867 AC_TRY_LINK([char pthread_create();],[
869 ], ol_cv_threads_flag=yes, ol_cv_threads_flag=no)
874 if test $ol_cv_threads_flag = yes ; then
875 LTHREAD_LIBS="$LTHREAD_LIBS -threads"
876 ol_link_threads=posix
880 if test $ol_link_threads = no ; then
881 dnl try DEC Threads -lpthreads -lmach -lexc -lc_r
883 AC_CHECK_LIB(pthreads, pthread_mutex_unlock, [
884 ol_link_threads=posix
885 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc -lc_r"
886 dnl if test $ol_with_yielding_select = auto ; then
887 dnl ol_with_yielding_select=yes
889 ],:,[-lmach -lexc -lc_r])
893 if test $ol_link_threads = no ; then
894 dnl try DEC Threads -lpthreads -lmach -lexc
896 AC_CHECK_LIB(pthreads, pthread_mutex_lock, [
897 ol_link_threads=posix
898 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc"
899 dnl if test $ol_with_yielding_select = auto ; then
900 dnl ol_with_yielding_select=yes
906 if test $ol_link_threads = no ; then
907 dnl try DEC Threads -lpthreads -lexc
909 AC_CHECK_LIB(pthreads, pthread_mutex_trylock, [
910 ol_link_threads=posix
911 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lexc"
912 dnl if test $ol_with_yielding_select = auto ; then
913 dnl ol_with_yielding_select=yes
919 if test $ol_link_threads = no ; then
922 AC_CHECK_LIB(pthreads, pthread_create, [
923 ol_link_threads=posix
924 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"],:)
928 if test $ol_link_threads != no ; then
929 AC_DEFINE(HAVE_PTHREADS,1,
930 [define if you have POSIX Threads])
933 save_CPPFLAGS="$CPPFLAGS"
935 LIBS="$LTHREAD_LIBS $LIBS"
937 dnl All POSIX Thread (final) implementations should have
938 dnl sched_yield instead of pthread yield.
940 AC_CHECK_FUNCS(sched_yield pthread_yield)
942 if test $ac_cv_func_sched_yield = no -a \
943 $ac_cv_func_pthread_yield = no ; then
944 dnl Digital UNIX has sched_yield() in -lrt
945 AC_CHECK_LIB(rt, sched_yield,
946 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
947 AC_DEFINE(HAVE_SCHED_YIELD,1)
948 ac_cv_func_sched_yield=yes],
949 [ac_cv_func_sched_yield=no])
951 if test $ac_cv_func_sched_yield = no -a \
952 $ac_cv_func_pthread_yield = no ; then
953 dnl Solaris has sched_yield() in -lposix4
954 dnl but we'll use thr_yield instead.
955 AC_CHECK_FUNCS(thr_yield)
957 if test $ac_cv_func_sched_yield = no -a \
958 $ac_cv_func_pthread_yield = no -a \
959 "$ac_cv_func_thr_yield" = no ; then
960 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
963 dnl Check functions for compatibility
964 AC_CHECK_FUNCS(pthread_kill)
966 dnl Check for pthread_detach with <pthread.h> inclusion
967 dnl as it's symbol may have been mangled.
968 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
969 [ol_cv_func_pthread_detach], [
974 #define NULL (void*)0
977 [pthread_detach(NULL);],
978 [ol_cv_func_pthread_detach=yes],
979 [ol_cv_func_pthread_detach=no])
982 if test $ol_cv_func_pthread_detach = no ; then
983 AC_MSG_ERROR([could not locate pthread_detach()])
986 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
987 [define if you have pthread_detach function])
989 dnl Check for setconcurreny functions
991 pthread_setconcurrency \
992 pthread_getconcurrency \
997 AC_MSG_CHECKING([if pthread_create() works])
998 AC_CACHE_VAL(ol_cv_pthread_create_works,[
1000 #include <pthread.h>
1002 #define NULL (void*)0
1005 static void *task(p)
1008 return (void *) (p == NULL);
1011 int main(argc, argv)
1016 #if HAVE_PTHREADS_D4
1017 exit(pthread_create(&t, pthread_attr_default, task, NULL));
1019 exit(pthread_create(&t, NULL, task, NULL));
1023 [ol_cv_pthread_create_works=yes],
1024 [ol_cv_pthread_create_works=no],
1026 ol_cv_pthread_create_works=yes])])
1027 AC_MSG_RESULT($ol_cv_pthread_create_works)
1029 if test $ol_cv_pthread_create_works = no ; then
1030 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
1033 dnl Check if select causes an yield
1034 if test $ol_with_yielding_select = auto ; then
1035 AC_MSG_CHECKING([if select yields when using pthreads])
1036 AC_CACHE_VAL(ol_cv_pthread_select_yields,[
1038 #include <sys/types.h>
1039 #include <sys/time.h>
1041 #include <pthread.h>
1043 #define NULL (void*) 0
1046 static int fildes[2];
1048 static void *task(p)
1060 FD_SET(fildes[0], &rfds);
1062 /* we're not interested in any fds */
1063 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
1070 exit(0); /* if we exit here, the select blocked the whole process */
1073 int main(argc, argv)
1079 /* create a pipe to select */
1080 if(pipe(&fildes[0])) {
1085 #ifdef HAVE_PTHREAD_SETCONCURRENCY
1086 (void) pthread_setconcurrency(2);
1088 #ifdef HAVE_THR_SETCONCURRENCY
1089 /* Set Solaris LWP concurrency to 2 */
1090 thr_setconcurrency(2);
1094 #if HAVE_PTHREADS_D4
1095 pthread_create(&t, pthread_attr_default, task, NULL);
1097 pthread_create(&t, NULL, task, NULL);
1100 #if HAVE_SCHED_YIELD
1101 sched_yield(); /* make sure task runs first */
1103 #ifdef HAVE_PTHREAD_YIELD
1104 pthread_yield(); /* make sure task runs first */
1110 [ol_cv_pthread_select_yields=no],
1111 [ol_cv_pthread_select_yields=yes], [
1112 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])])])
1113 AC_MSG_RESULT($ol_cv_pthread_select_yields)
1115 if test $ol_cv_pthread_select_yields = yes ; then
1116 ol_with_yielding_select=yes
1121 CPPFLAGS="$save_CPPFLAGS"
1124 AC_MSG_ERROR([could not link with POSIX Threads])
1128 if test $ol_with_threads = posix ; then
1129 AC_MSG_ERROR([could not locate POSIX Threads])
1133 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1134 -o $ol_with_threads = mach ; then
1136 dnl check for Mach CThreads
1137 AC_CHECK_HEADERS(mach/cthreads.h)
1138 if test $ac_cv_header_mach_cthreads_h = yes ; then
1139 ol_with_threads=found
1141 dnl check for cthread support in current $LIBS
1142 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1144 if test $ol_link_threads = no ; then
1146 dnl this test needs work
1147 AC_CACHE_CHECK([for cthread_fork with -all_load],
1148 [ol_cv_cthread_all_load], [
1151 LIBS="-all_load $LIBS"
1152 AC_TRY_LINK([#include <mach/cthreads.h>],[
1153 cthread_fork((void *)0, (void *)0);
1154 ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1155 dnl restore the LIBS
1159 if test $ol_cv_cthread_all_load = yes ; then
1160 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1161 ol_link_threads=mach
1165 if test $ol_link_threads != no ; then
1166 : check for cthread specific functionality here
1167 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1168 [define if you have Mach Cthreads])
1170 AC_MSG_ERROR([could not link with Mach CThreads])
1174 if test $ol_with_threads = mach ; then
1175 AC_MSG_ERROR([could not locate Mach CThreads])
1179 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1180 -o $ol_with_threads = lwp ; then
1182 dnl check for SunOS5 LWP
1183 AC_CHECK_HEADERS(thread.h synch.h)
1184 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1185 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1187 if test $have_thr = yes ; then
1188 AC_DEFINE(HAVE_THR,1,
1189 [if you have Solaris LWP (thr) package])
1190 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1193 if test $ol_with_yielding_select = auto ; then
1194 ol_with_yielding_select=yes
1197 dnl Check for setconcurreny functions
1199 thr_setconcurrency \
1200 thr_getconcurrency \
1205 dnl check for SunOS4 LWP
1206 AC_CHECK_HEADERS(lwp/lwp.h)
1207 if test $ac_cv_header_lwp_lwp_h = yes ; then
1208 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1210 if test $have_lwp = yes ; then
1211 AC_DEFINE(HAVE_LWP,1,
1212 [if you have SunOS LWP package])
1213 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1216 if test $ol_with_yielding_select = auto ; then
1217 ol_with_yielding_select=no
1223 if test $ol_with_yielding_select = yes ; then
1224 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1225 [define if select implicitly yields])
1228 if test $ol_with_threads = manual ; then
1229 dnl User thinks he can manually configure threads.
1232 AC_MSG_WARN([thread defines and link options must be set manually])
1234 AC_CHECK_HEADERS(pthread.h sched.h)
1235 AC_CHECK_FUNCS(sched_yield pthread_yield)
1238 AC_CHECK_HEADERS(mach/cthreads.h)
1239 AC_CHECK_HEADERS(lwp/lwp.h)
1240 AC_CHECK_HEADERS(thread.h synch.h)
1243 if test $ol_link_threads != no ; then
1244 dnl needed to get reentrant/threadsafe versions
1246 AC_DEFINE(REENTRANT,1)
1247 AC_DEFINE(_REENTRANT,1)
1248 AC_DEFINE(THREAD_SAFE,1)
1249 AC_DEFINE(_THREAD_SAFE,1)
1250 AC_DEFINE(THREADSAFE,1)
1251 AC_DEFINE(_THREADSAFE,1)
1253 dnl this might cause the errno symbol to be
1254 dnl replaced with a function to get a thread specific errno.
1255 dnl check to see if everything needs to be compiled
1256 dnl with the thread libraries
1257 AC_CACHE_CHECK([for thread specific errno],
1258 [ol_cv_errno_thread_specific], [
1259 AC_TRY_LINK([#include <errno.h>], [int x = errno;],
1260 [ol_cv_errno_thread_specific=yes],
1261 [ol_cv_errno_thread_specific=no])
1264 if test $ol_cv_errno_thread_specific != yes ; then
1265 LIBS="$LTHREAD_LIBS $LIBS"
1269 dnl When in thread environment, use
1270 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) \
1271 dnl || defined( HAVE_FUNC_R )
1274 dnl # if defined( HAVE_THREADS )
1278 dnl # if defined( HAVE_THREADS )
1283 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1284 dnl _POSIX_REENTRANT_FUNCTIONS
1285 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1286 dnl _POSIX_THREADSAFE_FUNCTIONS
1288 dnl and is currently defined in lthread.h
1290 dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
1292 dnl libldap/*.c should only include <lthread.h> iff
1293 dnl LDAP_R_COMPILE is defined. ie:
1294 dnl #ifdef LDAP_R_COMPILE
1295 dnl # include LDAP_R_COMPILE
1298 dnl LDAP_R_COMIPLE is defined by libldap_r/Makefile.in
1299 dnl specifically for compiling the threadsafe version of
1300 dnl the ldap library (-lldap_r).
1302 dnl dnl check for reentrant/threadsafe functions
1304 dnl dnl note: these should only be used when linking
1305 dnl dnl with $LTHREAD_LIBS
1307 dnl save_CPPFLAGS="$CPPFLAGS"
1308 dnl save_LIBS="$LIBS"
1309 dnl LIBS="$LTHREAD_LIBS $LIBS"
1310 dnl AC_CHECK_FUNCS( \
1312 dnl gethostbyaddr_r gethostbyname_r \
1313 dnl feof_unlocked unlocked_feof \
1314 dnl putc_unlocked unlocked_putc \
1315 dnl flockfile ftrylockfile \
1317 dnl CPPFLAGS="$save_CPPFLAGS"
1318 dnl LIBS="$save_LIBS"
1321 if test $ol_link_threads = no ; then
1322 if test $ol_with_threads = yes ; then
1323 AC_MSG_ERROR([no suitable thread support])
1326 if test $ol_with_threads = auto ; then
1327 AC_MSG_WARN([no suitable thread support, disabling threads])
1331 AC_DEFINE(NO_THREADS,1,
1332 [define if you have (or want) no threads])
1336 if test $ol_link_threads != no ; then
1337 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1340 dnl ----------------------------------------------------------------
1343 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
1346 if test $ol_cv_berkeley_db2 = yes ; then
1348 ol_with_ldbm_api=db2
1350 if test $ol_with_ldbm_type = hash ; then
1351 AC_DEFINE(LDBM_USE_DBHASH,1)
1353 AC_DEFINE(LDBM_USE_DBBTREE,1)
1356 dnl $ol_cv_lib_db2 should be yes or -ldb
1357 dnl (it could be no, but that would be an error
1358 if test $ol_cv_lib_db2 != yes ; then
1359 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
1365 if test $ol_link_ldbm = db2 -a $ol_enable_bdb2 != no ; then
1369 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
1372 if test $ol_cv_berkeley_db = yes ; then
1376 if test $ol_with_ldbm_type = hash ; then
1377 AC_DEFINE(LDBM_USE_DBHASH,1)
1379 AC_DEFINE(LDBM_USE_DBBTREE,1)
1382 dnl $ol_cv_lib_db should be yes or -ldb
1383 dnl (it could be no, but that would be an error
1384 if test $ol_cv_lib_db != yes ; then
1385 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1390 if test $ol_with_ldbm_api = manual ; then
1391 dnl User thinks he can manually configure LDBM api.
1394 AC_MSG_WARN([LDBM defines and link options must be set manually])
1396 AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
1399 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1400 AC_MSG_WARN(Could not find LDBM with BTREE support)
1401 ol_with_ldbm_api=none
1404 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1407 if test $ol_cv_mdbm = yes ; then
1409 ol_with_ldbm_api=mdbm
1410 if test $ol_cv_lib_mdbm != yes ; then
1411 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1416 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1419 if test $ol_cv_gdbm = yes ; then
1421 ol_with_ldbm_api=gdbm
1423 if test $ol_cv_lib_gdbm != yes ; then
1424 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1429 if test $ol_with_ldbm_api = auto ; then
1430 AC_MSG_WARN([skipping automatic checking for NDBM, must be manually enabled.])
1431 elif test $ol_with_ldbm_api = ndbm ; then
1434 if test $ol_cv_ndbm = yes ; then
1436 ol_with_ldbm_api=ndbm
1438 if test $ol_cv_lib_ndbm != yes ; then
1439 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
1444 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
1445 AC_MSG_WARN(could not find suitable LDBM backend)
1446 if test $ol_enable_ldbm = yes ; then
1447 AC_MSG_ERROR(select appropriate LDBM options or disable)
1450 AC_MSG_WARN(disabling LDBM)
1454 if test $ol_enable_wrappers != no ; then
1455 AC_CHECK_HEADERS(tcpd.h)
1457 if test $ac_cv_header_tcpd_h != yes ; then
1460 AC_CHECK_LIB(wrap, main,
1461 [have_wrappers=yes], [have_wrappers=no])
1464 if test $have_wrappers = yes ; then
1465 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1466 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
1468 AC_MSG_WARN(could not find -lwrap)
1469 if test $ol_enable_wrappers = yes ; then
1470 AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
1473 AC_MSG_WARN(disabling wrappers support)
1474 ol_enable_wrappers=no
1478 if test $ol_enable_syslog != no ; then
1479 AC_CHECK_FUNC(openlog)
1480 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
1481 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1483 ol_enable_syslog=$ac_cv_func_openlog
1486 if test $ol_enable_dmalloc != no ; then
1487 AC_CHECK_HEADERS(dmalloc.h)
1488 AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
1491 if test $ol_enable_tcl != no ; then
1492 AC_CHECK_HEADERS(tcl.h)
1494 if test $ac_cv_header_tcl_h != yes ; then
1497 AC_CHECK_LIB(tcl,main,
1498 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl"],
1501 if test $have_tcl != yes; then
1502 AC_CHECK_LIB(tcl7.6,main,
1503 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl7.6"],
1507 if test $have_tcl != yes; then
1508 AC_CHECK_LIB(tcl8.0,main,
1509 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl8.0"],
1514 if test $have_tcl != yes ; then
1515 AC_MSG_WARN([could not find -ltcl])
1516 if test $ol_enable_tcl = yes ; then
1517 AC_MSG_ERROR([could not find tcl, select appropriate options or disable])
1524 # ud needs termcap (should insert check here)
1526 AC_CHECK_HEADERS(termcap.h ncurses.h)
1528 if test $ol_link_termcap = no ; then
1529 AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
1530 if test $have_termcap = yes ; then
1531 AC_DEFINE(HAVE_TERMCAP, 1, [define if you have -ltermcap])
1533 TERMCAP_LIBS=-ltermcap
1537 if test $ol_link_termcap = no ; then
1538 AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
1539 if test $have_ncurses = yes ; then
1540 AC_DEFINE(HAVE_NCURSES, 1, [define if you have -lncurses])
1542 TERMCAP_LIBS=-lncurses
1546 if test $ol_link_termcap = no ; then
1547 AC_DEFINE(NO_TERMCAP,1, [define if you have no termcap support])
1552 dnl Check for GNU readline
1555 if test $ol_with_readline != no ; then
1556 AC_CHECK_HEADERS(readline/readline.h readline/history.h)
1558 if test $ac_cv_header_readline_readline_h = yes ; then
1560 LIBS="$TERMCAP_LIBS $LIBS"
1561 AC_CHECK_LIB(readline, readline,
1562 [have_readline=yes], [have_readline=no])
1565 if test $have_readline = yes ; then
1566 ol_with_readline=found
1567 ol_link_readline=yes
1569 READLINE_LIBS="-lreadline"
1574 if test $ol_link_readline = yes ; then
1575 AC_DEFINE(HAVE_READLINE, 1, [define if you have -lreadline])
1579 # FreeBSD (and others) have crypt(3) in -lcrypt
1580 if test $ol_enable_crypt != no ; then
1581 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
1582 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
1583 have_crypt=yes], [have_crypt=no])])
1585 if test $have_crypt = yes ; then
1586 AC_DEFINE(HAVE_CRYPT,1)
1588 AC_MSG_WARN(could not find crypt)
1589 if test $ol_enable_crypt = yes ; then
1590 AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
1593 AC_MSG_WARN(disabling crypt support)
1598 # FreeBSD (and others) have setproctitle(3) in -lutil
1599 if test $ol_enable_proctitle != no ; then
1600 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
1601 AC_CHECK_LIB(util, setproctitle,
1602 [have_setproctitle=yes
1603 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
1604 [have_setproctitle=no
1605 LIBOBJS="$LIBOBJS setproctitle.o"])])
1607 if test $have_setproctitle = yes ; then
1608 AC_DEFINE(HAVE_SETPROCTITLE,1)
1612 dnl ----------------------------------------------------------------
1613 dnl Checks for header files.
1616 if test $ol_cv_header_stdc != yes; then
1617 AC_MSG_WARN([could not locate Standard C compliant headers])
1622 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
1623 if test $am_cv_sys_posix_termios = yes ; then
1624 AC_DEFINE(HAVE_POSIX_TERMIOS,1,
1625 [define if you have POSIX termios])
1668 dnl ----------------------------------------------------------------
1669 dnl Checks for typedefs, structures, and compiler characteristics.
1670 AC_TYPE_GETGROUPS dnl requires AC_TYPE_UID_T
1676 OL_TYPE_SIG_ATOMIC_T
1678 AC_STRUCT_ST_BLKSIZE
1681 OL_STRUCT_PASSWD_PW_GECOS
1687 if test $cross_compiling = yes ; then
1688 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
1691 AC_CHECK_SIZEOF(short)
1692 AC_CHECK_SIZEOF(int)
1693 AC_CHECK_SIZEOF(long)
1696 dnl ----------------------------------------------------------------
1697 dnl Checks for library functions.
1699 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
1705 if test $ac_cv_func_vprintf = yes ; then
1706 dnl check for vsnprintf
1707 AC_CHECK_FUNCS(vsnprintf vsprintf)
1748 dnl Select arg types
1749 dnl (if this detection becomes permenent, it and the select() detection
1750 dnl should be done before the yielding select test)
1751 AC_FUNC_SELECT_ARGTYPES
1753 dnl We actually may need to replace more than this.
1754 AC_REPLACE_FUNCS(getopt tempnam)
1756 dnl ----------------------------------------------------------------
1757 # Check Configuration
1760 dnl ----------------------------------------------------------------
1761 dnl Check our declaration of strdup()
1764 dnl ----------------------------------------------------------------
1765 dnl Sort out defines
1767 if test "$ol_enable_debug" != no ; then
1768 AC_DEFINE(LDAP_DEBUG,1)
1770 if test "$ol_enable_syslog" = yes ; then
1771 AC_DEFINE(LDAP_SYSLOG,1)
1773 if test "$ol_enable_libui" = yes ; then
1774 AC_DEFINE(LDAP_LIBUI,1)
1776 if test "$ol_enable_cache" = no ; then
1777 AC_DEFINE(LDAP_NOCACHE,1)
1779 if test "$ol_enable_dns" != no ; then
1780 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_DNS,LDAP_VENDOR_VERSION)
1782 if test "$ol_enable_proctitle" != no ; then
1783 AC_DEFINE(LDAP_PROCTITLE,1)
1785 if test "$ol_enable_referrals" != no ; then
1786 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
1788 if test "$ol_enable_cldap" != no ; then
1789 AC_DEFINE(LDAP_CONNECTIONLESS,1)
1792 if test "$ol_enable_aclgroups" != no ; then
1793 AC_DEFINE(SLAPD_ACLGROUPS,1)
1795 if test "$ol_enable_crypt" != no ; then
1796 AC_DEFINE(SLAPD_CRYPT,1)
1798 if test "$ol_enable_cleartext" != no ; then
1799 AC_DEFINE(SLAPD_CLEARTEXT,1)
1801 if test "$ol_enable_phonetic" != no ; then
1802 AC_DEFINE(SLAPD_PHONETIC,1)
1804 if test "$ol_enable_rlookups" != no ; then
1805 AC_DEFINE(SLAPD_RLOOKUPS,1)
1808 if test "$ol_link_bdb2" != no ; then
1809 AC_DEFINE(SLAPD_BDB2,1)
1814 if test "$ol_link_ldbm" != no ; then
1815 AC_DEFINE(SLAPD_LDBM,1)
1820 if test "$ol_enable_passwd" != no ; then
1821 AC_DEFINE(SLAPD_PASSWD,1)
1826 if test "$ol_enable_perl" != no ; then
1827 AC_DEFINE(SLAPD_PERL,1)
1832 if test "$ol_enable_shell" != no ; then
1833 AC_DEFINE(SLAPD_SHELL,1)
1838 if test "$ol_enable_tcl" != no ; then
1839 AC_DEFINE(SLAPD_TCL,1)
1844 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
1845 $BUILD_SLAPD = yes ; then
1849 if test "$ol_link_isode" != no ; then
1853 dnl ----------------------------------------------------------------
1855 AC_SUBST(BUILD_LDAPD)
1856 AC_SUBST(BUILD_SLAPD)
1857 AC_SUBST(BUILD_BDB2)
1858 AC_SUBST(BUILD_LDBM)
1859 AC_SUBST(BUILD_PASSWD)
1860 AC_SUBST(BUILD_PERL)
1861 AC_SUBST(BUILD_SHELL)
1863 AC_SUBST(BUILD_SLURPD)
1866 AC_SUBST(LDAPD_LIBS)
1867 AC_SUBST(SLAPD_LIBS)
1868 AC_SUBST(SLURPD_LIBS)
1870 AC_SUBST(LTHREAD_LIBS)
1871 AC_SUBST(LUTIL_LIBS)
1873 AC_SUBST(SLAPD_PERL_CPPFLAGS)
1874 AC_SUBST(SLAPD_PERL_LDFLAGS)
1877 AC_SUBST(READLINE_LIBS)
1878 AC_SUBST(TERMCAP_LIBS)
1881 dnl ----------------------------------------------------------------
1886 Makefile:build/top.mk:Makefile.in:build/dir.mk \
1887 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
1888 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
1889 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
1890 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
1891 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
1892 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
1893 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
1894 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
1895 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
1896 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
1897 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
1898 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
1899 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
1900 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
1901 include/Makefile:build/top.mk:include/Makefile.in \
1902 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk \
1903 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk \
1904 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
1905 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
1906 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \
1907 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \
1908 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
1909 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
1910 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
1911 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
1912 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
1913 servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/srv.mk \
1914 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
1915 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
1916 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/srv.mk \
1917 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
1918 servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/srv.mk \
1919 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
1920 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
1921 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
1922 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
1923 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
1924 contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
1925 contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
1926 contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
1929 echo Please \"make depend\" to build dependencies