]> git.sur5r.net Git - openldap/blob - configure.in
Cleanup config.status and Makefile:Makefile.in dependency rules
[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 AC_CHECK_FUNC(socket, :,  
214 [       AC_CHECK_LIB(nsl, gethostname)
215         AC_CHECK_LIB(socket, socket)
216         AC_CHECK_LIB(inet, socket)
217 ])
218
219 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 ; then
220         AC_CHECK_HEADERS(kerberosIV/krb.h kerberosIV/des.h)
221
222         if test $ac_cv_header_kerberosIV_krb_h = yes ; then
223                 AC_CHECK_LIB(krb4, main, [have_k5=yes], [have_k5=no],
224                         [-lkrb5 -ldes425])
225
226                 if test $have_k5 = yes ; then
227                         ol_with_kerberos=found
228                         ol_link_kerberos=yes
229
230                         KRB_DEFS="-DKERBEROS"
231                         KRB_LIBS="-lkrb4 -lkrb5 -ldes425"
232                 fi
233         fi
234 fi
235 if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 ; then
236         AC_CHECK_HEADERS(krb.h des.h)
237
238         if test $ac_cv_header_krb_h = yes ; then
239                 AC_CHECK_LIB(krb, main, [have_k4=yes], [have_k4=no], [-ldes])
240
241                 if test $have_k4 = yes ; then
242                         ol_with_kerberos=found
243                         ol_link_kerberos=yes
244
245                         KRB_DEFS="-DKERBEROS"
246                         KRB_LIBS="-lkrb -ldes"
247                 fi
248         fi
249 fi
250
251
252 ol_link_threads=no
253 if test $ol_with_threads = auto -o $ol_with_threads = posix ; then
254         AC_CHECK_HEADERS(pthread.h sched.h)
255
256         if test $ac_cv_header_pthread_h = yes ; then
257                 OL_POSIX_THREAD_VERSION
258
259                 if test $ol_cv_pthread_version = final ; then
260                         LTHREAD_DEFS="$LTHREAD_DEFS -DPOSIX_THREADS"
261                 elif test $ol_cv_pthread_version = draft4 ; then
262                         LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_MIT_PTHREADS"
263                 else
264                         AC_MSG_ERROR([unknown pthread version])
265                 fi
266
267                 # consider threads found
268                 ol_with_threads=found
269
270                 OL_LINUX_THREADS
271
272                 if test $ol_cv_linux_threads = yes ; then
273 dnl                     AC_DEFINE(HAVE_LINUX_THREADS,1)
274                         LTHREAD_DEFS="$LTHREAD_DEFS -DHAVE_LINUX_THREADS"
275                 fi
276
277                 dnl Now the hard part, how to link
278
279                 dnl A few platforms have pthread support in standard libraries
280                 AC_CHECK_FUNC(pthread_create,[ol_link_threads=yes])
281
282                 if test $ol_link_threads = no ; then
283                         dnl try -pthread
284                         AC_CACHE_CHECK([for pthread_create with -pthread],
285                                 [ol_cv_pthread_flag], [
286                                 dnl save the CPPFLAGS
287                                 save_LIBS="$LIBS"
288                                 LIBS="-pthread $LIBS"
289                                 AC_TRY_LINK([#include <pthread.h>],[
290                                         pthread_create((pthread_t*) 0,
291                                                 (pthread_attr_t*) 0, 0, 0);
292                                         ], ol_cv_pthread_flag=yes, ol_cv_pthread_flag=no)
293                                 dnl restore the LIBS
294                                 LIBS="$save_LIBS"
295                         ])
296
297                         if test $ol_cv_pthread_flag = yes ; then
298                                 LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
299                                 ol_link_threads=posix
300                         fi
301                 fi
302
303                 if test $ol_link_threads = no ; then
304                         dnl try -lpthread
305                         save_LIBS="$LIBS"
306                         AC_CHECK_LIB(pthread, pthread_create, [
307                                 ol_link_threads=posix
308                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"])
309                         LIBS="$save_LIBS"
310                 fi
311
312                 if test $ol_link_threads = no ; then
313                         dnl try -lc_r
314                         save_LIBS="$LIBS"
315                         AC_CHECK_LIB(c_r, pthread_create, [
316                                 ol_link_threads=posix
317                                 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"])
318                         LIBS="$save_LIBS"
319                 fi
320
321                 if test $ol_link_threads = no ; then
322                         dnl try DEC Threads
323                         save_LIBS="$LIBS"
324                         AC_CHECK_LIB(pthread, pthread_create, [
325                                 ol_link_threads=posix
326                                 LTHREAD_DEFS="$LTHREAD_DEFS -DDEC_THREADS"
327                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc"],,
328                                 [-lmach -lexc -lc])
329                         LIBS="$save_LIBS"
330                 fi
331
332                 if test $ol_link_threads != no ; then
333                         dnl All POSIX Thread (final) implementations should have
334                         dnl sched_yield instead of pthread yield.
335                         dnl check for both
336                         save_LIBS="$LIBS"
337                         LIBS="$LTHREAD_LIBS $LIBS"
338                         AC_CHECK_FUNCS(sched_yield pthread_yield)
339                         LIBS="$save_LIBS"
340
341                         if test $ac_cv_func_sched_yield = no -a \
342                                 $ac_cv_func_pthread_yield = no ; then
343
344                                 AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
345                                 AC_MSG_ERROR([POSIX Threads are not usable])
346                         fi
347                 else
348                         AC_MSG_ERROR([could not link with POSIX Threads])
349                 fi
350         fi
351
352         if test $ol_with_threads = posix ; then
353                 AC_MSG_ERROR([could not locate POSIX Threads])
354         fi
355 fi
356
357 if test $ol_with_threads = manual ; then
358         dnl User thinks he can manually configure threads.
359         $ol_link_threads=yes
360
361         AC_MSG_WARN([thread defines and link options must be set manually])
362
363         AC_CHECK_HEADERS(pthread.h sched.h)
364         AC_CHECK_FUNCS(sched_yield pthread_yield)
365         OL_LINUX_THREADS
366 fi
367
368 if test $ol_link_threads = no ; then
369         if test $ol_with_threads = yes ; then
370                 AC_MSG_ERROR([no suitable thread support])
371         fi
372
373         if test $ol_with_threads = auto ; then
374                 AC_MSG_WARN([no suitable thread support, disabling threads])
375                 $ol_with_threads = no
376         fi
377
378         LTHREAD_DEFS="-DNO_THREADS"
379         LTHREAD_LIBS=""
380 fi
381
382 ol_link_ldbm=no 
383 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
384         OL_BERKELEY_DB2
385
386         if test $ol_cv_berkeley_db2 = yes ; then
387                 ol_link_ldbm=db2
388                 ol_with_ldbm_api=db2
389
390                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2"
391
392                 if test $ol_with_ldbm_type = hash ; then
393                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
394                 else
395                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
396                 fi
397
398                 dnl $ol_cv_lib_db2 should be yes or -ldb
399                 dnl (it could be no, but that would be an error
400                 if test $ol_cv_lib_db2 != yes ; then
401                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db2"
402                 fi
403         fi
404 fi
405
406 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
407         OL_BERKELEY_DB
408
409         if test $ol_cv_berkeley_db = yes ; then
410                 ol_link_ldbm=db
411                 ol_with_ldbm_api=db
412
413                 if test $ac_cv_header_db_185_h = yes ; then
414                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2_COMPAT185"
415                 fi
416
417                 if test $ol_with_ldbm_type = hash ; then
418                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
419                 else
420                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
421                 fi
422
423                 dnl $ol_cv_lib_db should be yes or -ldb
424                 dnl (it could be no, but that would be an error
425                 if test $ol_cv_lib_db != yes ; then
426                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_db"
427                 fi
428         fi
429 fi
430
431 if test $ol_with_ldbm_api = manual ; then
432         dnl User thinks he can manually configure LDBM api.
433         $ol_link_ldbm=yes
434
435         AC_MSG_WARN([LDBM defines and link options must be set manually])
436
437         AC_CHECK_HEADERS(db.h db_185.h gdbm.h ndbm.h)
438 fi
439
440 if test $ol_link_ldbm = no -a $ol_with_ldbm_type = btree ; then
441         AC_MSG_WARN(Could not find LDBM with BTREE support);
442         $ol_with_ldbm_api=none
443 fi
444
445 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
446         OL_GDBM
447
448         if test $ol_cv_gdbm = yes ; then
449                 ol_link_ldbm=gdbm
450                 ol_with_ldbm_api=gdbm
451
452                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_GDBM"
453
454                 if test $ol_cv_lib_gdbm != yes ; then
455                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_gdbm"
456                 fi
457         fi
458 fi
459
460 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = ndbm ; then
461         OL_NDBM
462
463         if test $ol_cv_ndbm = yes ; then
464                 ol_link_ldbm=ndbm
465                 ol_with_ldbm_api=ndbm
466
467                 if test $ol_with_ldbm_api = ndbm ; then
468                         AC_WARN([Attempting to use NDBM.  Functionality will be limited.])
469                 fi
470
471                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_NDBM"
472
473                 if test $ol_cv_lib_ndbm != yes ; then
474                         LDBM_LIBS="$LDBM_LIBS $ol_cv_lib_ndbm"
475                 fi
476         fi
477 fi
478
479 if test $ol_link_ldbm = no -a $ol_enable_ldbm != no ; then
480         AC_MSG_WARN(could not find suitable LDBM backend)
481         if test $ol_enable_ldbm = yes ; then
482                 AC_MSG_ERROR(select appropriate LDBM options or disable)
483         fi
484
485         AC_MSG_WARN(disabling LDBM)
486         $ol_enable_ldbm=no
487 fi
488
489 if test $ol_enable_wrappers = yes ; then
490         AC_CHECK_LIB(wrap, hosts_access,
491                 [have_wrappers=yes], [have_wrappers=no])
492
493         if test $have_wrappers = yes ; then
494 dnl             LIBTCPD="-lwrap"
495 dnl             AC_DEFINE(HAVE_TCPD)
496                 SLAPD_DEFS="$SLAPD_DEFS -DTCP_WRAPPERS"
497                 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
498         else
499                 AC_MSG_WARN(could not find -lwrap)
500                 if test $ol_enable_wrappers = yes ; then
501                         AC_MSG_ERROR(could not find wrappers, select appropriate options or disable)
502                 fi
503
504                 AC_MSG_WARN(disabling wrappers support)
505                 ol_enable_wrappers=no
506         fi
507
508 fi
509
510 # ud needs termcap (should insert check here)
511 ol_link_termcap=no
512
513 AC_CHECK_HEADERS(termcap.h ncurses.h)
514
515 if test $ol_link_termcap = no ; then
516         AC_CHECK_LIB(termcap, tputs, [have_termcap=yes], [have_termcap=no])
517         if test $have_termcap = yes ; then
518                 ol_link_termcap=yes
519                 TERMCAP_LIBS=-ltermcap
520         fi
521 fi
522
523 if test $ol_link_termcap = no ; then
524         AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
525         if test $have_ncurses = yes ; then
526                 ol_link_termcap=yes
527                 TERMCAP_LIBS=-lncurses
528         fi
529 fi
530
531 if test $ol_link_termcap = no ; then
532         TERMCAP_DEFS="-DNOTERMCAP"
533         TERMCAP_LIBS=
534 fi
535
536 # FreeBSD (and others) have crypt(3) in -lcrypt
537 if test $ol_enable_crypt != no ; then
538         AC_CHECK_FUNC(crypt, [have_crypt=yes], [
539                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
540                         have_crypt=yes], [have_crypt=no])])
541
542         if test $have_crypt = yes ; then
543 dnl             AC_DEFINE(SLAPD_CRYPT,1)
544                 LUTIL_DEFS="$LUTIL_DEFS -DLDAP_CRYPT"
545         else
546                 AC_MSG_WARN(could not find crypt)
547                 if test $ol_enable_crypt = yes ; then
548                         AC_MSG_ERROR(could not find crypt, select appropriate options or disable)
549                 fi
550
551                 AC_MSG_WARN(disabling crypt support)
552                 ol_enable_crypt=no
553         fi
554 fi
555
556 dnl ----------------------------------------------------------------
557 dnl Checks for header files.
558 AC_HEADER_STDC
559 AC_HEADER_DIRENT
560 AC_HEADER_SYS_WAIT
561 AC_CHECK_HEADERS( \
562         stddef.h        \
563         fcntl.h         \
564         filio.h         \
565         limits.h        \
566         malloc.h        \
567         sgtty.h         \
568         sys/file.h      \
569         sys/ioctl.h     \
570         sys/time.h      \
571         syslog.h        \
572         termio.h        \
573         unistd.h        \
574 )
575
576 dnl ----------------------------------------------------------------
577 dnl Checks for typedefs, structures, and compiler characteristics.
578 AC_TYPE_GETGROUPS
579 AC_TYPE_MODE_T
580 AC_TYPE_OFF_T
581 AC_TYPE_PID_T
582 AC_TYPE_SIGNAL
583 AC_TYPE_SIZE_T
584 AC_TYPE_UID_T
585 AC_STRUCT_ST_BLKSIZE
586 AC_HEADER_TIME
587 AC_STRUCT_TM
588
589 dnl AC_C_BIGENDIAN
590 AC_C_CONST
591
592 dnl ----------------------------------------------------------------
593 dnl Checks for library functions.
594 AC_FUNC_MEMCMP
595 AC_FUNC_STRFTIME
596 AC_FUNC_VPRINTF
597 AC_FUNC_WAIT3
598
599 AC_CHECK_FUNCS(         \
600         flock                   \
601         gethostname             \
602         gettimeofday    \
603         getdtablesize   \
604         lockf                   \
605         memcpy                  \
606         mktime                  \
607         select                  \
608         setpwfile               \
609         setsid                  \
610         signal                  \
611         sigset                  \
612         socket                  \
613         strerror                \
614         strstr                  \
615         strrchr                 \
616         strsep                  \
617         strtod                  \
618         strtol                  \
619         strtoul                 \
620         sysconf                 \
621 )
622
623 AC_REPLACE_FUNCS(strdup)
624
625 dnl ----------------------------------------------------------------
626 # Check Configuration
627 OL_SYS_ERRLIST
628
629 dnl ----------------------------------------------------------------
630 dnl Sort out defines
631
632 if test $ol_enable_debug != no ; then
633         LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
634 fi
635 dnl     if test $ol_enable_syslog != no ; then
636 dnl             LDAP_DEFS="$LDAP_DEFS -DLDAP_SYSLOG"
637 dnl     fi
638 if test $ol_enable_libui = no ; then
639         LDAP_DEFS="$LDAP_DEFS -DNO_USERINTERFACE"
640 fi
641 if test $ol_enable_cache = no ; then
642         LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
643 fi
644 if test $ol_enable_dns != no ; then
645         LDAP_DEFS="$LDAP_DEFS -DLDAP_DNS"
646 fi
647 if test $ol_enable_referrals != no ; then
648         LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
649 fi
650 if test $ol_enable_cldap != no ; then
651         LDAP_DEFS="$LDAP_DEFS -DCLDAP"
652 fi
653
654 if test $ol_enable_aclgroup != no ; then
655         AC_DEFINE(SLAPD_ACLGROUP,1)
656         SLAPD_DEFS="$SLAPD_DEFS -DACLGROUP"
657 fi
658
659 if test $ol_enable_md5 != no ; then
660 dnl     AC_DEFINE(SLAPD_MD5,1)
661         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_MD5"
662 fi
663
664 if test $ol_enable_sha1 != no ; then
665 dnl     AC_DEFINE(SLAPD_SHA1,1)
666         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_SHA1"
667 fi
668
669 if test $ol_enable_phonetic != no ; then
670         AC_DEFINE(SLAPD_PHONETIC,1)
671         SLAPD_DEFS="$SLAPD_DEFS -DSOUNDEX"
672 fi
673
674 if test $ol_enable_rlookups != no ; then
675         AC_DEFINE(SLAPD_RLOOKUPS,1)
676         SLAPD_DEFS="$SLAPD_DEFS -DREVERSE_LOOKUPS"
677 fi
678
679 if test $ol_link_ldbm != no ; then
680 dnl     AC_DEFINE(SLAPD_LDBM,1)
681         BUILD_SLAPD=yes
682         BUILD_LDBM=yes
683         LDBM_DEFS="-DLDAP_LDBM $LDBM_DEFS"
684 fi
685
686 if test $ol_enable_passwd != no ; then
687 dnl     AC_DEFINE(SLAPD_PASSWD,1)
688         BUILD_SLAPD=yes
689         BUILD_PASSWD=yes
690         SLAPD_DEFS="-DLDAP_PASSWD $SLAPD_DEFS"
691 fi
692
693 if test $ol_enable_shell != no ; then
694 dnl     AC_DEFINE(SLAPD_SHELL,1)
695         BUILD_SLAPD=yes
696         BUILD_SHELL=yes
697         SLAPD_DEFS="-DLDAP_SHELL $SLAPD_DEFS"
698 fi
699
700 if test $ol_enable_slurpd != no -a $ol_link_threads != no -a \
701         $BUILD_SLAPD = yes ; then
702         BUILD_SLURPD=yes
703 fi
704
705 dnl ----------------------------------------------------------------
706
707 AC_SUBST(BUILD_LDAPD)
708 AC_SUBST(BUILD_SLAPD)
709   AC_SUBST(BUILD_LDBM)
710   AC_SUBST(BUILD_PASSWD)
711   AC_SUBST(BUILD_SHELL)
712 AC_SUBST(BUILD_SLURPD)
713
714
715 AC_SUBST(LDAP_DEFS)
716 AC_SUBST(LDAP_LIBS)
717 AC_SUBST(LDAPD_DEFS)
718 AC_SUBST(LDAPD_LIBS)
719 AC_SUBST(SLAPD_DEFS)
720 AC_SUBST(SLAPD_LIBS)
721 AC_SUBST(SLURPD_DEFS)
722 AC_SUBST(SLURPD_LIBS)
723 AC_SUBST(LDBM_DEFS)
724 AC_SUBST(LDBM_LIBS)
725 AC_SUBST(LTHREAD_DEFS)
726 AC_SUBST(LTHREAD_LIBS)
727 AC_SUBST(LUTIL_DEFS)
728 AC_SUBST(LUTIL_LIBS)
729
730 AC_SUBST(KRB_DEFS)
731 AC_SUBST(KRB_LIBS)
732 AC_SUBST(TERMCAP_DEFS)
733 AC_SUBST(TERMCAP_LIBS)
734
735 dnl ----------------------------------------------------------------
736 dnl final output
737 dnl
738
739 dnl AC_OUTPUT( \
740 dnl contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
741 dnl contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
742 dnl contrib/whois++/Makefile:build/top.mk:contrib/whois++/Makefile.in:build/rules.mk \
743 dnl [date > stamp-h])
744
745 AC_OUTPUT( \
746 Makefile:build/top.mk:Makefile.in:build/dir.mk \
747 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
748 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
749 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
750 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
751 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
752 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
753 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
754 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
755 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
756 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
757 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
758 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
759 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
760 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
761 include/Makefile:build/top.mk:include/Makefile.in \
762 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
763 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk \
764 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk \
765 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk \
766 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk \
767 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk \
768 libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk \
769 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk \
770 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
771 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
772 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
773 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
774 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
775 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
776 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
777 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
778 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
779 tests/Makefile:build/top.mk:tests/Makefile.in \
780 ,[date > stamp-h])