]> git.sur5r.net Git - openldap/blob - configure.in
Port fixed ndn handling to 1.1. will likely NOT fix ITS#29 or ITS#53
[openldap] / configure.in
1 dnl
2 dnl Copyright 1998,1999 The OpenLDAP Foundation.  All Rights Reserved.
3 dnl 
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.
8 dnl
9
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,[1.1], [no ac_define])dnl
14
15 dnl Do not use AutoConf 2.12; it produces a configuration script
16 dnl that causes an "internal 2K buffer" error on HPUX when run
17 dnl with /bin/sh.  Autoconf 2.10 seems to be okay.
18 AC_PREREQ(2.10)dnl Required Autoconf version
19
20 AC_CONFIG_HEADER(include/portable.h)dnl
21
22 dnl
23 dnl Start Args
24 AC_MSG_CHECKING(configure arguments)
25 AC_PREFIX_DEFAULT(/usr/local)
26
27 top_builddir=`pwd`
28 AC_SUBST(top_builddir)dnl
29
30 ldap_subdir="openldap"
31
32 AC_ARG_WITH(subdir, [  --with-subdir=DIR change default subdirectory used for installs], [
33         if test "$withval" = "no"; then
34                 ldap_subdir=""
35         elif test "$withval" != "yes"; then
36                 ldap_subdir="$withval"
37         fi
38 ])dnl
39
40 AC_SUBST(ldap_subdir)dnl
41
42 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(libui,[  --enable-libui   enable library user interface], yes)dnl
46 OL_ARG_ENABLE(cache,[  --enable-cache   enable caching], yes)dnl
47 OL_ARG_ENABLE(dns,[  --enable-dns               enable dns support], no)dnl
48 OL_ARG_ENABLE(referrals,[  --enable-referrals   enable referrals], yes)dnl
49 OL_ARG_ENABLE(cldap,[  --enable-cldap   enable connectionless ldap], no)dnl
50 OL_ARG_ENABLE(x_compile,[  --enable-x-compile   enable cross compiling],
51         no, [yes no])dnl
52
53 dnl General "with" options
54 OL_ARG_WITH(kerberos,[  --with-kerberos use Kerberos],
55         auto, [auto k5 k4 afs yes no])
56 OL_ARG_WITH(threads,[  --with-threads   use threads],
57         auto, [auto posix mach lwp yes no manual] )
58 OL_ARG_WITH(yielding_select,[  --with-yielding-select   with implicitly yielding select],
59         auto, [auto yes no manual] )
60
61 dnl Server options
62
63 dnl LDAPD OPTIONS
64 AC_ARG_WITH(xxldapdoptions,[LDAPD Options:])
65 OL_ARG_ENABLE(ldapd,[  --enable-ldapd   enable building ldapd], no)dnl
66
67 dnl SLAPD OPTIONS
68 AC_ARG_WITH(xxslapdoptions,[SLAPD Options:])
69 OL_ARG_ENABLE(slapd,[  --enable-slapd   enable building slapd], yes)dnl
70 OL_ARG_ENABLE(aclgroups,[    --enable-aclgroups enable ACL group support], auto)dnl
71 OL_ARG_ENABLE(cleartext,[    --enable-cleartext enable cleartext passwords], yes)dnl
72 OL_ARG_ENABLE(crypt,[    --enable-crypt enable crypt(3) passwords], auto)dnl
73 OL_ARG_ENABLE(wrappers,[    --enable-wrappers   enable tcp wrapper support], no)dnl
74 OL_ARG_ENABLE(phonetic,[    --enable-phonetic   enable phonetic/soundex], no)dnl
75 OL_ARG_ENABLE(rlookups,[    --enable-rlookups   enable reverse lookups], auto)dnl
76
77 dnl SLAPD Backend options
78 OL_ARG_ENABLE(ldbm,[    --enable-ldbm   enable ldbm backend], yes)dnl
79 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api     use LDBM API], auto,
80         [auto db2 db gdbm ndbm manual])
81 OL_ARG_WITH(ldbm_type,[      --with-ldbm-type   use LDBM type], auto,
82         [auto btree hash])
83
84 OL_ARG_ENABLE(passwd,[    --enable-passwd       enable passwd backend], no)dnl
85 OL_ARG_ENABLE(shell,[    --enable-shell enable shell backend], no)dnl
86
87 dnl SLURPD OPTIONS
88 AC_ARG_WITH(xxslurpdoptions,[SLURPD Options:])
89 OL_ARG_ENABLE(slurpd,[  --enable-slurpd enable building slurpd], auto)dnl
90
91 AC_ARG_WITH(xxliboptions,[Library Generation & Linking Options])
92 AM_ENABLE_STATIC
93 AM_DISABLE_SHARED
94 dnl AM_ENABLE_SHARED
95
96 dnl General "enable" options
97 # validate options
98 if test $ol_enable_referrals = no ; then
99         if test $ol_enable_dns = yes ; then
100                 AC_MSG_WARN([dns disabled, ignoring --enable-dns argument])
101         fi
102         ol_enable_dns=no
103 fi
104
105 if test $ol_enable_slapd = no ; then
106         dnl SLAPD was specificallly disabled
107         if test $ol_enable_ldbm = yes ; then
108                 AC_MSG_WARN([slapd disabled, ignoring --enable_ldbm argument])
109         fi
110         if test $ol_enable_passwd = yes ; then
111                 AC_MSG_WARN([slapd disabled, ignoring --enable_passwd argument])
112         fi
113         if test $ol_enable_shell = yes ; then
114                 AC_MSG_WARN([slapd disabled, ignoring --enable_shell argument])
115         fi
116         if test $ol_enable_aclgroups = yes ; then
117                 AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroups argument])
118         fi
119         if test $ol_enable_wrappers = yes ; then
120                 AC_MSG_WARN([slapd disabled, ignoring --enable_wrappers argument])
121         fi
122         if test $ol_enable_phonetic = yes ; then
123                 AC_MSG_WARN([slapd disabled, ignoring --enable_phonetic argument])
124         fi
125         if test $ol_enable_rlookups = yes ; then
126                 AC_MSG_WARN([slapd disabled, ignoring --enable_rlookups argument])
127         fi
128         if test $ol_with_ldbm_api != auto ; then
129                 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_api argument])
130         fi
131         if test $ol_with_ldbm_type != auto ; then
132                 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_type argument])
133         fi
134         if test $ol_enable_slurpd = yes ; then
135                 AC_MSG_ERROR([slurpd requires slapd])
136         fi
137
138         # force settings to no
139         ol_enable_ldbm=no
140         ol_enable_shell=no
141         ol_enable_passwd=no
142         ol_enable_aclgroups=no
143         ol_enable_wrappers=no
144         ol_enable_phonetic=no
145         ol_enable_rlookups=no
146         ol_with_ldbm_api=no
147         ol_with_ldbm_type=no
148         ol_enable_slurpd=no
149
150 elif test $ol_enable_ldbm = no ; then
151         dnl SLAPD without LDBM
152
153         if test $ol_with_ldbm_api != auto ; then
154                 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_api argument])
155         fi
156
157         if test $ol_with_ldbm_type != auto ; then
158                 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_type argument])
159         fi
160
161         if test $ol_enable_passwd = no -a $ol_enable_shell = no ; then
162                 AC_MSG_ERROR([slapd requires a backend])
163         fi
164
165         ol_with_ldbm_api=no
166         ol_with_ldbm_type=no
167
168 else
169         dnl SLAPD with LDBM
170
171         if test $ol_with_ldbm_api = gdbm -a \
172                 $ol_with_ldbm_type = btree ; then
173                 AC_MSG_ERROR([GDBM only supports LDBM type hash])
174         fi
175         if test $ol_with_ldbm_api = ndbm -a \
176                 $ol_with_ldbm_type = btree ; then
177                 AC_MSG_ERROR([NDBM only supports LDBM type hash])
178         fi
179 fi
180
181 if test $ol_enable_slurpd = yes ; then
182         dnl SLURPD was specifically enabled
183         if test $ol_with_threads = no ; then
184                 AC_MSG_ERROR([slurpd requires threads])
185         fi
186 fi
187
188 AC_MSG_RESULT(done)
189
190 AC_CANONICAL_HOST
191
192 ## Initialize vars
193 LDAP_LIBS=
194 LDBM_LIBS=
195 LTHREAD_LIBS=
196 LUTIL_LIBS=
197
198 LDAPD_LIBS=
199 SLAPD_LIBS=
200 SLURPD_LIBS=
201
202 BUILD_LDAPD=no
203 BUILD_SLAPD=no
204 BUILD_SLURPD=no
205
206 BUILD_LDBM=no
207 BUILD_PASSWD=no
208 BUILD_SHELL=no
209 BUILD_THREAD=no
210
211 KRB_LIBS=
212 TERMCAP_LIBS=
213
214 dnl ----------------------------------------------------------------
215 dnl Checks for programs
216
217 AC_PROG_INSTALL
218 AM_PROG_LIBTOOL
219 dnl AC_PROG_MAKE_SET
220
221 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
222         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
223 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
224 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
225
226 dnl Checks the compiler and UNIX Variants
227
228 if test $cross_compiling = yes -a $ol_enable_x_compile = yes; then
229         AC_MSG_WARN([cross compiling....  some functionality will be removed.])
230
231 elif test $cross_compiling = no -a $ol_enable_x_compile = yes; then
232         AC_MSG_WARN([programs compiled here do run here...])
233         AC_MSG_ERROR([  if not cross compiling, use --disable-x-compile.])
234
235 elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then
236         AC_MSG_WARN([programs compiled here do not run here...])
237         AC_MSG_ERROR([  if cross compiling,  add --enable-x-compile.])
238 fi
239
240 AC_PROG_CPP
241
242 AC_AIX
243 AC_ISC_POSIX
244 AC_MINIX
245
246 dnl OpenLDAP requires STDC features
247 AM_PROG_CC_STDC
248 if test "X${am_cv_prog_cc_stdc}" = "Xno" ; then
249         AC_MSG_ERROR([OpenLDAP requires compiler to support STDC prototypes.])
250 fi
251
252 dnl AM_C_PROTOTYPES
253
254 dnl Checks for libraries
255
256 dnl Find socket()
257 dnl Likely combinations:
258 dnl             -lsocket [ -lnsl_s | -lnsl ]
259 dnl             -linet
260
261 AC_CHECK_FUNC(socket, [have_socket=yes], [      
262 dnl
263 dnl hopefully we won't include too many libraries
264 dnl
265         AC_CHECK_LIB(socket, main)
266         AC_CHECK_LIB(net, main)
267         AC_CHECK_LIB(nsl_s, main)
268         AC_CHECK_LIB(nsl, main)
269         AC_CHECK_LIB(inet, socket)
270         AC_CHECK_LIB(gen, main)
271 ])
272
273 dnl Check for resolver routines
274 AC_CHECK_FUNCS(res_search)
275 if test $ac_cv_func_res_search = "no" ; then 
276         AC_CHECK_LIB(bind, res_search)
277         if test "$ac_cv_lib_bind_res_search" = "yes" ; then
278                 AC_DEFINE(HAVE_RES_SEARCH,1)
279         else
280                 AC_CHECK_LIB(resolv, res_search)
281                 if test "$ac_cv_lib_resolv_res_search" = "yes" ; then
282                         AC_DEFINE(HAVE_RES_SEARCH,1)
283                 fi
284         fi
285 fi
286
287 dnl HP-UX requires -lV3
288 AC_CHECK_LIB(V3, sigset)
289
290 # ISODE tests
291 ol_link_isode=no
292 if test $ol_enable_ldapd != no ; then
293         dnl look for ISODE libraries
294         AC_CHECK_LIB(xtpp, main, [
295                 ol_link_isode=yes
296                 AC_DEFINE(HAVE_XTPP,1)
297                 LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi"
298                 ],:,[-lxtdsap -lxtisode -losi])
299         AC_CHECK_LIB(dsap, main, [
300                 ol_link_isode=yes
301                 AC_DEFINE(HAVE_DSAP,1)
302                 LDAPD_LIBS="$LDAPD_LIBS -ldsap"
303                 ],:,[-lisode])
304         AC_CHECK_LIB(isode, main, [
305                 ol_link_isode=yes
306                 AC_DEFINE(HAVE_ISODE,1)
307                 LDAPD_LIBS="$LDAPD_LIBS -lisode"
308                 ],:)
309 fi
310
311 if test $ol_link_isode != no; then
312         AC_CHECK_LIB(pp, main, [
313                 AC_DEFINE(HAVE_PP,1)
314                 LDAPD_LIBS="-lpp $LDAPD_LIBS"
315                 ],:)
316
317         AC_PATH_PROG(PEPSY, pepsy)
318 fi
319
320 dnl
321 dnl check for kerberos
322 dnl
323 ol_link_kerberos=no
324
325 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
326         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
327
328         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
329                 AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
330                         [-lkrb5 -ldes425])
331
332                 if test $have_k5 = yes ; then
333                         ol_with_kerberos=found
334                         ol_link_kerberos=yes
335
336                         AC_DEFINE(HAVE_KERBEROS)
337                         KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
338                 fi
339         fi
340 fi
341
342 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
343         AC_CHECK_HEADERS(krb.h des.h)
344
345         if test $ac_cv_header_krb_h = yes ; then
346                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
347
348                 if test $have_k4 = yes ; then
349                         ol_with_kerberos=found
350                         ol_link_kerberos=yes
351
352                         AC_DEFINE(HAVE_KERBEROS)
353                         KRB_LIBS="-lkrb -ldes"
354                 fi
355         fi
356 fi
357
358 dnl     if test $ol_link_kerberos = yes ; then
359 dnl             save_LIBS=$LIBS
360 dnl             LIBS="$KRB_LIBS $LIBS"
361 dnl             AC_CHECK_FUNCS(des_string_to_key)
362 dnl             LIBS=$save_LIBS
363 dnl fi
364
365 ol_link_threads=no
366 if test $ol_with_threads = auto -o $ol_with_threads = yes \
367         -o $ol_with_threads = posix ; then
368
369         AC_CHECK_HEADERS(pthread.h sched.h)
370
371         if test $ac_cv_header_pthread_h = yes ; then
372                 OL_POSIX_THREAD_VERSION
373
374                 if test $ol_cv_pthread_version = final ; then
375                         AC_DEFINE(HAVE_PTHREADS_FINAL)
376                 elif test $ol_cv_pthread_version = draft4 ; then
377                         AC_DEFINE(HAVE_PTHREADS_D4)
378                 else
379                         AC_MSG_ERROR([unknown pthread version])
380                 fi
381
382                 # consider threads found
383                 ol_with_threads=found
384
385                 OL_LINUX_THREADS
386
387                 if test $ol_cv_linux_threads = yes ; then
388                         AC_DEFINE(HAVE_LINUX_THREADS,1)
389                 fi
390
391                 dnl Now the hard part, how to link
392
393                 dnl Check for pthread support in current $LIBS
394                 AC_CHECK_FUNC(pthread_create,[ol_link_threads=yes])
395
396                 if test $ol_link_threads = no ; then
397                         dnl try -pthread
398                         AC_CACHE_CHECK([for pthread_create with -pthread],
399                                 [ol_cv_pthread_flag], [
400                                 dnl save the flags
401                                 save_LIBS="$LIBS"
402                                 LIBS="-pthread $LIBS"
403                                 AC_TRY_LINK([char pthread();],[
404                                         pthread_create();
405                                         ], ol_cv_pthread_flag=yes, ol_cv_pthread_flag=no)
406                                 dnl restore the LIBS
407                                 LIBS="$save_LIBS"
408                         ])
409
410                         if test $ol_cv_pthread_flag = yes ; then
411                                 LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
412                                 ol_link_threads=posix
413                         fi
414                 fi
415
416                 if test $ol_link_threads = no ; then
417                         dnl try -pthreads
418                         AC_CACHE_CHECK([for pthread_create with -pthreads],
419                                 [ol_cv_pthreads_flag], [
420                                 dnl save the flags
421                                 save_LIBS="$LIBS"
422                                 LIBS="-pthreads $LIBS"
423                                 AC_TRY_LINK([char pthread();],[
424                                         pthread_create();
425                                         ], ol_cv_pthreads_flag=yes, ol_cv_pthreads_flag=no)
426                                 dnl restore the LIBS
427                                 LIBS="$save_LIBS"
428                         ])
429
430                         if test $ol_cv_pthreads_flag = yes ; then
431                                 LTHREAD_LIBS="$LTHREAD_LIBS -pthreads"
432                                 ol_link_threads=posix
433                         fi
434                 fi
435
436                 if test $ol_link_threads = no ; then
437                         dnl try -thread
438                         AC_CACHE_CHECK([for pthread_create with -thread],
439                                 [ol_cv_thread_flag], [
440                                 dnl save the flags
441                                 save_LIBS="$LIBS"
442                                 LIBS="-thread $LIBS"
443                                 AC_TRY_LINK([char pthread();],[
444                                         pthread_create();
445                                         ], ol_cv_thread_flag=yes, ol_cv_thread_flag=no)
446                                 dnl restore the LIBS
447                                 LIBS="$save_LIBS"
448                         ])
449
450                         if test $ol_cv_thread_flag = yes ; then
451                                 LTHREAD_LIBS="$LTHREAD_LIBS -thread"
452                                 ol_link_threads=posix
453                         fi
454                 fi
455
456                 if test $ol_link_threads = no ; then
457                         dnl try DEC Threads -lpthread -lexc
458                         save_LIBS="$LIBS"
459                         AC_CHECK_LIB(pthread, pthread_mutex_lock, [
460                                 ol_link_threads=posix
461                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lexc"
462                                 if test $ol_with_yielding_select = auto ; then
463                                         ol_with_yielding_select=yes
464                                 fi
465                                 ],:,[-lexc])
466                         LIBS="$save_LIBS"
467                 fi
468
469                 if test $ol_link_threads = no ; then
470                         dnl try DEC Threads -lpthreads -lmach -lexc -lc_r
471                         save_LIBS="$LIBS"
472                         AC_CHECK_LIB(pthreads, pthread_mutex_unlock, [
473                                 ol_link_threads=posix
474                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads -lmach -lexc -lc_r"
475                                 if test $ol_with_yielding_select = auto ; then
476                                         ol_with_yielding_select=yes
477                                 fi
478                                 ],:,[-lmach -lexc -lc_r])
479                         LIBS="$save_LIBS"
480                 fi
481
482                 if test $ol_link_threads = no ; then
483                         dnl try -lpthread
484                         save_LIBS="$LIBS"
485                         AC_CHECK_LIB(pthread, pthread_create, [
486                                 ol_link_threads=posix
487                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"],:)
488                         LIBS="$save_LIBS"
489                 fi
490
491                 if test $ol_link_threads = no ; then
492                         dnl try -lc_r
493                         save_LIBS="$LIBS"
494                         AC_CHECK_LIB(c_r, pthread_create, [
495                                 ol_link_threads=posix
496                                 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"],:)
497                         LIBS="$save_LIBS"
498                 fi
499
500                 if test $ol_link_threads = no ; then
501                         dnl try -lpthreads
502                         save_LIBS="$LIBS"
503                         AC_CHECK_LIB(pthreads, pthread_create, [
504                                 ol_link_threads=posix
505                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"],:)
506                         LIBS="$save_LIBS"
507                 fi
508
509                 dnl IRIX Pthread check
510                 if test $ol_link_threads = no ; then
511                         dnl try IRIX Pthreads -Wl,-woff,85 -lpthreads
512                         save_LIBS="$LIBS"
513                         AC_CHECK_LIB(pthreads, pthread_join, [
514                                 ol_link_threads=posix
515                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthreads"
516                                 ],:,[-Wl,-woff,85])
517                         LIBS="$save_LIBS"
518                 fi
519
520                 dnl HP-UX 11 Pthread check
521                 if test $ol_link_threads = no; then
522                         save_LIBS="$LIBS"
523                         LIBS="$LIBS -lpthread"
524                         AC_MSG_CHECKING([for pthread_create() in HP-UX -lpthread])
525                         ol_try_pthread_hpux_11=no
526                         AC_CACHE_VAL(ol_cv_pthread_hpux_11,[
527                                 AC_TRY_LINK([
528 #include <pthread.h>
529 #include <elf.h>
530 #ifndef ELFABI_HPUX_REL11
531         die horribly
532 #endif
533                                 ], [pthread_create(NULL, NULL, NULL, NULL);],
534                                         ol_try_pthread_hpux_11=yes
535                                         ol_cv_pthread_hpux_11=yes,
536                                         ol_cv_pthread_hpux_11=no)])
537                         AC_MSG_RESULT(yes)
538                         LIBS="$save_LIBS"
539
540                         if test $ol_cv_pthread_hpux_11=yes ; then
541                                 ol_link_threads=posix
542                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"
543                                 if test $ol_try_pthread_hpux_11=yes ; then
544                                         dnl Some tests below may fail, cause we aint including
545                                         dnl pthread.h. Force appropriate ones to yes
546                                         ac_cv_func_pthread_attr_init=yes
547                                 fi
548                         fi
549                 fi
550
551                 if test $ol_link_threads != no ; then
552                         AC_DEFINE(HAVE_PTHREADS)
553
554                         dnl save flags
555                         save_CPPFLAGS="$CPPFLAGS"
556                         save_LIBS="$LIBS"
557                         LIBS="$LTHREAD_LIBS $LIBS"
558
559                         dnl All POSIX Thread (final) implementations should have
560                         dnl sched_yield instead of pthread yield.
561                         dnl check for both
562                         AC_CHECK_FUNCS(sched_yield pthread_yield)
563
564                         if test $ac_cv_func_sched_yield = no -a \
565                                 $ac_cv_func_pthread_yield = no ; then
566                                 dnl Digital UNIX has sched_yield() in -lrt
567                                 AC_CHECK_LIB(rt, sched_yield,
568                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
569                                         AC_DEFINE(HAVE_SCHED_YIELD,1)
570                                         ac_cv_func_sched_yield=yes],
571                                         [ac_cv_func_sched_yield=no])
572                         fi
573                         if test $ac_cv_func_sched_yield = no -a \
574                                 $ac_cv_func_pthread_yield = no ; then
575                                 dnl Solaris has sched_yield() in -lposix4
576                                 AC_CHECK_LIB(posix4, sched_yield,
577                                         [LTHREAD_LIBS="$LTHREAD_LIBS -lposix4"
578                                         AC_DEFINE(HAVE_SCHED_YIELD,1)
579                                         ac_cv_func_sched_yield=yes],
580                                         [ac_cv_func_sched_yield=no])
581                         fi
582                         if test $ac_cv_func_sched_yield = no -a \
583                                 $ac_cv_func_pthread_yield = no ; then
584                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
585                         fi
586
587                         dnl Check functions for compatibility
588                         AC_CHECK_FUNCS(pthread_kill pthread_detach)
589
590                         AC_CHECK_FUNCS( \
591                                 pthread_attr_create pthread_attr_init \
592                                 pthread_attr_destroy pthread_attr_delete \
593                                 pthread_attr_setdetachstate pthread_attr_setdetach_np \
594                         )
595
596                         dnl Check for setconcurreny functions
597                         AC_CHECK_FUNCS( \
598                                 pthread_setconcurrency \
599                                 thr_setconcurrency \
600                         )
601
602                         AC_MSG_CHECKING([if pthread_create() works])
603                         AC_CACHE_VAL(ol_cv_pthread_create_works,[
604                         AC_TRY_RUN([
605 #include <pthread.h>
606 #ifndef NULL
607 #define NULL (void*)0
608 #endif
609
610 static void *task(p)
611         void *p;
612 {
613         return (void *) (p == NULL);
614 }
615
616 int main(argc, argv)
617         int argc;
618         char **argv;
619 {
620         pthread_t t;
621         exit(pthread_create(&t, NULL, task, NULL));
622 }
623 ],
624                                 [ol_cv_pthread_create_works=yes],
625                                 [ol_cv_pthread_create_works=no],
626                                 [dnl assume yes
627                                 ol_cv_pthread_create_works=yes])])
628                         AC_MSG_RESULT($ol_cv_pthread_create_works)
629
630                         if test $ol_cv_pthread_create_works = no ; then
631                                 AC_MSG_ERROR([pthread.h and pthread_create are not compatible])
632                         fi
633
634                         dnl Check if select causes an yield
635                         if test $ol_with_yielding_select = auto ; then
636                                 AC_MSG_CHECKING([if select yields when using pthreads])
637                                 AC_CACHE_VAL(ol_cv_pthread_select_yields,[
638                                 AC_TRY_RUN([
639 #include <sys/types.h>
640 #include <sys/time.h>
641 #include <unistd.h>
642 #include <pthread.h>
643 #ifndef NULL
644 #define NULL (void*) 0
645 #endif
646
647 static int fildes[2];
648
649 static void *task(p)
650         void *p;
651 {
652         int i;
653         struct timeval tv;
654
655         fd_set rfds;
656
657         tv.tv_sec=10;
658         tv.tv_usec=0;
659
660         FD_ZERO(&rfds);
661         FD_SET(fildes[0], &rfds);
662
663         /* we're not interested in any fds */
664         i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
665
666         if(i < 0) {
667                 perror("select");
668                 exit(10);
669         }
670
671         exit(0); /* if we exit here, the select blocked the whole process */
672 }
673
674 int main(argc, argv)
675         int argc;
676         char **argv;
677 {
678         pthread_t t;
679
680         /* create a pipe to select */
681         if(pipe(&fildes[0])) {
682                 perror("select");
683                 exit(1);
684         }
685
686 #ifdef HAVE_PTHREAD_SETCONCURRENCY
687         (void) pthread_setconcurrency(2);
688 #else
689 #ifdef HAVE_THR_SETCONCURRENCY
690         /* Set Solaris LWP concurrency to 2 */
691         thr_setconcurrency(2);
692 #endif
693 #endif
694
695         pthread_create(&t, NULL, task, NULL);
696
697 #if HAVE_SCHED_YIELD
698         sched_yield();  /* make sure task runs first */
699 #else
700 #ifdef HAVE_PTHREAD_YIELD
701         pthread_yield();        /* make sure task runs first */
702 #endif
703 #endif
704
705         exit(2);
706 }],
707                                 [ol_cv_pthread_select_yields=no],
708                                 [ol_cv_pthread_select_yields=yes], [
709                                 AC_MSG_ERROR([crossing compiling: use --with-yielding_select=yes|no|manual])])])
710                                 AC_MSG_RESULT($ol_cv_pthread_select_yields)
711
712                                 if test $ol_cv_pthread_select_yields = yes ; then
713                                         ol_with_yielding_select=yes
714                                 fi
715                         fi
716
717                         dnl restore flags
718                         CPPFLAGS="$save_CPPFLAGS"
719                         LIBS="$save_LIBS"
720                 else
721                         AC_MSG_ERROR([could not link with POSIX Threads])
722                 fi
723         fi
724
725         if test $ol_with_threads = posix ; then
726                 AC_MSG_ERROR([could not locate POSIX Threads])
727         fi
728 fi
729
730 if test $ol_with_threads = auto -o $ol_with_threads = yes \
731         -o $ol_with_threads = mach ; then
732
733         dnl check for Mach CThreads
734         AC_CHECK_HEADERS(mach/cthreads.h)
735         if test $ac_cv_header_mach_cthreads_h = yes ; then
736                 ol_with_threads=found
737
738                 dnl check for cthread support in current $LIBS
739                 AC_CHECK_FUNC(cthread_fork,[ol_link_threads=yes])
740
741                 if test $ol_link_threads = no ; then
742                         dnl try -all_load
743                         dnl this test needs work
744                         AC_CACHE_CHECK([for cthread_fork with -all_load],
745                                 [ol_cv_cthread_all_load], [
746                                 dnl save the flags
747                                 save_LIBS="$LIBS"
748                                 LIBS="-all_load $LIBS"
749                                 AC_TRY_LINK([#include <mach/cthreads.h>],[
750                                         cthread_fork((void *)0, (void *)0);
751                                         ], ol_cv_cthread_all_load=yes, ol_cv_cthread_all_load=no)
752                                 dnl restore the LIBS
753                                 LIBS="$save_LIBS"
754                         ])
755
756                         if test $ol_cv_cthread_all_load = yes ; then
757                                 LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
758                                 ol_link_threads=mach
759                         fi
760                 fi
761
762                 if test $ol_link_threads != no ; then
763                         : check for cthread specific functionality here
764                         AC_DEFINE(HAVE_MACH_CTHREADS,1)
765                 else
766                         AC_MSG_ERROR([could not link with Mach CThreads])
767                 fi
768         fi
769
770         if test $ol_with_threads = mach ; then
771                 AC_MSG_ERROR([could not locate Mach CThreads])
772         fi
773 fi
774
775 if test $ol_with_threads = auto -o $ol_with_threads = yes \
776         -o $ol_with_threads = lwp ; then
777
778         dnl check for SunOS5 LWP
779         AC_CHECK_HEADERS(thread.h synch.h)
780         if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
781                 AC_CHECK_LIB(thread, thr_create, [have_thr=yes], [have_thr=no])
782
783                 if test $have_thr = yes ; then
784                         AC_DEFINE(HAVE_THR)
785                         LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
786                         ol_link_threads=thr
787
788                         if test $ol_with_yielding_select = auto ; then
789                                 ol_with_yielding_select=yes
790                         fi
791
792                         AC_CACHE_CHECK([for misplaced posix thread in headers],
793                                 [ol_cv_header_misplaced_pthreads], [
794                                 AC_TRY_COMPILE([
795 #include <sys/types.h>
796 typedef double pthread_t;
797                                 ], [
798                                 pthread_t thread = 0.0;
799                                 ],
800                                 [ol_cv_header_misplaced_pthreads=no],
801                                 [ol_cv_header_misplaced_pthreads=yes])
802                         ])
803
804                         if test "$ol_cv_header_misplaced_pthreads" = yes ; then
805                                 AC_MSG_ERROR([pthread types are misplaced, use --with-threads=posix]);
806                         fi
807                 fi
808         fi
809
810         dnl check for SunOS4 LWP
811         AC_CHECK_HEADERS(lwp/lwp.h)
812         if test $ac_cv_header_lwp_lwp_h = yes ; then
813                 AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
814
815                 if test $have_lwp = yes ; then
816                         AC_DEFINE(HAVE_LWP)
817                         LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
818                         ol_link_threads=lwp
819
820                         if test $ol_with_yielding_select = auto ; then
821                                 ol_with_yielding_select=no
822                         fi
823                 fi
824         fi
825 fi
826
827 if test $ol_with_yielding_select = yes ; then
828         AC_DEFINE(HAVE_YIELDING_SELECT,1)
829 fi
830
831 if test $ol_with_threads = manual ; then
832         dnl User thinks he can manually configure threads.
833         ol_link_threads=yes
834
835         AC_MSG_WARN([thread defines and link options must be set manually])
836
837         AC_CHECK_HEADERS(pthread.h sched.h)
838         AC_CHECK_FUNCS(sched_yield pthread_yield)
839         OL_LINUX_THREADS
840
841         AC_CHECK_HEADERS(mach/cthreads.h)
842         AC_CHECK_HEADERS(lwp/lwp.h)
843         AC_CHECK_HEADERS(thread.h synch.h)
844 fi
845
846 if test $ol_link_threads != no ; then  
847         dnl needed to get reentrant/threadsafe versions
848         dnl
849         AC_DEFINE(REENTRANT,1)
850         AC_DEFINE(_REENTRANT,1)
851         AC_DEFINE(THREAD_SAFE,1)
852         AC_DEFINE(_THREAD_SAFE,1)
853         AC_DEFINE(THREADSAFE,1)
854         AC_DEFINE(_THREADSAFE,1)
855
856         dnl this might cause the errno symbol to be
857         dnl replaced with a function to get a thread specific errno.
858         dnl check to see if everything needs to be compiled
859         dnl with the thread libraries
860         AC_CACHE_CHECK([for thread specific errno],
861                 [ol_cv_errno_thread_specific], [
862                 AC_TRY_LINK([
863 #include <errno.h>
864                         ], [
865 int x = errno;
866                         ],
867                         [ol_cv_errno_thread_specific=yes],
868                         [ol_cv_errno_thread_specific=no])
869         ])
870
871         if test $ol_cv_errno_thread_specific != yes ; then
872                 LIBS="$LTHREAD_LIBS $LIBS"
873                 LTHREAD_LIBS=""
874         fi
875 fi  
876
877 dnl ----------------------------------------------------------------
878
879 if test $ol_link_threads = no ; then
880         if test $ol_with_threads = yes ; then
881                 AC_MSG_ERROR([no suitable thread support])
882         fi
883
884         if test $ol_with_threads = auto ; then
885                 AC_MSG_WARN([no suitable thread support, disabling threads])
886                 ol_with_threads=no
887         fi
888
889         AC_CACHE_CHECK([for misplaced posix thread in headers],
890                 [ol_cv_header_misplaced_pthreads], [
891                 AC_TRY_COMPILE([
892 #include <sys/types.h>
893 typedef double pthread_t;
894                         ], [
895                                 pthread_t thread = 0.0;
896                         ],
897                         [ol_cv_header_misplaced_pthreads=no],
898                         [ol_cv_header_misplaced_pthreads=yes])
899         ])
900
901         if test "$ol_cv_header_misplaced_pthreads" = yes ; then
902                 AC_MSG_ERROR([pthread types are misplaced, use --with-threads=posix]);
903         fi
904
905         AC_DEFINE(NO_THREADS,1)
906         LTHREAD_LIBS=""
907 fi
908
909 ol_link_ldbm=no 
910 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
911         OL_BERKELEY_DB2
912
913         if test $ol_cv_berkeley_db2 = yes ; then
914                 ol_link_ldbm=db2
915                 ol_with_ldbm_api=db2
916
917                 if test $ol_with_ldbm_type = hash ; then
918                         AC_DEFINE(LDBM_USE_DBHASH,1)
919                 else
920                         AC_DEFINE(LDBM_USE_DBBTREE,1)
921                 fi
922
923                 dnl $ol_cv_lib_db2 should be yes or -ldb
924                 dnl (it could be no, but that would be an error
925                 if test $ol_cv_lib_db2 != yes ; then
926                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
927                 fi
928         fi
929 fi
930
931 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
932         OL_BERKELEY_DB
933
934         if test $ol_cv_berkeley_db = yes ; then
935                 ol_link_ldbm=db
936                 ol_with_ldbm_api=db
937
938                 if test $ol_with_ldbm_type = hash ; then
939                         AC_DEFINE(LDBM_USE_DBHASH,1)
940                 else
941                         AC_DEFINE(LDBM_USE_DBBTREE,1)
942                 fi
943
944                 dnl $ol_cv_lib_db should be yes or -ldb
945                 dnl (it could be no, but that would be an error
946                 if test $ol_cv_lib_db != yes ; then
947                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
948                 fi
949         fi
950 fi
951
952 if test $ol_with_ldbm_api = manual ; then
953         dnl User thinks he can manually configure LDBM api.
954         ol_link_ldbm=yes
955
956         AC_MSG_WARN([LDBM defines and link options must be set manually])
957
958         AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
959 fi
960
961 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
962         AC_MSG_WARN(Could not find LDBM with BTREE support)
963         ol_with_ldbm_api=none
964 fi
965
966 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
967         OL_GDBM
968
969         if test $ol_cv_gdbm = yes ; then
970                 ol_link_ldbm=gdbm
971                 ol_with_ldbm_api=gdbm
972
973                 if test $ol_cv_lib_gdbm != yes ; then
974                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
975                 fi
976         fi
977 fi
978
979 if test $ol_with_ldbm_api = auto ; then
980         AC_MSG_WARN([skipping automatic checking for NDBM, must be manually enabled.])
981 elif test $ol_with_ldbm_api = ndbm ; then
982         OL_NDBM
983
984         if test $ol_cv_ndbm = yes ; then
985                 ol_link_ldbm=ndbm
986                 ol_with_ldbm_api=ndbm
987
988                 if test $ol_cv_lib_ndbm != yes ; then
989                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
990                 fi
991         fi
992 fi
993
994 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
995         AC_MSG_WARN(could not find suitable LDBM backend)
996         if test $ol_enable_ldbm = yes ; then
997                 AC_MSG_ERROR(select appropriate LDBM options or disable)
998         fi
999
1000         AC_MSG_WARN(disabling LDBM)
1001         ol_enable_ldbm=no
1002 fi
1003
1004 if test $ol_enable_wrappers != no ; then
1005         AC_CHECK_HEADERS(tcpd.h)
1006
1007         if test $ac_cv_header_tcpd_h != yes ; then
1008                 have_wrappers=no
1009         else
1010                 AC_CHECK_LIB(wrap, main,
1011                         [have_wrappers=yes], [have_wrappers=no])
1012         fi
1013
1014         if test $have_wrappers = yes ; then
1015                 AC_DEFINE(HAVE_TCPD)
1016                 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
1017         else
1018                 AC_MSG_WARN(could not find -lwrap)
1019                 if test $ol_enable_wrappers = yes ; then
1020                         AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
1021                 fi
1022
1023                 AC_MSG_WARN(disabling wrappers support)
1024                 ol_enable_wrappers=no
1025         fi
1026 fi
1027
1028 # ud needs termcap (should insert check here)
1029 ol_link_termcap=no
1030 AC_CHECK_HEADERS(termcap.h ncurses.h)
1031
1032 if test $ol_link_termcap = no ; then
1033         AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
1034         if test $have_termcap = yes ; then
1035                 AC_DEFINE(HAVE_TERMCAP)
1036                 ol_link_termcap=yes
1037                 TERMCAP_LIBS=-ltermcap
1038         fi
1039 fi
1040
1041 if test $ol_link_termcap = no ; then
1042         AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
1043         if test $have_ncurses = yes ; then
1044                 AC_DEFINE(HAVE_NCURSES)
1045                 ol_link_termcap=yes
1046                 TERMCAP_LIBS=-lncurses
1047         fi
1048 fi
1049
1050 if test $ol_link_termcap = no ; then
1051         AC_DEFINE(NO_TERMCAP,1)
1052         TERMCAP_LIBS=
1053 fi
1054
1055 # FreeBSD (and others) have crypt(3) in -lcrypt
1056 if test $ol_enable_crypt != no ; then
1057         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
1058                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
1059                         have_crypt=yes], [have_crypt=no])])
1060
1061         if test $have_crypt = yes ; then
1062                 AC_DEFINE(HAVE_CRYPT,1)
1063         else
1064                 AC_MSG_WARN(could not find crypt)
1065                 if test $ol_enable_crypt = yes ; then
1066                         AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
1067                 fi
1068
1069                 AC_MSG_WARN(disabling crypt support)
1070                 ol_enable_crypt=no
1071         fi
1072 fi
1073
1074 # FreeBSD (and others) have setproctitle(3) in -lutil
1075 if test $ol_enable_proctitle != no ; then
1076         AC_CHECK_FUNC(setproctitle,     [have_setproctitle=yes], [
1077                 AC_CHECK_LIB(util, setproctitle,
1078                         [have_setproctitle=yes
1079                         LUTIL_LIBS="$LUTIL_LIBS -lutil"],
1080                         [have_setproctitle=no
1081                         LIBOBJS="$LIBOBJS setproctitle.o"])])
1082
1083         if test $have_setproctitle = yes ; then
1084                 AC_DEFINE(HAVE_SETPROCTITLE,1)
1085         fi
1086 fi
1087
1088 dnl ----------------------------------------------------------------
1089 dnl Checks for header files.
1090 AC_HEADER_STDC
1091
1092 if test $ac_cv_header_stdc != yes; then
1093         AC_MSG_WARN([could not Standard C compliant headers])
1094 fi
1095
1096 AC_HEADER_DIRENT
1097 AC_HEADER_SYS_WAIT
1098 AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
1099 if test $am_cv_sys_posix_termios = yes ; then
1100         AC_DEFINE(HAVE_POSIX_TERMIOS,1)
1101 fi
1102
1103 AC_CHECK_HEADERS(       \
1104         crypt.h                 \
1105         errno.h                 \
1106         fcntl.h                 \
1107         filio.h                 \
1108         getopt.h                \
1109         libutil.h               \
1110         limits.h                \
1111         malloc.h                \
1112         memory.h                \
1113         regex.h                 \
1114         psap.h                  \
1115         pwd.h                   \
1116         sgtty.h                 \
1117         stdarg.h                \
1118         stddef.h                \
1119         string.h                \
1120         strings.h               \
1121         sys/file.h              \
1122         sys/filio.h             \
1123         sys/errno.h             \
1124         sys/ioctl.h             \
1125         sys/param.h             \
1126         sys/resource.h  \
1127         sys/socket.h    \
1128         sys/syslog.h    \
1129         sys/time.h              \
1130         sys/types.h             \
1131         syslog.h                \
1132         termios.h               \
1133         unistd.h                \
1134 )
1135
1136 dnl ----------------------------------------------------------------
1137 dnl Checks for typedefs, structures, and compiler characteristics.
1138 AC_TYPE_GETGROUPS dnl requires AC_TYPE_UID_T
1139 AC_TYPE_MODE_T
1140 AC_TYPE_OFF_T
1141 AC_TYPE_PID_T
1142 AM_TYPE_PTRDIFF_T
1143 AC_TYPE_SIGNAL
1144 AC_TYPE_SIZE_T
1145 AC_STRUCT_ST_BLKSIZE
1146 AC_HEADER_TIME
1147 AC_STRUCT_TM
1148
1149 OL_C_UPPER_LOWER
1150 AC_C_CONST
1151
1152 if test $cross_compiling = yes ; then
1153         AC_DEFINE(CROSS_COMPILING, 1)
1154 else
1155         AC_C_BIGENDIAN
1156         AC_CHECK_SIZEOF(short) 
1157         AC_CHECK_SIZEOF(int) 
1158         AC_CHECK_SIZEOF(long)
1159 fi
1160
1161 dnl ----------------------------------------------------------------
1162 dnl Checks for library functions.
1163 AC_FUNC_MEMCMP
1164 dnl AM_FUNC_MKTIME dnl checks for sys/time.h and unistd.h
1165 AC_FUNC_STRFTIME
1166 dnl AM_FUNC_STRTOD
1167 AC_FUNC_VPRINTF
1168
1169 if test $ac_cv_func_vprintf = yes ; then
1170         dnl check for vsnprintf
1171         AC_CHECK_FUNCS(vsnprintf vsprintf)
1172 fi
1173
1174 AC_CHECK_FUNCS(         \
1175         bcopy                   \
1176         flock                   \
1177         getdtablesize   \
1178         gethostname             \
1179         getpwuid                \
1180         gettimeofday    \
1181         lockf                   \
1182         memcpy                  \
1183         memmove                 \
1184         mkstemp                 \
1185         select                  \
1186         setpwfile               \
1187         setsid                  \
1188         signal                  \
1189         sigset                  \
1190         snprintf                \
1191         socket                  \
1192         strerror                \
1193         strpbrk                 \
1194         strrchr                 \
1195         strsep                  \
1196         strstr                  \
1197         strtok                  \
1198         strtol                  \
1199         strtoul                 \
1200         sysconf                 \
1201         waitpid                 \
1202 )
1203
1204 dnl We actually may need to replace more than this.
1205 AC_REPLACE_FUNCS(getopt strdup tempnam)
1206
1207 dnl ----------------------------------------------------------------
1208 # Check Configuration
1209 OL_SYS_ERRLIST
1210
1211 dnl ----------------------------------------------------------------
1212 dnl Sort out defines
1213
1214 if test "$ol_enable_debug" != no ; then
1215         AC_DEFINE(LDAP_DEBUG,1)
1216 fi
1217 dnl     if test "$ol_enable_syslog" != no ; then
1218 dnl             AC_DEFINE(LDAP_SYSLOG,1)
1219 dnl     fi
1220 if test "$ol_enable_libui" = yes ; then
1221         AC_DEFINE(LDAP_LIBUI,1)
1222 fi
1223 if test "$ol_enable_cache" = no ; then
1224         AC_DEFINE(LDAP_NOCACHE,1)
1225 fi
1226 if test "$ol_enable_dns" != no ; then
1227         AC_DEFINE(LDAP_DNS,1)
1228 fi
1229 if test "$ol_enable_proctitle" != no ; then
1230         AC_DEFINE(LDAP_PROCTITLE,1)
1231 fi
1232 if test "$ol_enable_referrals" != no ; then
1233         AC_DEFINE(LDAP_REFERRALS,1)
1234 fi
1235 if test "$ol_enable_cldap" != no ; then
1236         AC_DEFINE(LDAP_CONNECTIONLESS,1)
1237 fi
1238
1239 if test "$ol_enable_aclgroups" != no ; then
1240         AC_DEFINE(SLAPD_ACLGROUPS,1)
1241 fi
1242 if test "$ol_enable_crypt" != no ; then
1243         AC_DEFINE(SLAPD_CRYPT,1)
1244 fi
1245 if test "$ol_enable_cleartext" != no ; then
1246         AC_DEFINE(SLAPD_CLEARTEXT,1)
1247 fi
1248 if test "$ol_enable_phonetic" != no ; then
1249         AC_DEFINE(SLAPD_PHONETIC,1)
1250 fi
1251 if test "$ol_enable_rlookups" != no ; then
1252         AC_DEFINE(SLAPD_RLOOKUPS,1)
1253 fi
1254
1255 if test "$ol_link_ldbm" != no ; then
1256         AC_DEFINE(SLAPD_LDBM,1)
1257         BUILD_SLAPD=yes
1258         BUILD_LDBM=yes
1259 fi
1260
1261 if test "$ol_enable_passwd" != no ; then
1262         AC_DEFINE(SLAPD_PASSWD,1)
1263         BUILD_SLAPD=yes
1264         BUILD_PASSWD=yes
1265 fi
1266
1267 if test "$ol_enable_shell" != no ; then
1268         AC_DEFINE(SLAPD_SHELL,1)
1269         BUILD_SLAPD=yes
1270         BUILD_SHELL=yes
1271 fi
1272
1273 if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \
1274         $BUILD_SLAPD = yes ; then
1275         BUILD_SLURPD=yes
1276 fi
1277
1278 if test "$ol_link_isode" != no ; then
1279         BUILD_LDAPD=yes
1280 fi
1281
1282 dnl ----------------------------------------------------------------
1283
1284 AC_SUBST(BUILD_LDAPD)
1285 AC_SUBST(BUILD_SLAPD)
1286   AC_SUBST(BUILD_LDBM)
1287   AC_SUBST(BUILD_PASSWD)
1288   AC_SUBST(BUILD_SHELL)
1289 AC_SUBST(BUILD_SLURPD)
1290
1291 AC_SUBST(LDAP_LIBS)
1292 AC_SUBST(LDAPD_LIBS)
1293 AC_SUBST(SLAPD_LIBS)
1294 AC_SUBST(SLURPD_LIBS)
1295 AC_SUBST(LDBM_LIBS)
1296 AC_SUBST(LTHREAD_LIBS)
1297 AC_SUBST(LUTIL_LIBS)
1298
1299 AC_SUBST(KRB_LIBS)
1300 AC_SUBST(TERMCAP_LIBS)
1301
1302 dnl ----------------------------------------------------------------
1303 dnl final output
1304 dnl
1305
1306 AC_OUTPUT( \
1307 Makefile:build/top.mk:Makefile.in:build/dir.mk \
1308 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
1309 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
1310 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
1311 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
1312 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
1313 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
1314 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
1315 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
1316 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
1317 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
1318 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
1319 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
1320 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
1321 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
1322 include/Makefile:build/top.mk:include/Makefile.in \
1323 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
1324 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk:build/lib-static.mk    \
1325 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk:build/lib-shared.mk  \
1326 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk:build/lib-shared.mk  \
1327 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk:build/lib-static.mk  \
1328 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk:build/lib-static.mk  \
1329 libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk:build/lib-static.mk    \
1330 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk        \
1331 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
1332 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
1333 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
1334 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
1335 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
1336 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
1337 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
1338 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
1339 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
1340 tests/Makefile:build/top.mk:tests/Makefile.in \
1341 ,[
1342 date > stamp-h
1343 echo Please \"make depend\" to build dependencies
1344 ])