]> git.sur5r.net Git - openldap/blob - configure.in
c3b54bace3b933e5fd7f3e3964ff295a24529eed
[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(arguments)
22 AC_PREFIX_DEFAULT(/usr/local)
23
24 dnl General "enable" options
25 CF_ARG_OPTION(debug,[  --enable-debug   enable debugging (yes)],[
26         LDAP_DEBUG=no],[LDAP_DEBUG=yes],yes)dnl
27 CF_ARG_OPTION(libui,[  --enable-libui   enable library user interface (yes)],[
28         LDAP_LIBUI=no],[LDAP_LIBUI=yes],yes)dnl
29 CF_ARG_OPTION(cache,[  --enable-cache   enable caching (yes)],[
30         LDAP_CACHE=no],[LDAP_CACHE=yes],yes)dnl
31 CF_ARG_OPTION(referrals,[  --enable-referrals   enable referrals (yes)],[
32         LDAP_REFERRALS=no],[LDAP_REFERRALS=yes],yes)dnl
33
34 CF_ARG_OPTION(cldap,[  --enable-clapd   enable connectionless ldap (no)],[
35         LDAP_CLDAP=yes],[LDAP_CLDAP=no],no)dnl
36
37 dnl General "with" options
38 AC_ARG_WITH(kerberos,[  --with-kerberos use Kerberos (no)],[
39         opt_kerberos=yes],[opt_kerberos=no])
40 AC_ARG_WITH(kerberos-afs,[  --with-kerberos-afs use AFS Kerberos (no)],[
41         opt_kerberos_afs=yes],[opt_kerberos_afs=no])
42 AC_ARG_WITH(threads,[  --with-threads   use threads (yes)],[
43         opt_threads=yes],[opt_threads=no])
44
45 dnl Server options
46
47 dnl LDAPD OPTIONS
48 CF_ARG_OPTION(ldapd,[  --enable-ldapd   enable building ldapd (no)],[
49         BUILD_LDAPD=yes],[BUILD_LDAPD=no],no)dnl
50
51 dnl SLAPD OPTIONS
52 CF_ARG_OPTION(slapd,[  --enable-slapd   enable building slapd (yes)],[
53         BUILD_SLAPD=no],[BUILD_SLAPD=yes],yes)dnl
54 CF_ARG_OPTION(aclgroup,[    --enable-aclgroup   enable ACL group support (yes)],[
55         SLAPD_ACLGROUP=no],[SLAPD_ALCGROUP=yes],yes)dnl
56 CF_ARG_OPTION(crypt,[    --enable-crypt enable crypt(3) passwords (yes)],[
57         SLAPD_CRYPT=no],[SLAPD_CRYPT=yes],yes)dnl
58 CF_ARG_OPTION(md5,[    --enable-md5     enable MD5 passwords (yes)],[
59         SLAPD_MD5=no],[SLAPD_MD5=yes],yes)dnl
60 CF_ARG_OPTION(sha1,[    --enable-sha1   enable SHA1 passwords (yes)],[
61         SLAPD_SHA1=no],[SLAPD_SHA1=yes],yes)dnl
62 CF_ARG_OPTION(wrappers,[    --enable-wrappers   enable tcp wrapper support (no)],[
63         SLAPD_TCP_WRAPPERS=yes],[SLAPD_TCP_WRAPPERS=no],no)dnl
64 CF_ARG_OPTION(phonetic,[    --enable-phonetic   enable phonetic/soundex  (no)],[
65         SLAPD_PHONETIC=yes],[SLAPD_PHONETIC=no],no)dnl
66 CF_ARG_OPTION(rlookups,[    --enable-rlookups   enable reverse lookups (yes)],[
67         SLAPD_RLOOKUP=no],[SLAPD_RLOOKUP=yes],yes)dnl
68
69 dnl SLAPD Backend options
70 CF_ARG_OPTION(ldbm,[    --enable-ldbm   enable ldbm backend (yes)],[
71         SLAPD_LDBM=no],[SLAPD_LDBM=yes],yes)dnl
72 CF_ARG_OPTION(passwd,[    --enable-passwd       enable passwd backend (yes)],[
73         SLAPD_PASSWD=no],[SLAPD_PASSWD=yes],yes)dnl
74 CF_ARG_OPTION(shell,[    --enable-shell enable shell backend (yes)],[
75         SLAPD_SHELL=no],[SLAPD_SHELL=yes],yes)dnl
76
77 AC_ARG_WITH(ndbm,[    --with-ndbm               use NDB for LDBM backend (any)],[
78         opt_ndbm=yes],[opt_ndbm=no])
79 AC_ARG_WITH(gdbm,[    --with-gdbm               use GDBM for LDBM backend (any)],[
80         opt_gdbm=yes],[opt_gdbm=no])
81 AC_ARG_WITH(dbhash,[    --with-dbhash   use Berkeley DB Hash for LDBM backend (any)],[
82         opt_dbhash=yes],[opt_dbhash=no])
83 AC_ARG_WITH(dbbtree,[    --with-dbbtree use Berkeley DB Btrees for LDBM backend (any)],[
84         opt_dbbtree=yes],[opt_dbbtree=no])
85 AC_ARG_WITH(db2,[    --with-db2         use Berkeley DB2 API (any)],[
86         opt_db2=yes],[opt_db2=no])
87
88 dnl SLURPD OPTIONS
89 CF_ARG_OPTION(slurpd,[  --enable-slurpd enable building slurpd (yes)],[
90         BUILD_SLURPD=no],[BUILD_SLURPD=yes],yes)dnl
91
92 AC_MSG_RESULT(done)
93
94 AC_MSG_CHECKING(LDBM preferences)
95 ldbm_prefer=any
96
97 if test "$opt_ndbm" = yes ; then
98         ldbm_prefer=ndbm
99 fi
100 if test "$opt_gdbm" = yes ; then
101         ldbm_prefer=gdbm
102 fi
103 if test "$opt_dbhash" = yes ; then
104         ldbm_prefer=dbhash
105 fi
106 if test "$opt_dbbtree" = yes ; then
107         ldbm_prefer=dbbtree
108 fi
109 AC_MSG_RESULT($ldbm_prefer)
110
111 if test "$BUILD_SLAPD" != "yes" ; then
112         BUILD_SLURPD="no"
113         SLAPD_LDBM="no"
114         SLAPD_PASSWD="no"
115         SLAPD_SHELL="no"
116         ldbm_prefer="none"
117 fi
118
119 ## general LDAP arguments
120 LDAP_DEFS=
121 LDAP_LIBS=
122
123 if test "$LDAP_DEBUG" = "yes" ; then
124         LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
125 fi
126 if test "$LDAP_REFERRALS" = "yes" ; then
127         AC_DEFINE(LDAP_REFERRALS,1)
128         LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
129 fi
130 if test "$LDAP_CACHE" = "no" ; then
131         AC_DEFINE(LDAP_NOCACHE,1)
132         LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
133 fi
134 if test "$LDAP_CLDAP" = "yes" ; then
135         AC_DEFINE(LDAP_CONNECTIONLESS,1)
136         LDAP_DEFS="$LDAP_DEFS -DCLDAP"
137 fi
138
139 ## ldapd arguments
140 LDAPD_DEFS=
141 LDAPD_LIBS=
142
143 ## slapd arguments
144 SLAPD_DEFS=
145 SLAPD_LIBS=
146 LUTIL_DEFS=
147 if test "$SLAPD_PHONETIC" = "yes" ; then
148         AC_DEFINE(SLAPD_PHONETIC,1)
149         SLAPD_DEFS="$SLAPD_DEFS -DSOUNDEX"
150 fi
151
152 if test "$SLAPD_MD5" = "yes" ; then
153 dnl     AC_DEFINE(SLAPD_MD5,1)
154         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_MD5"
155 fi
156
157 if test "$SLAPD_SHA1" = "yes" ; then
158 dnl     AC_DEFINE(SLAPD_SHA1,1)
159         LUTIL_DEFS="$LUTIL_DEFS -DLDAP_SHA1"
160 fi
161
162 if test "$SLAPD_LDBM" = "yes" ; then
163 dnl     AC_DEFINE(SLAPD_LDBM,1)
164         SLAPD_DEFS="$SLAPD_DEFS -DLDAP_LDBM"
165 fi
166 if test "$SLAPD_PASSWD" = "yes" ; then
167 dnl     AC_DEFINE(SLAPD_PASSWD,1)
168         SLAPD_DEFS="$SLAPD_DEFS -DLDAP_PASSWD"
169 fi
170 if test "$SLAPD_SHELL" = "yes" ; then
171 dnl     AC_DEFINE(SLAPD_SHELL,1)
172         SLAPD_DEFS="$SLAPD_DEFS -DLDAP_SHELL"
173 fi
174
175 dnl slurpd arguments
176 SLURPD_DEFS=
177 SLURPD_LIBS=
178
179 dnl End Args
180
181 dnl ----------------------------------------------------------------
182 dnl Checks for programs
183 AC_PROG_CC
184 AC_PROG_GCC_TRADITIONAL
185
186 AC_PROG_LN_S
187 AC_PROG_INSTALL
188 AC_PROG_RANLIB
189 AC_PROG_MAKE_SET
190
191 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
192         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
193 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi, $PATH:/usr/ucb)
194 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger, $PATH:/usr/ucb)
195
196 dnl ----------------------------------------------------------------
197 dnl Checks for libraries
198
199 LTHREAD_LIBS=
200 if test "$opt_thread" = "no" ; then
201         LTHREAD_DEFS="-DNO_THREADS"
202         BUILD_SLURPD=no
203 else
204         AC_CHECK_HEADERS(pthread.h sched.h)
205
206         if test "$ac_cv_header_pthread_h" = yes ; then
207                 dnl We have some form of pthreads
208                 AC_CACHE_CHECK([POSIX thread version],cf_cv_pthread_version,[
209                         AC_EGREP_CPP(final,[
210 #include <pthread.h>
211 /* this check could be improved */
212 #ifdef PTHREAD_ONCE_INIT
213         final
214 #endif
215                         ], pthread_final=yes, pthread_final=no)
216
217                         AC_EGREP_CPP(draft4,[
218 #include <pthread.h>
219 /* this check could be improved */
220 #ifdef pthread_once_init
221         draft4
222 #endif
223                         ], pthread_draft4=yes, pthread_draft4=no)
224
225                         if test $pthread_final = yes -a $pthread_draft4 = no; then
226                                 cf_cv_pthread_version=final
227                         elif test $pthread_final = no -a $pthread_draft4 = yes; then
228                                 cf_cv_pthread_version=draft4
229                         else
230                                 cf_cv_pthread_version=unknown
231                         fi
232                 ])
233                 
234                 if test $cf_cv_pthread_version = final ; then
235                         LTHREAD_DEFS="$LTHREAD_DEFS -DPOSIX_THREADS"
236                 elif test $cf_cv_pthread_version = draft4 ; then
237                         LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_MIT_PTHREADS"
238                 else
239                         AC_MSG_ERROR(unknown pthread version)
240                 fi
241
242                 AC_CACHE_CHECK([for LinuxThreads], cf_cv_linux_threads, [
243                         res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
244                         if test "$res" -gt 0 ; then
245                                 cf_cv_linux_threads=yes
246                         else
247                                 cf_cv_linux_threads=no
248                         fi
249                 ])
250
251                 if test $cf_cv_linux_threads = yes ; then
252 dnl                     AC_DEFINE(HAVE_LINUX_THREADS,1)
253                         LTHREAD_DEFS="$LTHREAD_DEFS -DHAVE_LINUX_THREADS"
254                 fi
255
256                 dnl Now the hard part, how to link
257
258                 dnl A few platforms have pthread support in standard libraries
259                 AC_CHECK_FUNC(pthread_create,pthread_link=yes,pthread_link=no)
260
261                 if test $pthread_link = no ; then
262                         dnl try -pthread
263                         AC_CACHE_CHECK([for pthread_create with -pthread],
264                                 cf_cv_pthread_flag, [
265                                 dnl save the CPPFLAGS
266                                 save_LIBS="$LIBS"
267                                 LIBS="-pthread $LIBS"
268                                 AC_TRY_LINK([#include <pthread.h>],[
269                                         pthread_create((pthread_t*) 0,
270                                                 (pthread_attr_t*) 0, 0, 0);
271                                         ], cf_cv_pthread_flag=yes, cf_cv_pthread_flag=no)
272                                 dnl restore the LIBS
273                                 LIBS="$save_LIBS"
274                         ])
275
276                         if test $cf_cv_pthread_flag = yes ; then
277                                 LTHREAD_LIBS="$LTHREAD_LIBS -pthread"
278                                 pthread_link=yes
279                         fi
280                 fi
281
282                 if test $pthread_link = no ; then
283                         dnl try -lpthread
284                         save_LIBS="$LIBS"
285                         AC_CHECK_LIB(pthread, pthread_create, [
286                                 pthread_link=yes
287                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread"])
288                         LIBS="$save_LIBS"
289                 fi
290
291                 if test $pthread_link = no ; then
292                         dnl try -lc_r
293                         save_LIBS="$LIBS"
294                         AC_CHECK_LIB(c_r, pthread_create, [
295                                 pthread_link=yes
296                                 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"])
297                         LIBS="$save_LIBS"
298                 fi
299
300                 if test $pthread_link = no ; then
301                         dnl try DEC Threads
302                         save_LIBS="$LIBS"
303                         AC_CHECK_LIB(pthread, pthread_create, [
304                                 pthread_link=yes
305                                 LTHREAD_DEFS="$LTHREAD_DEFS -DDEC_THREADS"
306                                 LTHREAD_LIBS="$LTHREAD_LIBS -lpthread -lmach -lexc -lc"],,
307                                 [-lmach -lexc -lc])
308                         LIBS="$save_LIBS"
309                 fi
310
311         else
312                 LTHREAD_DEFS="-DNO_THREADS"
313         fi
314 fi
315
316 # check for strtok_r
317 save_LIBS="$LIBS"
318 LIBS="$save_LIBS $LTHREAD_LIBS"
319 AC_CHECK_LIB(pthread,strtok_r)
320
321 if test $ac_cv_lib_pthread_strtok_r = no ; then
322         AC_CHECK_LIB(c_r,strtok_r)
323         AC_CHECK_FUNCS(strtok_r pthread_init)
324         if test $ac_cv_lib_c_r_strtok_r = yes ; then
325                 LTHREAD_LIBS="$LTHREAD_LIBS -lc_r"
326         fi
327 else
328         AC_CHECK_FUNCS(strtok_r)
329 fi
330
331 LIBS="$save_LIBS"
332
333
334 ldbm_use="none"
335 LDBM_DEFS=
336 LDBM_LIBS=
337
338 if test "$SLAPD_LDBM" = "yes" ; then
339         if test $ldbm_prefer = any -o $ldbm_prefer = dbbtree \
340                         -o $ldbm_prefer = dbhash ; then
341                 AC_CHECK_FUNC(dbopen,[
342                         ldbm_use=$ldbm_prefer
343                         ldbm_prefer=found],[
344                         AC_CHECK_LIB(db,dbopen,[
345                                 ldbm_use=$ldbm_prefer
346                                 ldbm_prefer=found
347                                 LDBM_LIBS="$LDBM_LIBS -ldb"
348                         ]) 
349                 ])
350
351                 if test $ldbm_prefer = found ; then
352                         if test $ldbm_use = dbhash ; then
353 dnl                             AC_DEFINE(LDBM_USE_DBHASH,1)
354                                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBHASH"
355                         else
356 dnl                             AC_DEFINE(LDBM_USE_DBBTREE,1)
357                                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DBBTREE"
358                         fi
359                 fi
360
361                 AC_CACHE_CHECK(for db2, cf_cv_db2,[
362                         AC_EGREP_CPP(__db_version_2,[
363 #include <db.h>
364 /* this check could be improved */
365 #ifdef DB_VERSION_MAJOR
366 #if DB_VERSION_MAJOR == 2
367         __db_version_2
368 #endif
369 #endif
370                         ], cf_cv_db2=yes, cf_cv_db2=no)])
371
372                 if test $cf_cv_db2 = yes ; then
373                         if test $opt_db2 = yes ; then
374                                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2"
375                         else
376                                 AC_CHECK_HEADERS(db_185.h)
377                                 if test $ac_cv_header_db_185_h = no ; then
378                                         AC_MSG_ERROR([select --with-db2 or install db2 with 1.85 compatibility])
379                                 fi
380
381                                 LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_DB2_COMPAT185"
382                         fi
383                 else
384                         if test $opt_db2 = yes ; then
385                                 AC_MSG_ERROR(could not local DB2)
386                         fi
387                 fi
388         fi
389
390         if test $ldbm_prefer = any -o $ldbm_prefer = gdbm ; then
391                 AC_CHECK_LIB(gdbm, gdbm_open,[
392                         ldbm_use=$ldbm_prefer
393                         ldbm_prefer=found
394                         LDBM_LIBS="$LDBM_LIBS -lgdbm"
395 dnl                     AC_DEFINE(LDBM_USE_GDBM,1)
396                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_GDBM"
397                 ]) 
398         fi
399         if test $ldbm_prefer = any -o $ldbm_prefer = ndbm ; then
400                 AC_CHECK_LIB(dbm,dbm_open,[
401                         ldbm_use=ndbm
402                         ldbm_prefer=found
403                         LDBM_LIBS="$LDBM_LIBS -ldbm"
404 dnl                     AC_DEFINE(LDBM_USE_NDBM,1)
405                         LDBM_DEFS="$LDBM_DEFS -DLDBM_USE_NDBM"
406                 ]) 
407         fi
408
409         if test $ldbm_prefer != found ; then
410                 AC_MSG_ERROR(could not find suitable db for $ldbm_prefer backend)
411         fi
412
413         if test $ldbm_use = ndbm ; then
414                 AC_MSG_WARN(LDBM using NDBM, functionality will be limited)
415         fi
416 fi
417
418 if test "$SLAPD_TCP_WRAPPERS" = "yes" ; then
419         AC_CHECK_LIB(wrap, hosts_access, [
420 dnl             LIBTCPD="-lwrap"
421 dnl             AC_DEFINE(HAVE_TCPD)
422                 SLAPD_DEFS="$SLAPD_DEFS -DTCP_WRAPPERS"
423                 SLAPD_LIBS="$SLAPD_LIBS -lwrap"
424         ])
425 fi
426
427 # ud needs termcap (should insert check here)
428 LIBTERMCAP="-ltermcap"
429 AC_SUBST(LIBTERMCAP)
430
431 # FreeBSD (and others) have crypt(3) in -lcrypt
432 if test "$SLAPD_CRYPT" = "yes" ; then
433         AC_CHECK_FUNC(crypt, have_crypt=yes, [
434                 AC_CHECK_LIB(crypt, crypt, [LUTIL_LIBS="$LUTIL_LIBS -lcrypt"
435                         have_crypt=yes], [have_crypt=no])])
436
437         if test $have_crypt = yes ; then
438 dnl             AC_DEFINE(SLAPD_CRYPT,1)
439                 LUTIL_DEFS="$LUTIL_DEFS -DLDAP_CRYPT"
440         else
441                 AC_MSG_WARN(could not find crypt, disabling crypt support)
442         fi
443 fi
444
445 dnl ----------------------------------------------------------------
446 dnl Checks for header files.
447 AC_HEADER_DIRENT
448 AC_HEADER_STDC
449 AC_HEADER_SYS_WAIT
450 AC_CHECK_HEADERS( \
451         stddef.h        \
452         fcntl.h         \
453         limits.h        \
454         malloc.h        \
455         sgtty.h         \
456         sys/file.h      \
457         sys/ioctl.h     \
458         sys/time.h      \
459         syslog.h        \
460         termio.h        \
461         unistd.h        \
462 )
463
464 dnl ----------------------------------------------------------------
465 dnl Checks for typedefs, structures, and compiler characteristics.
466 AC_TYPE_GETGROUPS
467 AC_TYPE_MODE_T
468 AC_TYPE_OFF_T
469 AC_TYPE_PID_T
470 AC_TYPE_SIGNAL
471 AC_TYPE_SIZE_T
472 AC_TYPE_UID_T
473 AC_STRUCT_ST_BLKSIZE
474 AC_HEADER_TIME
475 AC_STRUCT_TM
476
477 dnl AC_C_BIGENDIAN
478 AC_C_CONST
479
480 dnl ----------------------------------------------------------------
481 dnl Checks for library functions.
482 AC_FUNC_MEMCMP
483 AC_TYPE_SIGNAL
484 AC_FUNC_STRFTIME
485 AC_FUNC_VPRINTF
486 AC_FUNC_WAIT3
487
488 AC_CHECK_FUNCS(         \
489         gethostname             \
490         gettimeofday    \
491         mktime                  \
492         select                  \
493         socket                  \
494         strdup                  \
495         strerror                \
496         strstr                  \
497         strrchr                 \
498         strtod                  \
499         strtol                  \
500         strtoul                 \
501         strsep                  \
502         memcpy                  \
503 )
504
505 AC_REPLACE_FUNCS(strsep strdup)
506
507 dnl ----------------------------------------------------------------
508 # Check Configuration
509 CF_SYS_ERRLIST
510
511 AC_SUBST(BUILD_LDAPD)
512
513 AC_SUBST(BUILD_SLAPD)
514   AC_SUBST(SLAPD_LDBM)
515   AC_SUBST(SLAPD_PASSWD)
516   AC_SUBST(SLAPD_SHELL)
517
518 AC_SUBST(BUILD_SLURPD)
519
520 AC_SUBST(LDAP_DEFS)
521 AC_SUBST(LDAP_LIBS)
522 AC_SUBST(LDAPD_DEFS)
523 AC_SUBST(LDAPD_LIBS)
524 AC_SUBST(SLAPD_DEFS)
525 AC_SUBST(SLAPD_LIBS)
526 AC_SUBST(SLURPD_DEFS)
527 AC_SUBST(SLURPD_LIBS)
528 AC_SUBST(LDBM_DEFS)
529 AC_SUBST(LDBM_LIBS)
530 AC_SUBST(LTHREAD_DEFS)
531 AC_SUBST(LTHREAD_LIBS)
532 AC_SUBST(LUTIL_DEFS)
533 AC_SUBST(LUTIL_LIBS)
534
535 dnl AC_OUTPUT( \
536 dnl contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
537 dnl contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
538 dnl contrib/whois++/Makefile:build/top.mk:contrib/whois++/Makefile.in:build/rules.mk \
539 dnl [date > stamp-h])
540
541 AC_OUTPUT( \
542 Makefile:build/top.mk:Makefile.in:build/dir.mk \
543 doc/Makefile:build/top.mk:doc/Makefile.in:build/dir.mk \
544 doc/man/Makefile:build/top.mk:doc/man/Makefile.in:build/dir.mk \
545 doc/man/man1/Makefile:build/top.mk:doc/man/man1/Makefile.in:build/man.mk \
546 doc/man/man3/Makefile:build/top.mk:doc/man/man3/Makefile.in:build/man.mk \
547 doc/man/man5/Makefile:build/top.mk:doc/man/man5/Makefile.in:build/man.mk \
548 doc/man/man8/Makefile:build/top.mk:doc/man/man8/Makefile.in:build/man.mk \
549 clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
550 clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
551 clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
552 clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
553 clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
554 clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
555 clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
556 clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
557 include/Makefile:build/top.mk:include/Makefile.in \
558 libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk      \
559 libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk \
560 libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk \
561 libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk \
562 libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk \
563 libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk \
564 libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk \
565 libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk \
566 servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
567 servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
568 servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
569 servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
570 servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
571 servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
572 servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
573 servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
574 servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
575 tests/Makefile:build/top.mk:tests/Makefile.in \
576 ,[date > stamp-h])