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 Disable config.cache!
11 define([AC_CACHE_LOAD], )dnl
12 define([AC_CACHE_SAVE], )dnl
14 dnl Configure.in for OpenLDAP
15 AC_INIT(build/version)dnl
16 AC_CONFIG_AUX_DIR(build)dnl
18 OL_VERSION=`cat $ac_aux_dir/version`
19 if test -z "$OL_VERSION"; then
20 AC_MSG_ERROR([could not determine version])
23 AM_INIT_AUTOMAKE(OpenLDAP,[$OL_VERSION], [no defines])dnl
26 AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
27 AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
29 dnl We use autoconf features new to 2.13.
30 dnl aclocal.m4 should be built using aclocal from automake 1.4
31 AC_PREREQ(2.13)dnl Required Autoconf version
33 AC_CONFIG_HEADER(include/portable.h include/ldap_features.h)dnl
37 AC_MSG_CHECKING(configure arguments)
38 AC_PREFIX_DEFAULT(/usr/local)
41 AC_SUBST(top_builddir)dnl
43 AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
45 ldap_subdir="openldap"
47 AC_ARG_WITH(subdir, [ --with-subdir=DIR change default subdirectory used for installs], [
48 if test "$withval" = "no"; then
50 elif test "$withval" != "yes"; then
51 ldap_subdir="$withval"
55 AC_SUBST(ldap_subdir)dnl
57 OL_ARG_ENABLE(debug,[ --enable-debug enable debugging], yes)dnl
58 dnl ol_enable_syslog=no
59 OL_ARG_ENABLE(syslog,[ --enable-syslog enable syslog support], auto)dnl
60 OL_ARG_ENABLE(proctitle,[ --enable-proctitle enable proctitle support], yes)dnl
61 OL_ARG_ENABLE(cache,[ --enable-cache enable caching], yes)dnl
62 OL_ARG_ENABLE(dns,[ --enable-dns enable V2 DNS extension], no)dnl
63 OL_ARG_ENABLE(referrals,[ --enable-referrals enable V2 Referrals extension], yes)dnl
64 OL_ARG_ENABLE(cldap,[ --enable-cldap enable connectionless ldap], no)dnl
65 OL_ARG_ENABLE(x_compile,[ --enable-x-compile enable cross compiling],
68 dnl General "with" options
69 OL_ARG_ENABLE(dmalloc,[ --enable-dmalloc enable debug malloc support], no)dnl
71 OL_ARG_WITH(kerberos,[ --with-kerberos with Kerberos support],
72 auto, [auto k5 k4 afs yes no])
73 OL_ARG_WITH(readline,[ --with-readline with readline support],
75 OL_ARG_WITH(threads,[ --with-threads use threads],
76 auto, [auto posix mach lwp yes no manual] )
77 OL_ARG_WITH(tls,[ --with-tls with TLS/SSL support],
78 auto, [auto ssleay openssl yes no] )
79 OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding select],
80 auto, [auto yes no manual] )
85 AC_ARG_WITH(xxldapdoptions,[LDAPD Options:])
86 OL_ARG_ENABLE(ldapd,[ --enable-ldapd enable building ldapd], no)dnl
89 AC_ARG_WITH(xxslapdoptions,[SLAPD Options:])
90 OL_ARG_ENABLE(slapd,[ --enable-slapd enable building slapd], yes)dnl
91 OL_ARG_ENABLE(aclgroups,[ --enable-aclgroups enable ACL group support], auto)dnl
92 OL_ARG_ENABLE(cleartext,[ --enable-cleartext enable cleartext passwords], yes)dnl
93 OL_ARG_ENABLE(crypt,[ --enable-crypt enable crypt(3) passwords], auto)dnl
94 OL_ARG_ENABLE(modules,[ --enable-modules enable dynamic module support], no)dnl
95 OL_ARG_ENABLE(phonetic,[ --enable-phonetic enable phonetic/soundex], no)dnl
96 OL_ARG_ENABLE(rlookups,[ --enable-rlookups enable reverse lookups], auto)dnl
97 OL_ARG_ENABLE(wrappers,[ --enable-wrappers enable tcp wrapper support], no)dnl
99 dnl SLAPD Backend options
100 OL_ARG_ENABLE(bdb2,[ --enable-bdb2 enable bdb2 backend], no)dnl
101 OL_ARG_ENABLE(ldap,[ --enable-ldap enable ldap backend], no)dnl
102 OL_ARG_ENABLE(ldbm,[ --enable-ldbm enable ldbm backend], yes)dnl
103 OL_ARG_WITH(ldbm_api,[ --with-ldbm-api use LDBM API], auto,
104 [auto db2 db mdbm gdbm ndbm manual])
105 OL_ARG_WITH(ldbm_type,[ --with-ldbm-type use LDBM type], auto,
108 OL_ARG_ENABLE(passwd,[ --enable-passwd enable passwd backend], no)dnl
109 OL_ARG_ENABLE(perl,[ --enable-perl enable perl backend], no)dnl
110 OL_ARG_ENABLE(shell,[ --enable-shell enable shell backend], no)dnl
111 OL_ARG_ENABLE(tcl,[ --enable-tcl enable tcl backend], no)dnl
114 AC_ARG_WITH(xxslurpdoptions,[SLURPD Options:])
115 OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
117 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
119 dnl AM_DISABLE_SHARED
122 dnl General "enable" options
124 if test $ol_enable_dns = yes ; then
125 if test $ol_enable_referrals = no ; then
126 AC_MSG_ERROR([DNS requires --enable-referrals])
128 if test $ol_enable_referrals = auto ; then
129 AC_MSG_WARN([DNS requires referrals, adding --enable-referrals])
130 ol_enable_referrals=yes
134 if test $ol_enable_slapd = no ; then
135 dnl SLAPD was specificallly disabled
136 if test $ol_enable_bdb2 = yes ; then
137 AC_MSG_WARN([slapd disabled, ignoring --enable-bdb2 argument])
139 if test $ol_enable_ldap = yes ; then
140 AC_MSG_WARN([slapd disabled, ignoring --enable-ldap argument])
142 if test $ol_enable_ldbm = yes ; then
143 AC_MSG_WARN([slapd disabled, ignoring --enable-ldbm argument])
145 if test $ol_enable_passwd = yes ; then
146 AC_MSG_WARN([slapd disabled, ignoring --enable-passwd argument])
148 if test $ol_enable_perl = yes ; then
149 AC_MSG_WARN([slapd disabled, ignoring --enable-perl argument])
151 if test $ol_enable_shell = yes ; then
152 AC_MSG_WARN([slapd disabled, ignoring --enable-shell argument])
154 if test $ol_enable_tcl = yes ; then
155 AC_MSG_WARN([slapd disabled, ignoring --enable-tcl argument])
157 if test $ol_enable_aclgroups = yes ; then
158 AC_MSG_WARN([slapd disabled, ignoring --enable-aclgroups argument])
160 if test $ol_enable_modules = yes ; then
161 AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
163 if test $ol_enable_wrappers = yes ; then
164 AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
166 if test $ol_enable_phonetic = yes ; then
167 AC_MSG_WARN([slapd disabled, ignoring --enable-phonetic argument])
169 if test $ol_enable_rlookups = yes ; then
170 AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
172 if test $ol_with_ldbm_api != auto ; then
173 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-api argument])
175 if test $ol_with_ldbm_type != auto ; then
176 AC_MSG_WARN([slapd disabled, ignoring --with-ldbm-type argument])
178 if test $ol_enable_slurpd = yes ; then
179 AC_MSG_ERROR([slurpd requires slapd])
182 # force settings to no
191 ol_enable_aclgroups=no
193 ol_enable_phonetic=no
194 ol_enable_rlookups=no
195 ol_enable_wrappers=no
202 elif test $ol_enable_ldbm = no ; then
203 dnl SLAPD without LDBM
205 if test $ol_with_ldbm_api != auto ; then
206 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-api argument])
209 if test $ol_with_ldbm_type != auto ; then
210 AC_MSG_WARN([LDBM disabled, ignoring --with-ldbm-type argument])
213 if test $ol_enable_bdb2 = yes ; then
214 AC_MSG_ERROR([BDB2 requires --enable-ldbm])
217 if test $ol_enable_modules != yes -a \
218 $ol_enable_ldap = no -a \
219 $ol_enable_passwd = no -a \
220 $ol_enable_perl = no -a \
221 $ol_enable_shell = no -a \
222 $ol_enable_tcl = no ; then
223 AC_MSG_ERROR([slapd requires a backend])
229 elif test $ol_enable_bdb2 = yes ; then
232 if test $ol_with_ldbm_api != auto -a \
233 $ol_with_ldbm_api != db2 ; then
234 AC_MSG_ERROR([BDB2 requires LDBM API DB2])
242 if test $ol_enable_bdb2 != no ; then
243 if test $ol_with_ldbm_api != auto -a \
244 $ol_with_ldbm_api != db2 ; then
245 AC_MSG_WARN([BDB2 requires LDBM api db2 or auto])
250 if test $ol_with_ldbm_api = gdbm -a \
251 $ol_with_ldbm_type = btree ; then
252 AC_MSG_ERROR([GDBM only supports LDBM type hash])
254 if test $ol_with_ldbm_api = mdbm -a \
255 $ol_with_ldbm_type = btree ; then
256 AC_MSG_ERROR([MDBM only supports LDBM type hash])
258 if test $ol_with_ldbm_api = ndbm -a \
259 $ol_with_ldbm_type = btree ; then
260 AC_MSG_ERROR([NDBM only supports LDBM type hash])
264 if test $ol_enable_slurpd = yes ; then
265 dnl SLURPD was specifically enabled
266 if test $ol_with_threads = no ; then
267 AC_MSG_ERROR([slurpd requires threads])
296 SLAPD_MODULES_LDFLAGS=
297 SLAPD_MODULES_CPPFLAGS=
307 dnl ----------------------------------------------------------------
308 dnl Checks for programs
312 dnl The default compiler is cc (NOT gcc)
313 dnl (should check to see if 'cc' exists)
316 dnl The default CFLAGS is empty NOT whatever AC_PROG_CC sets.
317 dnl CFLAGS=${CFLAGS-""}
326 if test "$LN_H" = "cp" -a "$LN_S" = "ln"; then
330 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
331 $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
332 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
333 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
336 if test $ol_enable_modules != no ; then
337 AC_PATH_PROG(GLIBCONFIG, glib-config)
339 if test "no$GLIBCONFIG" = "no" ; then
340 if test $ol_enable_modules = yes ; then
341 AC_MSG_ERROR([could not locate glib-config])
345 SLAPD_MODULES_VERSION="`$GLIBCONFIG --version gmodule`"
346 SLAPD_MODULES_CPPFLAGS="`$GLIBCONFIG --cflags gmodule`"
347 SLAPD_MODULES_LDFLAGS="`$GLIBCONFIG --libs gmodule`"
349 dnl should check glib version
355 if test $ol_enable_perl != no ; then
356 AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)
358 if test "no$PERLBIN" = "no" ; then
359 if test $ol_enable_perl = yes ; then
360 AC_MSG_ERROR([could not locate perl])
364 SLAPD_PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e s/-lc//`"
365 SLAPD_PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
367 dnl should check perl version
374 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
375 AC_MSG_WARN([cross compiling.... some functionality will be removed.])
377 elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
378 AC_MSG_WARN([programs compiled here do run here...])
379 AC_MSG_ERROR([ if not cross compiling, use --disable-x-compile.])
381 elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
382 AC_MSG_WARN([programs compiled here do not run here...])
383 AC_MSG_ERROR([ if cross compiling, add --enable-x-compile.])
386 dnl Checks for UNIX Variants
391 dnl BeOS requires -lbe -lroot -lnet
392 AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])
394 dnl Checks for system services
400 AC_DEFINE_UNQUOTED( EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
402 dnl OpenLDAP requires STDC features
404 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
405 AC_MSG_ERROR([OpenLDAP requires compiler to support STDC prototypes.])
410 dnl Checks for libraries
413 dnl Likely combinations:
414 dnl -lsocket [ -lnsl_s | -lnsl ]
417 AC_CHECK_FUNC(socket, :, [
419 dnl hopefully we won't include too many libraries
421 AC_CHECK_LIB(socket, main)
422 AC_CHECK_LIB(net, main)
423 AC_CHECK_LIB(net, socket)
424 AC_CHECK_LIB(nsl_s, main)
425 AC_CHECK_LIB(nsl, main)
426 AC_CHECK_LIB(inet, socket)
427 AC_CHECK_LIB(gen, main)
430 dnl Check for resolver routines
431 AC_CHECK_FUNCS(res_search)
432 if test $ac_cv_func_res_search = "no" ; then
433 AC_CHECK_LIB(bind, res_search)
434 if test "$ac_cv_lib_bind_res_search" = "yes" ; then
435 AC_DEFINE(HAVE_RES_SEARCH,1)
437 AC_CHECK_LIB(resolv, res_search)
438 if test "$ac_cv_lib_resolv_res_search" = "yes" ; then
439 AC_DEFINE(HAVE_RES_SEARCH,1)
444 dnl HP-UX requires -lV3
445 AC_CHECK_LIB(V3, sigset)
447 AC_CHECK_HEADERS( regex.h )
448 if test "$ac_cv_header_regex_h" != yes ; then
449 AC_MSG_ERROR([POSIX regex.h required.])
451 AC_CHECK_FUNC(regfree, :, AC_MSG_ERROR([POSIX regex required.]))
453 AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))
456 dnl (if this detection becomes permenent, it and the select() detection
457 dnl should be done before the yielding select test)
458 AC_FUNC_SELECT_ARGTYPES
462 if test $ol_enable_ldapd != no ; then
463 AC_MSG_WARN([ldapd support deprecated. Manual intervention required.])
465 dnl look for ISODE libraries
466 AC_CHECK_LIB(xtpp, main, [
468 AC_DEFINE(HAVE_XTPP,1, [define if you have -lxttp])
469 LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi"
470 ],:,[-lxtdsap -lxtisode -losi])
471 AC_CHECK_LIB(dsap, main, [
473 AC_DEFINE(HAVE_DSAP,1, [define if you have -ldsap])
474 LDAPD_LIBS="$LDAPD_LIBS -ldsap"
476 AC_CHECK_LIB(isode, main, [
478 AC_DEFINE(HAVE_ISODE,1, [define if you have -lisode])
479 LDAPD_LIBS="$LDAPD_LIBS -lisode"
483 if test $ol_link_isode != no; then
484 AC_CHECK_LIB(pp, main, [
485 AC_DEFINE(HAVE_PP,1, [define if you have -lpp])
486 LDAPD_LIBS="-lpp $LDAPD_LIBS"
489 AC_PATH_PROG(PEPSY, pepsy)
493 dnl check for kerberos
497 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
498 AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
500 if test $ac_cv_header_kerberosIV_krb_h = yes ; then
501 AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
504 if test $have_k5 = yes ; then
505 ol_with_kerberos=found
508 KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
510 LIBS="$KRB_LIBS $LIBS"
512 AC_CACHE_CHECK([for des_debug in Kerberos libraries],
513 [ol_cv_var_des_debug], [
516 LIBS="$KRB_LIBS $LIBS"
518 #include <kerberosIV/krb.h>
519 #include <kerberosIV/des.h>
520 extern int des_debug;
523 ], ol_cv_var_des_debug=yes, ol_cv_var_des_debug=no)
528 if test $ol_cv_var_des_debug = yes ; then
529 AC_DEFINE(HAVE_DES_DEBUG,1,
530 [define if you have Kerberos des_debug])
538 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
539 AC_CHECK_HEADERS(krb.h des.h)
541 if test $ac_cv_header_krb_h = yes ; then
542 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
544 if test $have_k4 = yes ; then
545 ol_with_kerberos=found
548 KRB_LIBS="-lkrb -ldes"
553 if test $ol_link_kerberos = yes ; then
554 AC_DEFINE(HAVE_KERBEROS, 1, [define if you have Kerberos])
558 dnl Check for SSL/TLS
561 if test $ol_with_tls != no ; then
563 AC_CHECK_HEADERS(ssl.h)
565 if test $ac_cv_header_ssl_h = yes ; then
566 AC_CHECK_LIB(ssl, SSLeay_add_ssl_algorithms,
572 if test $have_ssleay = no ; then
573 AC_CHECK_LIB(ssl, ssl3_accept,
575 need_rsaref=yes], [have_ssleay=no],
576 [-lcrypto -lRSAglue -lrsaref])
579 if test $have_ssleay = yes ; then
583 AC_DEFINE(HAVE_SSLEAY, 1,
584 [define if you have SSLeay or OpenSSL])
586 if test $need_rsaref = yes; then
587 AC_DEFINE(HAVE_RSAREF, 1,
588 [define if you have RSAref])
590 TLS_LIBS="-lssl -lcrypto -lRSAglue -lrsaref"
592 TLS_LIBS="-lssl -lcrypto"
598 if test $ol_link_tls = yes ; then
599 AC_DEFINE(HAVE_TLS, 1, [define if you have TLS])
602 dnl Tests for reentrant functions necessary to build a
603 dnl thread_safe -lldap.
606 gethostbyname_r gethostbyaddr_r \
609 if test "$ac_cv_func_ctime_r" = no ; then
610 ol_cv_func_ctime_r_nargs=0
612 OL_FUNC_CTIME_R_NARGS
613 dnl OL_FUNC_CTIME_R_TYPE
616 if test "$ac_cv_func_gethostbyname_r" = yes ; then
617 OL_FUNC_GETHOSTBYNAME_R_NARGS
619 ol_cv_func_gethostbyname_r_nargs=0
622 if test "$ac_cv_func_gethostbyaddr_r" = yes ; then
623 OL_FUNC_GETHOSTBYADDR_R_NARGS
625 ol_cv_func_gethostbyaddr_r_nargs=0
628 if test "$ac_cv_func_ctime_r" = yes \
629 -a "$ol_cv_func_ctime_r_nargs" -ge 2 \
630 -a "$ol_cv_func_ctime_r_nargs" -le 3 \
631 -a "$ac_cv_func_gethostbyname_r" = yes \
632 -a "$ol_cv_func_gethostbyname_r_nargs" -ge 5 \
633 -a "$ol_cv_func_gethostbyname_r_nargs" -le 6 \
634 -a "$ac_cv_func_gethostbyaddr_r" = yes \
635 -a "$ol_cv_func_gethostbyaddr_r_nargs" -ge 5 \
636 -a "$ol_cv_func_gethostbyaddr_r_nargs" -le 6 \
639 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_REENTRANT,1)
643 if test $ol_with_threads = auto -o $ol_with_threads = yes \
644 -o $ol_with_threads = posix ; then
646 AC_CHECK_HEADERS(pthread.h sched.h)
648 if test $ac_cv_header_pthread_h = yes ; then
649 OL_POSIX_THREAD_VERSION
651 if test $ol_cv_pthread_version = final ; then
652 AC_DEFINE(HAVE_PTHREADS_FINAL,1,
653 [define if pthreads API compatible with final spec])
654 elif test $ol_cv_pthread_version = draft4 ; then
655 AC_DEFINE(HAVE_PTHREADS_D4,1,
656 [define if pthreads API compatible with draft4 spec])
658 AC_MSG_ERROR([unknown pthread version])
661 # consider threads found
662 ol_with_threads=found
664 OL_HEADER_LINUX_THREADS
666 dnl Now the hard part, how to link?
668 dnl currently supported checks:
670 dnl Check for no flags
671 dnl pthread_create() in $LIBS
673 dnl Check special pthread (final) flags
674 dnl pthread_create() with -mt (Solaris)
675 dnl pthread_create() with -kthread (FreeBSD)
676 dnl pthread_create() with -pthread (FreeBSD/Digital Unix)
677 dnl pthread_create() with -pthreads (?)
678 dnl pthread_create() with -thread (?)
680 dnl Check pthread (final) libraries
681 dnl pthread_mutex_unlock() in -lpthread -lmach -lexc -lc_r (OSF/1)
682 dnl pthread_mutex_lock() in -lpthread -lmach -lexc (OSF/1)
683 dnl (skipped) pthread_mutex_trylock() in -lpthread -lexc (OSF/1)
684 dnl pthread_join() -Wl,-woff,85 -lpthread (IRIX)
685 dnl pthread_create() in -lpthread (many)
686 dnl pthread_create() in -lc_r (FreeBSD)
688 dnl Check pthread (draft4) flags (depreciated)
689 dnl pthread_create() with -threads (OSF/1)
691 dnl Check pthread (draft4) libraries (depreciated)
692 dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
693 dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
694 dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
695 dnl pthread_create() in -lpthreads (many)
698 dnl pthread_create in $LIBS
699 AC_MSG_CHECKING([for pthread_create in default libraries])
700 AC_CACHE_VAL(ol_cv_pthread_create,[
704 #define NULL (void*)0
710 return (void *) (p == NULL);
720 /* make sure pthread_create() isn't just a stub */
722 status = pthread_create(&t, pthread_attr_default, task, NULL);
724 status = pthread_create(&t, NULL, task, NULL);
727 if( status ) return status;
729 /* make sure pthread_detach() isn't just a stub */
731 status = pthread_detach( &t );
733 status = pthread_detach( t );
736 if( status ) return status;
741 [ol_cv_pthread_create=yes],
742 [ol_cv_pthread_create=no],
744 ol_cv_pthread_create=yes])])
745 AC_MSG_RESULT($ol_cv_pthread_create)
747 if test $ol_cv_pthread_create != no ; then
748 ol_link_threads=posix
752 OL_PTHREAD_TRY_LINK([-mt], [ol_cv_pthread_mt])
753 OL_PTHREAD_TRY_LINK([-kthread], [ol_cv_pthread_kthread])
754 OL_PTHREAD_TRY_LINK([-pthread], [ol_cv_pthread_pthread])
755 OL_PTHREAD_TRY_LINK([-pthreads],[ol_cv_pthread_pthreads])
756 OL_PTHREAD_TRY_LINK([-thread], [ol_cv_pthread_thread])
758 OL_PTHREAD_TRY_LINK([-lpthread -lmach -lexc -lc_r],
759 [ol_cv_pthread_lpthread_lmach_lexc_lc_r])
760 OL_PTHREAD_TRY_LINK([-lpthread -lmach -lexc],
761 [ol_cv_pthread_lpthread_lmach_lexc])
762 dnl OL_PTHREAD_TRY_LINK([-lpthread -lexc],
763 dnl [ol_cv_pthread_lpthread_lexc])
765 OL_PTHREAD_TRY_LINK([-lpthread -Wl,-woff,85],
766 [ol_cv_pthread_lib_lpthread_woff])
768 OL_PTHREAD_TRY_LINK([-lpthread],[ol_cv_pthread_lpthread])
769 OL_PTHREAD_TRY_LINK([-lc_r], [ol_cv_pthread_lc_r])
771 OL_PTHREAD_TRY_LINK([-threads], [ol_cv_pthread_threads])
773 OL_PTHREAD_TRY_LINK([-lpthreads -lmach -lexc -lc_r],
774 [ol_cv_pthread_lpthreads_lmach_lexc_lc_r])
775 OL_PTHREAD_TRY_LINK([-lpthreads -lmach -lexc],
776 [ol_cv_pthread_lpthreads_lmach_lexc])
777 OL_PTHREAD_TRY_LINK([-lpthreads -lexc],
778 [ol_cv_pthread_lpthreads_lexc])
780 OL_PTHREAD_TRY_LINK([-lpthreads], [ol_cv_pthread_lib_lpthreads])
782 if test $ol_link_threads != no ; then
783 AC_DEFINE(HAVE_PTHREADS,1,
784 [define if you have POSIX Threads])
786 LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
789 save_CPPFLAGS="$CPPFLAGS"
791 LIBS="$LTHREAD_LIBS $LIBS"
793 dnl All POSIX Thread (final) implementations should have
794 dnl sched_yield instead of pthread yield.
796 AC_CHECK_FUNCS(sched_yield pthread_yield)
798 if test $ac_cv_func_sched_yield = no -a \
799 $ac_cv_func_pthread_yield = no ; then
800 dnl Digital UNIX has sched_yield() in -lrt
801 AC_CHECK_LIB(rt, sched_yield,
802 [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
803 AC_DEFINE(HAVE_SCHED_YIELD,1)
804 ac_cv_func_sched_yield=yes],
805 [ac_cv_func_sched_yield=no])
807 if test $ac_cv_func_sched_yield = no -a \
808 $ac_cv_func_pthread_yield = no ; then
809 dnl Solaris has sched_yield() stub in -lposix4
810 dnl but we'll use thr_yield instead.
811 AC_CHECK_FUNCS(thr_yield)
813 if test $ac_cv_func_sched_yield = no -a \
814 $ac_cv_func_pthread_yield = no -a \
815 "$ac_cv_func_thr_yield" = no ; then
816 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
819 dnl Check functions for compatibility
820 AC_CHECK_FUNCS(pthread_kill)
822 dnl Check for pthread_detach with <pthread.h> inclusion
823 dnl as it's symbol may have been mangled.
824 AC_CACHE_CHECK([for pthread_detach with <pthread.h>],
825 [ol_cv_func_pthread_detach], [
830 #define NULL (void*)0
833 [pthread_detach(NULL);],
834 [ol_cv_func_pthread_detach=yes],
835 [ol_cv_func_pthread_detach=no])
838 if test $ol_cv_func_pthread_detach = no ; then
839 AC_MSG_ERROR([could not locate pthread_detach()])
842 AC_DEFINE(HAVE_PTHREAD_DETACH,1,
843 [define if you have pthread_detach function])
845 dnl Check for setconcurreny functions
847 pthread_setconcurrency \
848 pthread_getconcurrency \
856 if test $ol_cv_linux_threads = error; then
857 AC_MSG_ERROR([LinuxThreads header/library mismatch]);
860 AC_MSG_CHECKING([if pthread_create() works])
861 AC_CACHE_VAL(ol_cv_pthread_create_works,[
865 #define NULL (void*)0
871 return (void *) (p == NULL);
880 exit(pthread_create(&t, pthread_attr_default, task, NULL));
882 exit(pthread_create(&t, NULL, task, NULL));
886 [ol_cv_pthread_create_works=yes],
887 [ol_cv_pthread_create_works=no],
889 ol_cv_pthread_create_works=yes])])
890 AC_MSG_RESULT($ol_cv_pthread_create_works)
892 if test $ol_cv_pthread_create_works = no ; then
893 AC_MSG_ERROR([pthread_create is not usable, check environment settings])
896 dnl Check if select causes an yield
897 if test $ol_with_yielding_select = auto ; then
898 AC_MSG_CHECKING([if select yields when using pthreads])
899 AC_CACHE_VAL(ol_cv_pthread_select_yields,[
901 #include <sys/types.h>
902 #include <sys/time.h>
906 #define NULL (void*) 0
909 static int fildes[2];
923 FD_SET(fildes[0], &rfds);
925 /* we're not interested in any fds */
926 i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
933 exit(0); /* if we exit here, the select blocked the whole process */
942 /* create a pipe to select */
943 if(pipe(&fildes[0])) {
948 #ifdef HAVE_PTHREAD_SETCONCURRENCY
949 (void) pthread_setconcurrency(2);
951 #ifdef HAVE_THR_SETCONCURRENCY
952 /* Set Solaris LWP concurrency to 2 */
953 thr_setconcurrency(2);
958 pthread_create(&t, pthread_attr_default, task, NULL);
960 pthread_create(&t, NULL, task, NULL);
964 sched_yield(); /* make sure task runs first */
966 #ifdef HAVE_PTHREAD_YIELD
967 pthread_yield(); /* make sure task runs first */
973 [ol_cv_pthread_select_yields=no],
974 [ol_cv_pthread_select_yields=yes], [
975 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])])])
976 AC_MSG_RESULT($ol_cv_pthread_select_yields)
978 if test $ol_cv_pthread_select_yields = yes ; then
979 ol_with_yielding_select=yes
984 CPPFLAGS="$save_CPPFLAGS"
987 AC_MSG_ERROR([could not link with POSIX Threads])
991 if test $ol_with_threads = posix ; then
992 AC_MSG_ERROR([could not locate POSIX Threads])
996 if test $ol_with_threads = auto -o $ol_with_threads = yes \
997 -o $ol_with_threads = mach ; then
999 dnl check for Mach CThreads
1000 AC_CHECK_HEADERS(mach/cthreads.h)
1001 if test $ac_cv_header_mach_cthreads_h = yes ; then
1002 ol_with_threads=found
1004 dnl check for cthread support in current $LIBS
1005 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
1007 if test $ol_link_threads = no ; then
1009 dnl this test needs work
1010 AC_CACHE_CHECK([for cthread_fork with -all_load],
1011 [ol_cv_cthread_all_load], [
1014 LIBS="-all_load $LIBS"
1015 AC_TRY_LINK([#include <mach/cthreads.h>],[
1016 cthread_fork((void *)0, (void *)0);
1017 ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
1018 dnl restore the LIBS
1022 if test $ol_cv_cthread_all_load = yes ; then
1023 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
1024 ol_link_threads=mach
1028 if test $ol_link_threads != no ; then
1029 : check for cthread specific functionality here
1030 AC_DEFINE(HAVE_MACH_CTHREADS,1,
1031 [define if you have Mach Cthreads])
1033 AC_MSG_ERROR([could not link with Mach CThreads])
1037 if test $ol_with_threads = mach ; then
1038 AC_MSG_ERROR([could not locate Mach CThreads])
1042 if test $ol_with_threads = auto -o $ol_with_threads = yes \
1043 -o $ol_with_threads = lwp ; then
1045 dnl check for SunOS5 LWP
1046 AC_CHECK_HEADERS(thread.h synch.h)
1047 if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
1048 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
1050 if test $have_thr = yes ; then
1051 AC_DEFINE(HAVE_THR,1,
1052 [if you have Solaris LWP (thr) package])
1053 LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
1056 if test $ol_with_yielding_select = auto ; then
1057 ol_with_yielding_select=yes
1060 dnl Check for setconcurreny functions
1062 thr_setconcurrency \
1063 thr_getconcurrency \
1068 dnl check for SunOS4 LWP
1069 AC_CHECK_HEADERS(lwp/lwp.h)
1070 if test $ac_cv_header_lwp_lwp_h = yes ; then
1071 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
1073 if test $have_lwp = yes ; then
1074 AC_DEFINE(HAVE_LWP,1,
1075 [if you have SunOS LWP package])
1076 LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
1079 if test $ol_with_yielding_select = auto ; then
1080 ol_with_yielding_select=no
1086 if test $ol_with_yielding_select = yes ; then
1087 AC_DEFINE(HAVE_YIELDING_SELECT,1,
1088 [define if select implicitly yields])
1091 if test $ol_with_threads = manual ; then
1092 dnl User thinks he can manually configure threads.
1095 AC_MSG_WARN([thread defines and link options must be set manually])
1097 AC_CHECK_HEADERS(pthread.h sched.h)
1098 AC_CHECK_FUNCS(sched_yield pthread_yield)
1099 OL_HEADER_LINUX_THREADS
1101 AC_CHECK_HEADERS(mach/cthreads.h)
1102 AC_CHECK_HEADERS(lwp/lwp.h)
1103 AC_CHECK_HEADERS(thread.h synch.h)
1106 if test $ol_link_threads != no ; then
1107 dnl needed to get reentrant/threadsafe versions
1109 AC_DEFINE(REENTRANT,1)
1110 AC_DEFINE(_REENTRANT,1)
1111 AC_DEFINE(THREAD_SAFE,1)
1112 AC_DEFINE(_THREAD_SAFE,1)
1113 AC_DEFINE(THREADSAFE,1)
1114 AC_DEFINE(_THREADSAFE,1)
1116 dnl The errno declaration may dependent upon _REENTRANT.
1117 dnl If it does, we must link with thread support.
1118 AC_CACHE_CHECK([for thread specific errno],
1119 [ol_cv_errno_thread_specific], [
1120 AC_TRY_LINK([#include <errno.h>], [errno = 0;],
1121 [ol_cv_errno_thread_specific=yes],
1122 [ol_cv_errno_thread_specific=no])
1125 dnl The h_errno declaration may dependent upon _REENTRANT.
1126 dnl If it does, we must link with thread support.
1127 AC_CACHE_CHECK([for thread specific h_errno],
1128 [ol_cv_h_errno_thread_specific], [
1129 AC_TRY_LINK([#include <netdb.h>], [h_errno = 0;],
1130 [ol_cv_h_errno_thread_specific=yes],
1131 [ol_cv_h_errno_thread_specific=no])
1134 if test $ol_cv_errno_thread_specific != yes \
1135 -o $ol_cv_h_errno_thread_specific != yes ; then
1136 LIBS="$LTHREAD_LIBS $LIBS"
1140 dnl When in thread environment, use
1141 dnl #if defined( HAVE_REENTRANT_FUNCTIONS ) \
1142 dnl || defined( HAVE_FUNC_R )
1145 dnl # if defined( HAVE_THREADS )
1149 dnl # if defined( HAVE_THREADS )
1154 dnl HAVE_REENTRANT_FUNCTIONS is derived from:
1155 dnl _POSIX_REENTRANT_FUNCTIONS
1156 dnl _POSIX_THREAD_SAFE_FUNCTIONS
1157 dnl _POSIX_THREADSAFE_FUNCTIONS
1159 dnl and is currently defined in lthread.h
1161 dnl HAVE_THREADS is defined by lthread.h iff -UNO_THREADS
1163 dnl libldap/*.c should only include <lthread.h> iff
1164 dnl LDAP_R_COMPILE is defined. ie:
1165 dnl #ifdef LDAP_R_COMPILE
1166 dnl # include LDAP_R_COMPILE
1169 dnl LDAP_R_COMPILE is defined by libldap_r/Makefile.in
1170 dnl specifically for compiling the threadsafe version of
1171 dnl the ldap library (-lldap_r).
1173 dnl dnl check for reentrant/threadsafe functions
1175 dnl dnl note: these should only be used when linking
1176 dnl dnl with $LTHREAD_LIBS
1178 dnl save_CPPFLAGS="$CPPFLAGS"
1179 dnl save_LIBS="$LIBS"
1180 dnl LIBS="$LTHREAD_LIBS $LIBS"
1181 dnl AC_CHECK_FUNCS( \
1183 dnl gethostbyaddr_r gethostbyname_r \
1184 dnl feof_unlocked unlocked_feof \
1185 dnl putc_unlocked unlocked_putc \
1186 dnl flockfile ftrylockfile \
1188 dnl CPPFLAGS="$save_CPPFLAGS"
1189 dnl LIBS="$save_LIBS"
1192 if test $ol_link_threads = no ; then
1193 if test $ol_with_threads = yes ; then
1194 AC_MSG_ERROR([no suitable thread support])
1197 if test $ol_with_threads = auto ; then
1198 AC_MSG_WARN([no suitable thread support, disabling threads])
1202 AC_DEFINE(NO_THREADS,1,
1203 [define if you have (or want) no threads])
1207 if test $ol_link_threads != no ; then
1208 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE,1)
1211 dnl ----------------------------------------------------------------
1214 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
1217 if test $ol_cv_berkeley_db2 = yes ; then
1219 ol_with_ldbm_api=db2
1221 if test $ol_with_ldbm_type = hash ; then
1222 AC_DEFINE(LDBM_USE_DBHASH,1)
1224 AC_DEFINE(LDBM_USE_DBBTREE,1)
1227 dnl $ol_cv_lib_db2 should be yes or -ldb
1228 dnl (it could be no, but that would be an error
1229 if test $ol_cv_lib_db2 != yes ; then
1230 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
1236 if test $ol_link_ldbm = db2 -a $ol_enable_bdb2 != no ; then
1240 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
1243 if test $ol_cv_berkeley_db = yes ; then
1247 if test $ol_with_ldbm_type = hash ; then
1248 AC_DEFINE(LDBM_USE_DBHASH,1)
1250 AC_DEFINE(LDBM_USE_DBBTREE,1)
1253 dnl $ol_cv_lib_db should be yes or -ldb
1254 dnl (it could be no, but that would be an error
1255 if test $ol_cv_lib_db != yes ; then
1256 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
1261 if test $ol_with_ldbm_api = manual ; then
1262 dnl User thinks he can manually configure LDBM api.
1265 AC_MSG_WARN([LDBM defines and link options must be set manually])
1267 AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
1270 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
1271 AC_MSG_WARN(Could not find LDBM with BTREE support)
1272 ol_with_ldbm_api=none
1275 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
1278 if test $ol_cv_mdbm = yes ; then
1280 ol_with_ldbm_api=mdbm
1281 if test $ol_cv_lib_mdbm != yes ; then
1282 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_mdbm"
1287 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
1290 if test $ol_cv_gdbm = yes ; then
1292 ol_with_ldbm_api=gdbm
1294 if test $ol_cv_lib_gdbm != yes ; then
1295 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
1300 if test $ol_with_ldbm_api = auto ; then
1301 AC_MSG_WARN([skipping automatic checking for NDBM, must be manually enabled.])
1302 elif test $ol_with_ldbm_api = ndbm ; then
1305 if test $ol_cv_ndbm = yes ; then
1307 ol_with_ldbm_api=ndbm
1309 if test $ol_cv_lib_ndbm != yes ; then
1310 LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
1315 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
1316 AC_MSG_WARN(could not find suitable LDBM backend)
1317 if test $ol_enable_ldbm = yes ; then
1318 AC_MSG_ERROR(select appropriate LDBM options or disable)
1321 AC_MSG_WARN(disabling LDBM)
1325 if test $ol_enable_wrappers != no ; then
1326 AC_CHECK_HEADERS(tcpd.h)
1328 if test $ac_cv_header_tcpd_h != yes ; then
1331 AC_CHECK_LIB(wrap, main,
1332 [have_wrappers=yes], [have_wrappers=no])
1335 if test $have_wrappers = yes ; then
1336 AC_DEFINE(HAVE_TCPD,1, [define if you have -lwrap])
1337 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
1339 dnl We add another check for -lnsl since some libwrap's
1340 dnl need it, but it isn't always included from above
1341 AC_CHECK_LIB(nsl, main)
1343 AC_MSG_WARN(could not find -lwrap)
1344 if test $ol_enable_wrappers = yes ; then
1345 AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
1348 AC_MSG_WARN(disabling wrappers support)
1349 ol_enable_wrappers=no
1353 if test $ol_enable_syslog != no ; then
1354 AC_CHECK_FUNC(openlog)
1355 if test $ac_cv_func_openlog = no -a $ol_enable_syslog = yes; then
1356 AC_MSG_ERROR(could not find syslog, select appropriate options or disable)
1358 ol_enable_syslog=$ac_cv_func_openlog
1361 if test $ol_enable_dmalloc != no ; then
1362 AC_CHECK_HEADERS(dmalloc.h)
1363 AC_CHECK_LIB(dmalloc, dmalloc_shutdown)
1366 if test $ol_enable_tcl != no ; then
1367 AC_CHECK_HEADERS(tcl.h)
1369 if test $ac_cv_header_tcl_h != yes ; then
1372 AC_CHECK_LIB(tcl,main,
1373 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl"],
1376 if test $have_tcl != yes; then
1377 AC_CHECK_LIB(tcl7.6,main,
1378 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl7.6"],
1382 if test $have_tcl != yes; then
1383 AC_CHECK_LIB(tcl8.0,main,
1384 [have_tcl=yes; SLAPD_LIBS="$SLAPD_LIBS -ltcl8.0"],
1389 if test $have_tcl != yes ; then
1390 AC_MSG_WARN([could not find -ltcl])
1391 if test $ol_enable_tcl = yes ; then
1392 AC_MSG_ERROR([could not find tcl, select appropriate options or disable])
1399 # ud needs termcap (should insert check here)
1401 AC_CHECK_HEADERS(termcap.h ncurses.h)
1403 if test $ol_link_termcap = no ; then
1404 AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
1405 if test $have_termcap = yes ; then
1406 AC_DEFINE(HAVE_TERMCAP, 1, [define if you have -ltermcap])
1408 TERMCAP_LIBS=-ltermcap
1412 if test $ol_link_termcap = no ; then
1413 AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
1414 if test $have_ncurses = yes ; then
1415 AC_DEFINE(HAVE_NCURSES, 1, [define if you have -lncurses])
1417 TERMCAP_LIBS=-lncurses
1421 if test $ol_link_termcap = no ; then
1422 AC_DEFINE(NO_TERMCAP,1, [define if you have no termcap support])
1427 dnl Check for GNU readline
1430 if test $ol_with_readline != no ; then
1431 AC_CHECK_HEADERS(readline/readline.h readline/history.h)
1433 if test $ac_cv_header_readline_readline_h = yes ; then
1435 LIBS="$TERMCAP_LIBS $LIBS"
1436 AC_CHECK_LIB(readline, readline,
1437 [have_readline=yes], [have_readline=no])
1440 if test $have_readline = yes ; then
1441 ol_with_readline=found
1442 ol_link_readline=yes
1444 READLINE_LIBS="-lreadline"
1449 if test $ol_link_readline = yes ; then
1450 AC_DEFINE(HAVE_READLINE, 1, [define if you have -lreadline])
1454 # FreeBSD (and others) have crypt(3) in -lcrypt
1455 if test $ol_enable_crypt != no ; then
1456 AC_CHECK_FUNC(crypt, [have_crypt=yes], [
1457 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
1458 have_crypt=yes], [have_crypt=no])])
1460 if test $have_crypt = yes ; then
1461 AC_DEFINE(HAVE_CRYPT,1)
1463 AC_MSG_WARN(could not find crypt)
1464 if test $ol_enable_crypt = yes ; then
1465 AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
1468 AC_MSG_WARN(disabling crypt support)
1473 # FreeBSD (and others) have setproctitle(3) in -lutil
1474 if test $ol_enable_proctitle != no ; then
1475 AC_CHECK_FUNC(setproctitle, [have_setproctitle=yes], [
1476 AC_CHECK_LIB(util, setproctitle,
1477 [have_setproctitle=yes
1478 LUTIL_LIBS="$LUTIL_LIBS -lutil"],
1479 [have_setproctitle=no
1480 LIBOBJS="$LIBOBJS setproctitle.o"])])
1482 if test $have_setproctitle = yes ; then
1483 AC_DEFINE(HAVE_SETPROCTITLE,1)
1487 dnl ----------------------------------------------------------------
1488 dnl Checks for header files.
1491 if test $ol_cv_header_stdc != yes; then
1492 AC_MSG_WARN([could not locate Standard C compliant headers])
1497 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
1498 if test $am_cv_sys_posix_termios = yes ; then
1499 AC_DEFINE(HAVE_POSIX_TERMIOS,1,
1500 [define if you have POSIX termios])
1543 dnl ----------------------------------------------------------------
1544 dnl Checks for typedefs, structures, and compiler characteristics.
1545 AC_TYPE_GETGROUPS dnl requires AC_TYPE_UID_T
1551 OL_TYPE_SIG_ATOMIC_T
1553 AC_STRUCT_ST_BLKSIZE
1556 OL_STRUCT_PASSWD_PW_GECOS
1562 if test $cross_compiling = yes ; then
1563 AC_DEFINE(CROSS_COMPILING, 1, [define if cross compiling])
1566 AC_CHECK_SIZEOF(short)
1567 AC_CHECK_SIZEOF(int)
1568 AC_CHECK_SIZEOF(long)
1571 dnl ----------------------------------------------------------------
1572 dnl Checks for library functions.
1574 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
1578 dnl we should use vfork instead of fork in a number of places...
1582 if test $ac_cv_func_vprintf = yes ; then
1583 dnl check for vsnprintf
1584 AC_CHECK_FUNCS(vsnprintf vsprintf)
1628 dnl We actually may need to replace more than this.
1629 AC_REPLACE_FUNCS(getopt tempnam)
1631 dnl ----------------------------------------------------------------
1632 # Check Configuration
1635 dnl ----------------------------------------------------------------
1636 dnl Sort out defines
1638 if test "$ol_enable_debug" != no ; then
1639 AC_DEFINE(LDAP_DEBUG,1)
1641 if test "$ol_enable_syslog" = yes ; then
1642 AC_DEFINE(LDAP_SYSLOG,1)
1644 if test "$ol_enable_libui" = yes ; then
1645 AC_DEFINE(LDAP_LIBUI,1)
1647 if test "$ol_enable_cache" = no ; then
1648 AC_DEFINE(LDAP_NOCACHE,1)
1650 if test "$ol_enable_dns" != no ; then
1651 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_DNS,LDAP_VENDOR_VERSION)
1653 if test "$ol_enable_proctitle" != no ; then
1654 AC_DEFINE(LDAP_PROCTITLE,1)
1656 if test "$ol_enable_referrals" != no ; then
1657 AC_DEFINE(LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS,LDAP_VENDOR_VERSION)
1659 if test "$ol_enable_cldap" != no ; then
1660 AC_DEFINE(LDAP_CONNECTIONLESS,1)
1663 if test "$ol_enable_aclgroups" != no ; then
1664 AC_DEFINE(SLAPD_ACLGROUPS,1)
1666 if test "$ol_enable_crypt" != no ; then
1667 AC_DEFINE(SLAPD_CRYPT,1)
1669 if test "$ol_enable_cleartext" != no ; then
1670 AC_DEFINE(SLAPD_CLEARTEXT,1)
1672 if test "$ol_enable_phonetic" != no ; then
1673 AC_DEFINE(SLAPD_PHONETIC,1)
1675 if test "$ol_enable_rlookups" != no ; then
1676 AC_DEFINE(SLAPD_RLOOKUPS,1)
1679 if test "$ol_link_modules" != no ; then
1680 AC_DEFINE(SLAPD_MODULES,1)
1684 if test "$ol_link_bdb2" != no ; then
1685 AC_DEFINE(SLAPD_BDB2,1)
1690 if test "$ol_enable_ldap" != no ; then
1691 AC_DEFINE(SLAPD_LDAP,1)
1696 if test "$ol_link_ldbm" != no ; then
1697 AC_DEFINE(SLAPD_LDBM,1)
1702 if test "$ol_enable_passwd" != no ; then
1703 AC_DEFINE(SLAPD_PASSWD,1)
1708 if test "$ol_link_perl" != no ; then
1709 AC_DEFINE(SLAPD_PERL,1)
1714 if test "$ol_enable_shell" != no ; then
1715 AC_DEFINE(SLAPD_SHELL,1)
1720 if test "$ol_enable_tcl" != no ; then
1721 AC_DEFINE(SLAPD_TCL,1)
1726 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
1727 $BUILD_SLAPD = yes ; then
1731 if test "$ol_link_isode" != no ; then
1735 dnl ----------------------------------------------------------------
1737 AC_SUBST(BUILD_LDAPD)
1738 AC_SUBST(BUILD_SLAPD)
1739 AC_SUBST(BUILD_BDB2)
1740 AC_SUBST(BUILD_LDAP)
1741 AC_SUBST(BUILD_LDBM)
1742 AC_SUBST(BUILD_PASSWD)
1743 AC_SUBST(BUILD_PERL)
1744 AC_SUBST(BUILD_SHELL)
1746 AC_SUBST(BUILD_SLURPD)
1749 AC_SUBST(LDAPD_LIBS)
1750 AC_SUBST(SLAPD_LIBS)
1751 AC_SUBST(SLURPD_LIBS)
1753 AC_SUBST(LTHREAD_LIBS)
1754 AC_SUBST(LUTIL_LIBS)
1756 AC_SUBST(SLAPD_MODULES_CPPFLAGS)
1757 AC_SUBST(SLAPD_MODULES_LDFLAGS)
1759 AC_SUBST(SLAPD_PERL_CPPFLAGS)
1760 AC_SUBST(SLAPD_PERL_LDFLAGS)
1763 AC_SUBST(READLINE_LIBS)
1764 AC_SUBST(TERMCAP_LIBS)
1767 dnl ----------------------------------------------------------------
1772 Makefile:build/top.mk:Makefile.in:build/dir.mk \
1773 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
1774 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
1775 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
1776 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
1777 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
1778 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
1779 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
1780 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
1781 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
1782 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
1783 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
1784 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
1785 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
1786 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
1787 include/Makefile:build/top.mk:include/Makefile.in \
1788 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk \
1789 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk \
1790 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk \
1791 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk \
1792 libraries/libldap_r/Makefile:build/top.mk:libraries/libldap_r/Makefile.in:build/lib.mk:build/lib-shared.mk \
1793 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk \
1794 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk \
1795 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \
1796 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
1797 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
1798 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
1799 servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/srv.mk \
1800 servers/slapd/back-ldap/Makefile:build/top.mk:servers/slapd/back-ldap/Makefile.in:build/srv.mk \
1801 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
1802 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
1803 servers/slapd/back-perl/Makefile:build/top.mk:servers/slapd/back-perl/Makefile.in:build/srv.mk \
1804 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
1805 servers/slapd/back-tcl/Makefile:build/top.mk:servers/slapd/back-tcl/Makefile.in:build/srv.mk \
1806 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
1807 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
1808 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
1809 tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk \
1810 tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk \
1811 contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
1812 contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
1813 contrib/web_ldap/Makefile:build/top.mk:contrib/web_ldap/Makefile.in:build/rules.mk \
1816 echo Please \"make depend\" to build dependencies