]> git.sur5r.net Git - openldap/blob - configure.in
a08f486402ab2ac6f038d3e16bf49ace2784564f
[openldap] / configure.in
1 dnl 
2 dnl Configure.in
3 dnl
4 AC_INIT(include/ldap.h)
5 dnl
6 dnl
7 AC_PREREQ(2.10)dnl Required Autoconf version
8 dnl Do not use AutoConf 2.12; it produces a configuration script
9 dnl that causes an "internal 2K buffer" error on HPUX when run
10 dnl with /bin/sh.  Autoconf 2.10 seems to be okay.
11 AC_CONFIG_AUX_DIR(build)
12 AC_CONFIG_HEADER(include/portable.h)dnl
13 dnl
14 dnl Start Args
15 AC_MSG_CHECKING(arguments)
16 AC_PREFIX_DEFAULT(/usr/local)
17
18 dnl general options
19 CF_ARG_OPTION(debug,[  --enable-debug   enable debugging (yes)],[
20         LDAP_DEBUG=no],[LDAP_DEBUG=yes],yes)dnl
21 CF_ARG_OPTION(cache,[  --enable-cache   enable caching (yes)],[
22         LDAP_CACHE=no],[LDAP_CACHE=yes],yes)dnl
23 CF_ARG_OPTION(referrals,[  --enable-referrals   enable referrals (yes)],[
24         LDAP_REFERRALS=no],[LDAP_REFERRALS=yes],yes)dnl
25
26 CF_ARG_OPTION(cldap,[  --enable-clapd   enable connectionless ldap (no)],[
27         LDAP_CLDAP=yes],[LDAP_CLDAP=no],no)dnl
28 CF_ARG_OPTION(phonetic,[  --enable-phonetic     enable phonetic/soundex  (no)],[
29         LDAP_PHONETIC=yes],[LDAP_PHONETIC=no],no)dnl
30
31 dnl server options
32 CF_ARG_OPTION(ldapd,[  --enable-ldapd   enable building ldapd (no)],[
33         BUILD_LDAPD=yes],[BUILD_LDAPD=no],no)dnl
34 CF_ARG_OPTION(slapd,[  --enable-slapd   enable building slapd (yes)],[
35         BUILD_SLAPD=no],[BUILD_SLAPD=yes],yes)dnl
36 CF_ARG_OPTION(slurpd,[  --enable-slurpd enable building slurpd (yes)],[
37         BUILD_SLURPD=no],[BUILD_SLURPD=yes],yes)dnl
38
39 dnl Backend options
40 CF_ARG_OPTION(ldbm,[  --enable-ldbm             enable ldbm backend (yes)],[
41         BUILD_LDBM=no],[BUILD_LDBM=yes],yes)dnl
42 CF_ARG_OPTION(passwd,[  --enable-passwd enable passwd backend (yes)],[
43         BUILD_PASSWD=no],[BUILD_PASSWD=yes],yes)dnl
44 CF_ARG_OPTION(shell,[  --enable-shell   enable shell backend (yes)],[
45         BUILD_SHELL=no],[BUILD_SHELL=yes],yes)dnl
46
47 AC_ARG_WITH(ndbm,[  --with-ndbm         use NDB for LDBM backend (any)],[
48         opt_ndbm=yes],[opt_ndbm=no])
49 AC_ARG_WITH(gdbm,[  --with-gdbm         use GDBM for LDBM backend (any)],[
50         opt_gdbm=yes],[opt_gdbm=no])
51 AC_ARG_WITH(dbhash,[  --with-dbhash             use Berkeley DB Hash for LDBM backend (any)],[
52         opt_dbhash=yes],[opt_dbhash=no])
53 AC_ARG_WITH(dbbtree,[  --with-dbbtree   use Berkeley DB Btrees for LDBM backend (any)],[
54         opt_dbbtree=yes],[opt_dbbtree=no])
55
56 AC_ARG_WITH(kerberos,[  --with-kerberos use Kerberos (no)],[
57         opt_kerberos=yes],[opt_kerberos=no])
58 AC_ARG_WITH(kerberos-afs,[  --with-kerberos-afs use AFS Kerberos (no)],[
59         opt_kerberos_afs=yes],[opt_kerberos_afs=no])
60 AC_ARG_WITH(threads,[  --with-threads   use threads (yes)],[
61         opt_threads=yes],[opt_threads=no])
62
63 AC_MSG_RESULT(done)
64
65 AC_MSG_CHECKING(LDBM preferences)
66 ldbm_prefer=any
67
68 if test "$opt_ndbm" = yes ; then
69         ldbm_prefer=ndbm
70 fi
71 if test "$opt_gdbm" = yes ; then
72         ldbm_prefer=gdbm
73 fi
74 if test "$opt_dbhash" = yes ; then
75         ldbm_prefer=dbhash
76 fi
77 if test "$opt_dbbtree" = yes ; then
78         ldbm_prefer=dbbtree
79 fi
80 AC_MSG_RESULT($ldbm_prefer)
81
82 if test "$BUILD_SLAPD" != "yes" ; then
83         BUILD_SLURPD="no"
84         BUILD_LDBM="no"
85         BUILD_PASSWD="no"
86         BUILD_SHELL="no"
87         ldbm_prefer="none"
88 fi
89
90 AC_SUBST(BUILD_LDAPD)
91 AC_SUBST(BUILD_SLAPD)
92 AC_SUBST(BUILD_SLURPD)
93
94 AC_SUBST(BUILD_LDBM)
95 AC_SUBST(BUILD_PASSWD)
96 AC_SUBST(BUILD_SHELL)
97
98 LDAP_DEFS=
99
100 if test "$LDAP_DEBUG" = "yes" ; then
101         LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
102 fi
103 if test "$LDAP_REFERRALS" = "yes" ; then
104         AC_DEFINE(LDAP_REFERRALS)
105 dnl     LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
106 fi
107 if test "$LDAP_CACHE" = "no" ; then
108         AC_DEFINE(LDAP_NOCACHE,1)
109         LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
110 fi
111 if test "$LDAP_CLDAP" = "yes" ; then
112         AC_DEFINE(LDAP_CONN_LESS,1)
113         LDAP_DEFS="$LDAP_DEFS -DCLDAP"
114 fi
115 if test "$LDAP_PHONETIC" = "yes" ; then
116         AC_DEFINE(LDAP_PHONETIC,1)
117         LDAP_DEFS="$LDAP_DEFS -DSOUNDEX"
118 fi
119
120 if test "$BUILD_LDBM" = "yes" ; then
121         AC_DEFINE(LDAP_LDBM,1)
122 dnl     LDAP_DEFS="$LDAP_DEFS -DLDAP_LDBM"
123 fi
124 if test "$BUILD_PASSWD" = "yes" ; then
125         AC_DEFINE(LDAP_PASSWD,1)
126 dnl     LDAP_DEFS="$LDAP_DEFS -DLDAP_PASSWD"
127 fi
128 if test "$BUILD_SHELL" = "yes" ; then
129         AC_DEFINE(LDAP_SHELL,1)
130 dnl     LDAP_DEFS="$LDAP_DEFS -DLDAP_SHELL"
131 fi
132
133 dnl End Args
134
135 dnl Checks for programs.
136 AC_PROG_CC
137 AC_PROG_GCC_TRADITIONAL
138
139 AC_PROG_LN_S
140 AC_PROG_INSTALL
141 AC_PROG_RANLIB
142 AC_PROG_MAKE_SET
143
144 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
145         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
146 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi,
147         $PATH:/usr/ucb)
148 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger,
149         $PATH:/usr/ucb)
150
151 ldbm_use="none"
152 LIBDB=""
153
154 if test "$BUILD_LDBM" = "yes" ; then
155         if test $ldbm_prefer = any -o $ldbm_prefer = dbbtree \
156                         -o $ldbm_prefer = dbhash ; then
157                 AC_CHECK_FUNC(dbopen,[
158                         ldbm_use=$ldbm_prefer
159                         ldbm_prefer=found],[
160                         AC_CHECK_LIB(db,dbopen,[
161                                 ldbm_use=$ldbm_prefer
162                                 ldbm_prefer=found
163                                 LIBDB="-ldb"
164                         ]) 
165                 ])
166
167                 if test $ldbm_prefer = found ; then
168                         if test $ldbm_use = dbhash ; then
169                                 AC_DEFINE(LDBM_USE_DBHASH,1)
170 dnl                             LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_DBHASH"
171                         else
172                                 AC_DEFINE(LDBM_USE_DBBTREE,1)
173 dnl                             LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_DBBTREE"
174                         fi
175                 fi
176         fi
177         if test $ldbm_prefer = any -o $ldbm_prefer = gdbm ; then
178                 AC_CHECK_LIB(gdbm, gdbm_open,[
179                         ldbm_use=$ldbm_prefer
180                         ldbm_prefer=found
181                         LIBDB="-lgdbm"
182                         AC_DEFINE(LDBM_USE_GDBM,1)
183 dnl                     LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_GDBM"
184                 ]) 
185         fi
186         if test $ldbm_prefer = any -o $ldbm_prefer = ndbm ; then
187                 AC_CHECK_LIB(dbm,dbm_open,[
188                         ldbm_use=ndbm
189                         ldbm_prefer=found
190                         LIBDB="-ldbm"
191                         AC_DEFINE(LDBM_USE_NDBM,1)
192 dnl                     LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_NDBM"
193                 ]) 
194         fi
195
196         if test $ldbm_prefer != found ; then
197                 AC_MSG_ERROR(could not find suitable db for $ldbm_prefer backend)
198         fi
199
200         if test $ldbm_use = ndbm ; then
201                 AC_MSG_WARN(LDBM using NDBM, functionality will be limited)
202         fi
203 fi
204
205 AC_SUBST(LDAP_DEFS)
206 AC_SUBST(LIBDB)
207
208 # ud needs termcap (should insert check here)
209 LIBTERMCAP="-ltermcap"
210 AC_SUBST(LIBTERMCAP)
211
212 # FreeBSD has obsoleted re_comp(3) from -lc, needs -lcompat
213 AC_CHECK_LIB(compat, re_comp) 
214
215 # FreeBSD (and others) have crypt(3) in -lcrypt
216 LIBCRYPT=
217 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT), [
218         AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"
219         AC_DEFINE(HAVE_CRYPT)])
220 ])
221 AC_SUBST(LIBCRYPT)
222
223 dnl Checks for header files.
224 AC_HEADER_DIRENT
225 AC_HEADER_STDC
226 AC_HEADER_SYS_WAIT
227 AC_CHECK_HEADERS( \
228         stddef.h        \
229         fcntl.h         \
230         limits.h        \
231         malloc.h        \
232         sgtty.h         \
233         sys/file.h      \
234         sys/ioctl.h     \
235         sys/time.h      \
236         syslog.h        \
237         termio.h        \
238         unistd.h        \
239 )
240
241 dnl Checks for typedefs, structures, and compiler characteristics.
242 AC_TYPE_GETGROUPS
243 AC_TYPE_MODE_T
244 AC_TYPE_OFF_T
245 AC_TYPE_PID_T
246 AC_TYPE_SIGNAL
247 AC_TYPE_SIZE_T
248 AC_TYPE_UID_T
249 AC_STRUCT_ST_BLKSIZE
250 AC_HEADER_TIME
251 AC_STRUCT_TM
252
253 dnl AC_C_BIGENDIAN
254 AC_C_CONST
255
256 dnl Checks for library functions.
257 AC_FUNC_MEMCMP
258 AC_TYPE_SIGNAL
259 AC_FUNC_STRFTIME
260 AC_FUNC_VPRINTF
261 AC_FUNC_WAIT3
262
263 AC_CHECK_FUNCS(         \
264         gethostname             \
265         gettimeofday    \
266         mktime                  \
267         select                  \
268         socket                  \
269         strdup                  \
270         strerror                \
271         strstr                  \
272         strrchr                 \
273         strtod                  \
274         strtol                  \
275         strtoul                 \
276         memcpy                  \
277 )
278
279 AC_REPLACE_FUNCS(strdup)
280
281 # Check Configuration
282 CF_SYS_ERRLIST
283
284 dnl need do this early
285 test "x$prefix" = xNONE && prefix=$ac_default_prefix
286 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
287
288 SYSCONFDIR=`eval echo $sysconfdir`
289 AC_SUBST(SYSCONFDIR)
290
291 dnl AC_OUTPUT( \
292 dnl include/ldapconfig.h \
293 dnl include/Makefile:build/top.mk:include/Makefile.in   \
294 dnl clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
295 dnl clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
296 dnl clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
297 dnl clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
298 dnl clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
299 dnl clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
300 dnl clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
301 dnl clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
302 dnl contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
303 dnl contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
304 dnl contrib/whois++/Makefile:build/top.mk:contrib/whois++/Makefile.in:build/rules.mk \
305 dnl libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk  \
306 dnl libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk \
307 dnl libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk \
308 dnl libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk \
309 dnl libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk \
310 dnl libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk \
311 dnl libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk \
312 dnl servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
313 dnl servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
314 dnl servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
315 dnl servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
316 dnl servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
317 dnl servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
318 dnl servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
319 dnl servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
320 dnl servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
321 dnl tests/Makefile:build/top.mk:tests/Makefile.in \
322 dnl Makefile:build/top.mk:Makefile.in:build/dir.mk, \
323 dnl [date > stamp-h])
324
325 AC_OUTPUT(
326         ,[date > stamp-h])