]> git.sur5r.net Git - openldap/blob - configure.in
a8b9790c4cafb63df1766000e7be2825e419921f
[openldap] / configure.in
1 dnl Copyright 1998 The OpenLDAP Foundation.  All Rights Reserved.
2 dnl 
3 dnl Redistribution and use in source and binary forms are permitted only
4 dnl as authorized by the OpenLDAP Public License.  A copy of this
5 dnl license is available at http://www.OpenLDAP.org/license.html or
6 dnl in file LICENSE in the top-level directory of the distribution.
7 dnl ----
8 dnl Configure.in for OpenLDAP
9 dnl
10 AC_INIT(include/ldap.h)
11 dnl
12 dnl
13 AC_PREREQ(2.10)dnl Required Autoconf version
14 dnl Do not use AutoConf 2.12; it produces a configuration script
15 dnl that causes an "internal 2K buffer" error on HPUX when run
16 dnl with /bin/sh.  Autoconf 2.10 seems to be okay.
17 AC_CONFIG_AUX_DIR(build)
18 AC_CONFIG_HEADER(include/portable.h)dnl
19 dnl
20 dnl Start Args
21 AC_MSG_CHECKING(configure arguments)
22 AC_PREFIX_DEFAULT(/usr/local)
23
24 dnl General "enable" options
25 OL_ARG_ENABLE(debug,[  --enable-debug   enable debugging], yes)dnl
26 dnl OL_ARG_ENABLE(syslog,[  --enable-syslog     enable syslog support], auto)dnl
27 OL_ARG_ENABLE(libui,[  --enable-libui   enable library user interface], yes)dnl
28 OL_ARG_ENABLE(cache,[  --enable-cache   enable caching], yes)dnl
29 OL_ARG_ENABLE(dns,[  --enable-dns       enable dns support], no)dnl
30 OL_ARG_ENABLE(referrals,[  --enable-referrals   enable referrals], yes)dnl
31 OL_ARG_ENABLE(cldap,[  --enable-clapd   enable connectionless ldap], no)dnl
32
33 dnl General "with" options
34 OL_ARG_WITH(kerberos,[  --with-kerberos use Kerberos],
35         auto, [auto k5 k4 afs yes no])
36 OL_ARG_WITH(threads,[  --with-threads   use threads],
37         auto, [auto posix dce mach yes no manual] )
38
39 dnl Server options
40
41 dnl LDAPD OPTIONS
42 OL_ARG_ENABLE(ldapd,[  --enable-ldapd   enable building ldapd], no)dnl
43
44 dnl SLAPD OPTIONS
45 OL_ARG_ENABLE(slapd,[  --enable-slapd   enable building slapd], yes)dnl
46 OL_ARG_ENABLE(aclgroup,[    --enable-aclgroup   enable ACL group support], auto)dnl
47 OL_ARG_ENABLE(crypt,[    --enable-crypt enable crypt(3) passwords], auto)dnl
48 OL_ARG_ENABLE(md5,[    --enable-md5     enable MD5 passwords], auto)dnl
49 OL_ARG_ENABLE(sha1,[    --enable-sha1   enable SHA1 passwords], auto)dnl
50 OL_ARG_ENABLE(wrappers,[    --enable-wrappers   enable tcp wrapper support], no)dnl
51 OL_ARG_ENABLE(phonetic,[    --enable-phonetic   enable phonetic/soundex], no)dnl
52 OL_ARG_ENABLE(rlookups,[    --enable-rlookups   enable reverse lookups], auto)dnl
53
54 dnl SLAPD Backend options
55 OL_ARG_ENABLE(ldbm,[    --enable-ldbm   enable ldbm backend], yes)dnl
56 OL_ARG_WITH(ldbm_api,[      --with-ldbm-api     use LDBM API], auto,
57         [auto db2 db gdbm ndbm manual])
58 OL_ARG_WITH(ldbm_type,[      --with-ldbm-type   use LDBM type], auto,
59         [auto btree hash])
60
61 OL_ARG_ENABLE(passwd,[    --enable-passwd       enable passwd backend], no)dnl
62 OL_ARG_ENABLE(shell,[    --enable-shell enable shell backend], no)dnl
63
64 dnl SLURPD OPTIONS
65 OL_ARG_ENABLE(slurpd,[  --enable-slurpd enable building slurpd], auto)dnl
66
67 if test $ol_enable_slapd = no ; then
68         dnl SLAPD was specificallly disabled
69         if test $ol_enable_ldbm = yes ; then
70                 AC_MSG_WARN([slapd disabled, ignoring --enable_ldbm argument]);
71         fi
72         if test $ol_enable_passwd = yes ; then
73                 AC_MSG_WARN([slapd disabled, ignoring --enable_passwd argument]);
74         fi
75         if test $ol_enable_shell = yes ; then
76                 AC_MSG_WARN([slapd disabled, ignoring --enable_shell argument]);
77         fi
78         if test $ol_enable_aclgroup = yes ; then
79                 AC_MSG_WARN([slapd disabled, ignoring --enable_aclgroup argument]);
80         fi
81         if test $ol_enable_crypt = yes ; then
82                 AC_MSG_WARN([slapd disabled, ignoring --enable_crypt argument]);
83         fi
84         if test $ol_enable_md5 = yes ; then
85                 AC_MSG_WARN([slapd disabled, ignoring --enable_md5 argument]);
86         fi
87         if test $ol_enable_sha1 = yes ; then
88                 AC_MSG_WARN([slapd disabled, ignoring --enable_sha1 argument]);
89         fi
90         if test $ol_enable_wrappers = yes ; then
91                 AC_MSG_WARN([slapd disabled, ignoring --enable_wrappers argument]);
92         fi
93         if test $ol_enable_phonetic = yes ; then
94                 AC_MSG_WARN([slapd disabled, ignoring --enable_phonetic argument]);
95         fi
96         if test $ol_enable_rlookups = yes ; then
97                 AC_MSG_WARN([slapd disabled, ignoring --enable_rlookups argument]);
98         fi
99         if test $ol_with_ldbm_api != auto ; then
100                 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_api argument]);
101         fi
102         if test $ol_with_ldbm_type != auto ; then
103                 AC_MSG_WARN([slapd disabled, ignoring --with_ldbm_type argument]);
104         fi
105         if test $ol_enable_slurpd = yes ; then
106                 AC_MSG_ERROR([slurpd requires slapd]);
107         fi
108
109         # force settings to no
110         ol_enable_ldbm=no
111         ol_enable_shell=no
112         ol_enable_passwd=no
113         ol_enable_aclgroup=no
114         ol_enable_crypt=no
115         ol_enable_md5=no
116         ol_enable_sha1=no
117         ol_enable_wrappers=no
118         ol_enable_phonetic=no
119         ol_enable_rlookups=no
120         ol_with_ldbm_api=no
121         ol_with_ldbm_type=no
122         ol_enable_slurpd=no
123
124 elif test $ol_enable_ldbm = no ; then
125         dnl SLAPD without LDBM
126
127         if test $ol_with_ldbm_api != auto ; then
128                 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_api argument]);
129         fi
130
131         if test $ol_with_ldbm_type != auto ; then
132                 AC_MSG_WARN([LDBM disabled, ignoring --with_ldbm_type argument]);
133         fi
134
135         if test $ol_enable_passwd = no -a $ol_enable_shell = no ; then
136                 AC_MSG_ERROR([slapd requires a backend]);
137         fi
138
139         ol_with_ldbm_api=no
140         ol_with_ldbm_type=no
141
142 else
143         dnl SLAPD with LDBM
144
145         if test $ol_with_ldbm_api = gdbm -a \
146                 $ol_with_ldbm_type = btree ; then
147                 AC_MSG_ERROR([GDBM only supports LDBM type hash]);
148         fi
149         if test $ol_with_ldbm_api = ndbm -a \
150                 $ol_with_ldbm_type = btree ; then
151                 AC_MSG_ERROR([NDBM only supports LDBM type hash]);
152         fi
153 fi
154
155 if test $ol_enable_slurpd = yes ; then
156         dnl SLURPD was specifically enabled
157         if test $ol_with_threads = no ; then
158                 AC_MSG_ERROR([slurpd requires threads]);
159         fi
160 fi
161
162 AC_MSG_RESULT(done)
163
164 ## Initialize vars
165 LDAP_DEFS=
166 LDAP_LIBS=
167 LDBM_DEFS=
168 LDBM_LIBS=
169 LTHREAD_DEFS=
170 LTHREAD_LIBS=
171 LUTIL_DEFS=
172 LUTIL_LIBS=
173
174 LDAPD_DEFS=
175 LDAPD_LIBS=
176 SLAPD_DEFS=
177 SLAPD_LIBS=
178 SLURPD_DEFS=
179 SLURPD_LIBS=
180
181 BUILD_LDAPD=no
182 BUILD_SLAPD=no
183 BUILD_SLURPD=no
184
185 BUILD_LDBM=no
186 BUILD_PASSWD=no
187 BUILD_SHELL=no
188
189 KRB_DEFS=
190 KRB_LIBS=
191 TERMCAP_DEFS=
192 TERMCAP_LIBS=
193
194 dnl ----------------------------------------------------------------
195 dnl Checks for programs
196
197 AC_PROG_CC
198 AC_PROG_GCC_TRADITIONAL
199
200 AC_PROG_LN_S
201 AC_PROG_INSTALL
202 AC_PROG_RANLIB
203 AC_PROG_MAKE_SET
204
205 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
206         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
207 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
208 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
209
210 dnl ----------------------------------------------------------------
211 dnl Checks for libraries
212
213 dnl Find socket()
214 dnl Likely combinations:
215 dnl             -lsocket [ -lnsl_s | -lnsl ]
216 dnl             -linet
217
218 AC_CHECK_FUNC(socket, :, [      
219 dnl
220 dnl hopefully we won't include too many libraries
221 dnl
222         AC_CHECK_LIB(socket, main)
223         AC_CHECK_LIB(net, main)
224         AC_CHECK_LIB(nsl_s, main)
225         AC_CHECK_LIB(nsl, main)
226         AC_CHECK_LIB(inet, socket)
227         AC_CHECK_LIB(gen, main)
228 ])
229
230 dnl HP-UX requires -lV3
231 AC_CHECK_LIB(V3, sigset)
232
233 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
234         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
235
236         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
237                 AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
238                         [-lkrb5 -ldes425])
239
240                 if test $have_k5 = yes ; then
241                         ol_with_kerberos=found
242                         ol_link_kerberos=yes
243
244                         KRB_DEFS="-DKERBEROS"
245                         KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
246                 fi
247         fi
248 fi
249 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
250         AC_CHECK_HEADERS(krb.h des.h)
251
252         if test $ac_cv_header_krb_h = yes ; then
253                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
254
255                 if test $have_k4 = yes ; then
256                         ol_with_kerberos=found
257                         ol_link_kerberos=yes
258
259                         KRB_DEFS="-DKERBEROS"
260                         KRB_LIBS="-lkrb -ldes"
261                 fi
262         fi
263 fi
264
265
266 ol_link_threads=no
267 if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
268         AC_CHECK_HEADERS(pthread.h sched.h)
269
270         if test $ac_cv_header_pthread_h = yes ; then
271                 OL_POSIX_THREAD_VERSION
272
273                 if test $ol_cv_pthread_version = final ; then
274                         LTHREAD_DEFS="$LTHREAD_DEFS -DPOSIX_THREADS"
275                 elif test $ol_cv_pthread_version = draft4 ; then
276                         LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_MIT_PTHREADS"
277                 else
278                         AC_MSG_ERROR([unknown pthread version])
279                 fi
280
281                 # consider threads found
282                 ol_with_threads=found
283
284                 OL_LINUX_THREADS
285
286                 if test $ol_cv_linux_threads = yes ; then
287 dnl                     AC_DEFINE(HAVE_LINUX_THREADS,1)
288                         LTHREAD_DEFS="$LTHREAD_DEFS -DHAVE_LINUX_THREADS"
289                 fi
290
291                 dnl Now the hard part, how to link
292
293                 dnl A few platforms have pthread support in standard libraries
294                 AC_CHECK_FUNC(pthread_create,[ol_link_threads=yes])
295
296                 if test $ol_link_threads = no ; then
297                         dnl try -pthread
298                         AC_CACHE_CHECK([for pthread_create with -pthread],
299                                 [ol_cv_pthread_flag], [
300                                 dnl save the CPPFLAGS
301                                 save_LIBS="$LIBS"
302                                 LIBS="-pthread $LIBS"
303                                 AC_TRY_LINK([#include <pthread.h>],[
304                                         pthread_create((pthread_t*) 0,
305                                                 (pthread_attr_t*) 0, 0, 0);
306                                         ], ol_cv_pthread_flag=yes, ol_cv_pthread_flag=no)
307                                 dnl restore the LIBS
308                                 LIBS="$save_LIBS"
309                         ])
310
311                         if test $ol_cv_pthread_flag = yes ; then
312                                 LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
313                                 ol_link_threads=posix
314                         fi
315                 fi
316
317                 if test $ol_link_threads = no ; then
318                         dnl try -lpthread
319                         save_LIBS="$LIBS"
320                         AC_CHECK_LIB(pthread, pthread_create, [
321                                 ol_link_threads=posix
322                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"])
323                         LIBS="$save_LIBS"
324                 fi
325
326                 if test $ol_link_threads = no ; then
327                         dnl try -lc_r
328                         save_LIBS="$LIBS"
329                         AC_CHECK_LIB(c_r, pthread_create, [
330                                 ol_link_threads=posix
331                                 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"])
332                         LIBS="$save_LIBS"
333                 fi
334
335                 if test $ol_link_threads = no ; then
336                         dnl try DEC Threads
337                         save_LIBS="$LIBS"
338                         AC_CHECK_LIB(pthread, pthread_create, [
339                                 ol_link_threads=posix
340                                 LTHREAD_DEFS="$LTHREAD_DEFS -DDEC_THREADS"
341                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc"],,
342                                 [-lmach -lexc -lc])
343                         LIBS="$save_LIBS"
344                 fi
345
346                 if test $ol_link_threads != no ; then
347                         dnl All POSIX Thread (final) implementations should have
348                         dnl sched_yield instead of pthread yield.
349                         dnl check for both
350                         save_LIBS="$LIBS"
351                         LIBS="$LTHREAD_LIBS $LIBS"
352                         AC_CHECK_FUNCS(sched_yield pthread_yield)
353                         LIBS="$save_LIBS"
354
355                         if test $ac_cv_func_sched_yield = no -a \
356                                 $ac_cv_func_pthread_yield = no ; then
357
358                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
359                                 AC_MSG_ERROR([POSIX Threads are not usable])
360                         fi
361                 else
362                         AC_MSG_ERROR([could not link with POSIX Threads])
363                 fi
364         fi
365
366         if test $ol_with_threads = posix ; then
367                 AC_MSG_ERROR([could not locate POSIX Threads])
368         fi
369 fi
370
371 if test $ol_with_threads = manual ; then
372         dnl User thinks he can manually configure threads.
373         $ol_link_threads=yes
374
375         AC_MSG_WARN([thread defines and link options must be set manually])
376
377         AC_CHECK_HEADERS(pthread.h sched.h)
378         AC_CHECK_FUNCS(sched_yield pthread_yield)
379         OL_LINUX_THREADS
380 fi
381
382 if test $ol_link_threads = no ; then
383         if test $ol_with_threads = yes ; then
384                 AC_MSG_ERROR([no suitable thread support])
385         fi
386
387         if test $ol_with_threads = auto ; then
388                 AC_MSG_WARN([no suitable thread support, disabling threads])
389                 $ol_with_threads = no
390         fi
391
392         LTHREAD_DEFS="-DNO_THREADS"
393         LTHREAD_LIBS=""
394 fi
395
396 ol_link_ldbm=no 
397 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
398         OL_BERKELEY_DB2
399
400         if test $ol_cv_berkeley_db2 = yes ; then
401                 ol_link_ldbm=db2
402                 ol_with_ldbm_api=db2
403
404                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2"
405
406                 if test $ol_with_ldbm_type = hash ; then
407                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
408                 else
409                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
410                 fi
411
412                 dnl $ol_cv_lib_db2 should be yes or -ldb
413                 dnl (it could be no, but that would be an error
414                 if test $ol_cv_lib_db2 != yes ; then
415                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
416                 fi
417         fi
418 fi
419
420 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
421         OL_BERKELEY_DB
422
423         if test $ol_cv_berkeley_db = yes ; then
424                 ol_link_ldbm=db
425                 ol_with_ldbm_api=db
426
427                 if test $ac_cv_header_db_185_h = yes ; then
428                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2_COMPAT185"
429                 fi
430
431                 if test $ol_with_ldbm_type = hash ; then
432                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
433                 else
434                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
435                 fi
436
437                 dnl $ol_cv_lib_db should be yes or -ldb
438                 dnl (it could be no, but that would be an error
439                 if test $ol_cv_lib_db != yes ; then
440                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
441                 fi
442         fi
443 fi
444
445 if test $ol_with_ldbm_api = manual ; then
446         dnl User thinks he can manually configure LDBM api.
447         $ol_link_ldbm=yes
448
449         AC_MSG_WARN([LDBM defines and link options must be set manually])
450
451         AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
452 fi
453
454 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
455         AC_MSG_WARN(Could not find LDBM with BTREE support);
456         $ol_with_ldbm_api=none
457 fi
458
459 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
460         OL_GDBM
461
462         if test $ol_cv_gdbm = yes ; then
463                 ol_link_ldbm=gdbm
464                 ol_with_ldbm_api=gdbm
465
466                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_GDBM"
467
468                 if test $ol_cv_lib_gdbm != yes ; then
469                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
470                 fi
471         fi
472 fi
473
474 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = ndbm ; then
475         OL_NDBM
476
477         if test $ol_cv_ndbm = yes ; then
478                 ol_link_ldbm=ndbm
479                 ol_with_ldbm_api=ndbm
480
481                 if test $ol_with_ldbm_api = ndbm ; then
482                         AC_WARN([Attempting to use NDBM.  Functionality will be limited.])
483                 fi
484
485                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_NDBM"
486
487                 if test $ol_cv_lib_ndbm != yes ; then
488                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
489                 fi
490         fi
491 fi
492
493 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
494         AC_MSG_WARN(could not find suitable LDBM backend)
495         if test $ol_enable_ldbm = yes ; then
496                 AC_MSG_ERROR(select appropriate LDBM options or disable)
497         fi
498
499         AC_MSG_WARN(disabling LDBM)
500         $ol_enable_ldbm=no
501 fi
502
503 if test $ol_enable_wrappers = yes ; then
504         AC_CHECK_LIB(wrap, hosts_access,
505                 [have_wrappers=yes], [have_wrappers=no])
506
507         if test $have_wrappers = yes ; then
508 dnl             LIBTCPD="-lwrap"
509 dnl             AC_DEFINE(HAVE_TCPD)
510                 SLAPD_DEFS="$SLAPD_DEFS -DTCP_WRAPPERS"
511                 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
512         else
513                 AC_MSG_WARN(could not find -lwrap)
514                 if test $ol_enable_wrappers = yes ; then
515                         AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
516                 fi
517
518                 AC_MSG_WARN(disabling wrappers support)
519                 ol_enable_wrappers=no
520         fi
521
522 fi
523
524 # ud needs termcap (should insert check here)
525 ol_link_termcap=no
526
527 AC_CHECK_HEADERS(termcap.h ncurses.h)
528
529 if test $ol_link_termcap = no ; then
530         AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
531         if test $have_termcap = yes ; then
532                 ol_link_termcap=yes
533                 TERMCAP_LIBS=-ltermcap
534         fi
535 fi
536
537 if test $ol_link_termcap = no ; then
538         AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
539         if test $have_ncurses = yes ; then
540                 ol_link_termcap=yes
541                 TERMCAP_LIBS=-lncurses
542         fi
543 fi
544
545 if test $ol_link_termcap = no ; then
546         TERMCAP_DEFS="-DNOTERMCAP"
547         TERMCAP_LIBS=
548 fi
549
550 # FreeBSD (and others) have crypt(3) in -lcrypt
551 if test $ol_enable_crypt != no ; then
552         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
553                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
554                         have_crypt=yes], [have_crypt=no])])
555
556         if test $have_crypt = yes ; then
557 dnl             AC_DEFINE(SLAPD_CRYPT,1)
558                 LUTIL_DEFS="$LUTIL_DEFS -DLDAP_CRYPT"
559         else
560                 AC_MSG_WARN(could not find crypt)
561                 if test $ol_enable_crypt = yes ; then
562                         AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
563                 fi
564
565                 AC_MSG_WARN(disabling crypt support)
566                 ol_enable_crypt=no
567         fi
568 fi
569
570 dnl ----------------------------------------------------------------
571 dnl Checks for header files.
572 AC_HEADER_STDC
573 AC_HEADER_DIRENT
574 AC_HEADER_SYS_WAIT
575 AC_CHECK_HEADERS( \
576         stddef.h        \
577         fcntl.h         \
578         filio.h         \
579         limits.h        \
580         malloc.h        \
581         sgtty.h         \
582         sys/file.h      \
583         sys/ioctl.h     \
584         sys/time.h      \
585         syslog.h        \
586         termio.h        \
587         unistd.h        \
588 )
589
590 dnl ----------------------------------------------------------------
591 dnl Checks for typedefs, structures, and compiler characteristics.
592 AC_TYPE_GETGROUPS
593 AC_TYPE_MODE_T
594 AC_TYPE_OFF_T
595 AC_TYPE_PID_T
596 AC_TYPE_SIGNAL
597 AC_TYPE_SIZE_T
598 AC_TYPE_UID_T
599 AC_STRUCT_ST_BLKSIZE
600 AC_HEADER_TIME
601 AC_STRUCT_TM
602
603 dnl AC_C_BIGENDIAN
604 AC_C_CONST
605
606 dnl ----------------------------------------------------------------
607 dnl Checks for library functions.
608 AC_FUNC_MEMCMP
609 AC_FUNC_STRFTIME
610 AC_FUNC_VPRINTF
611 AC_FUNC_WAIT3
612
613 AC_CHECK_FUNCS(         \
614         flock                   \
615         gethostname             \
616         gettimeofday    \
617         getdtablesize   \
618         lockf                   \
619         memcpy                  \
620         mktime                  \
621         select                  \
622         setpwfile               \
623         setsid                  \
624         signal                  \
625         sigset                  \
626         socket                  \
627         strerror                \
628         strstr                  \
629         strrchr                 \
630         strsep                  \
631         strtod                  \
632         strtol                  \
633         strtoul                 \
634         sysconf                 \
635 )
636
637 AC_REPLACE_FUNCS(strdup)
638
639 dnl ----------------------------------------------------------------
640 # Check Configuration
641 OL_SYS_ERRLIST
642
643 dnl ----------------------------------------------------------------
644 dnl Sort out defines
645
646 if test $ol_enable_debug != no ; then
647         LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
648 fi
649 dnl     if test $ol_enable_syslog != no ; then
650 dnl             LDAP_DEFS="$LDAP_DEFS -DLDAP_SYSLOG"
651 dnl     fi
652 if test $ol_enable_libui = no ; then
653         LDAP_DEFS="$LDAP_DEFS -DNO_USERINTERFACE"
654 fi
655 if test $ol_enable_cache = no ; then
656         LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
657 fi
658 if test $ol_enable_dns != no ; then
659         LDAP_DEFS="$LDAP_DEFS -DLDAP_DNS"
660 fi
661 if test $ol_enable_referrals != no ; then
662         LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
663 fi
664 if test $ol_enable_cldap != no ; then
665         LDAP_DEFS="$LDAP_DEFS -DCLDAP"
666 fi
667
668 if test $ol_enable_aclgroup != no ; then
669         AC_DEFINE(SLAPD_ACLGROUP,1)
670         SLAPD_DEFS="$SLAPD_DEFS -DACLGROUP"
671 fi
672
673 if test $ol_enable_md5 != no ; then
674 dnl     AC_DEFINE(SLAPD_MD5,1)
675         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_MD5"
676 fi
677
678 if test $ol_enable_sha1 != no ; then
679 dnl     AC_DEFINE(SLAPD_SHA1,1)
680         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_SHA1"
681 fi
682
683 if test $ol_enable_phonetic != no ; then
684         AC_DEFINE(SLAPD_PHONETIC,1)
685         SLAPD_DEFS="$SLAPD_DEFS -DSOUNDEX"
686 fi
687
688 if test $ol_enable_rlookups != no ; then
689         AC_DEFINE(SLAPD_RLOOKUPS,1)
690         SLAPD_DEFS="$SLAPD_DEFS -DREVERSE_LOOKUPS"
691 fi
692
693 if test $ol_link_ldbm != no ; then
694 dnl     AC_DEFINE(SLAPD_LDBM,1)
695         BUILD_SLAPD=yes
696         BUILD_LDBM=yes
697         LDBM_DEFS="-DLDAP_LDBM $LDBM_DEFS"
698 fi
699
700 if test $ol_enable_passwd != no ; then
701 dnl     AC_DEFINE(SLAPD_PASSWD,1)
702         BUILD_SLAPD=yes
703         BUILD_PASSWD=yes
704         SLAPD_DEFS="-DLDAP_PASSWD $SLAPD_DEFS"
705 fi
706
707 if test $ol_enable_shell != no ; then
708 dnl     AC_DEFINE(SLAPD_SHELL,1)
709         BUILD_SLAPD=yes
710         BUILD_SHELL=yes
711         SLAPD_DEFS="-DLDAP_SHELL $SLAPD_DEFS"
712 fi
713
714 if test $ol_enable_slurpd != no -a $ol_link_threads != no -a \
715         $BUILD_SLAPD = yes ; then
716         BUILD_SLURPD=yes
717 fi
718
719 dnl ----------------------------------------------------------------
720
721 AC_SUBST(BUILD_LDAPD)
722 AC_SUBST(BUILD_SLAPD)
723   AC_SUBST(BUILD_LDBM)
724   AC_SUBST(BUILD_PASSWD)
725   AC_SUBST(BUILD_SHELL)
726 AC_SUBST(BUILD_SLURPD)
727
728
729 AC_SUBST(LDAP_DEFS)
730 AC_SUBST(LDAP_LIBS)
731 AC_SUBST(LDAPD_DEFS)
732 AC_SUBST(LDAPD_LIBS)
733 AC_SUBST(SLAPD_DEFS)
734 AC_SUBST(SLAPD_LIBS)
735 AC_SUBST(SLURPD_DEFS)
736 AC_SUBST(SLURPD_LIBS)
737 AC_SUBST(LDBM_DEFS)
738 AC_SUBST(LDBM_LIBS)
739 AC_SUBST(LTHREAD_DEFS)
740 AC_SUBST(LTHREAD_LIBS)
741 AC_SUBST(LUTIL_DEFS)
742 AC_SUBST(LUTIL_LIBS)
743
744 AC_SUBST(KRB_DEFS)
745 AC_SUBST(KRB_LIBS)
746 AC_SUBST(TERMCAP_DEFS)
747 AC_SUBST(TERMCAP_LIBS)
748
749 dnl ----------------------------------------------------------------
750 dnl final output
751 dnl
752
753 dnl AC_OUTPUT( \
754 dnl contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
755 dnl contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
756 dnl contrib/whois++/Makefile:build/top.mk:contrib/whois++/Makefile.in:build/rules.mk \
757 dnl [date > stamp-h])
758
759 AC_OUTPUT( \
760 Makefile:build/top.mk:Makefile.in:build/dir.mk \
761 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
762 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
763 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
764 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
765 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
766 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
767 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
768 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
769 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
770 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
771 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
772 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
773 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
774 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
775 include/Makefile:build/top.mk:include/Makefile.in \
776 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
777 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk \
778 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk \
779 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk \
780 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk \
781 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk \
782 libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk \
783 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk \
784 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
785 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
786 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
787 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
788 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
789 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
790 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
791 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
792 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
793 tests/Makefile:build/top.mk:tests/Makefile.in \
794 ,[date > stamp-h])