]> git.sur5r.net Git - openldap/blob - configure.in
Added additional arguments. Still needs much more work.
[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 "enable" options
19 CF_ARG_OPTION(debug,[  --enable-debug   enable debugging (yes)],[
20         LDAP_DEBUG=no],[LDAP_DEBUG=yes],yes)dnl
21 CF_ARG_OPTION(libui,[  --enable-libui   enable library user interface (yes)],[
22         LDAP_LIBUI=no],[LDAP_LIBUI=yes],yes)dnl
23 CF_ARG_OPTION(cache,[  --enable-cache   enable caching (yes)],[
24         LDAP_CACHE=no],[LDAP_CACHE=yes],yes)dnl
25 CF_ARG_OPTION(referrals,[  --enable-referrals   enable referrals (yes)],[
26         LDAP_REFERRALS=no],[LDAP_REFERRALS=yes],yes)dnl
27
28 CF_ARG_OPTION(cldap,[  --enable-clapd   enable connectionless ldap (no)],[
29         LDAP_CLDAP=yes],[LDAP_CLDAP=no],no)dnl
30 CF_ARG_OPTION(phonetic,[  --enable-phonetic     enable phonetic/soundex  (no)],[
31         LDAP_PHONETIC=yes],[LDAP_PHONETIC=no],no)dnl
32
33 dnl General "with" options
34 AC_ARG_WITH(kerberos,[  --with-kerberos use Kerberos (no)],[
35         opt_kerberos=yes],[opt_kerberos=no])
36 AC_ARG_WITH(kerberos-afs,[  --with-kerberos-afs use AFS Kerberos (no)],[
37         opt_kerberos_afs=yes],[opt_kerberos_afs=no])
38 AC_ARG_WITH(threads,[  --with-threads   use threads (yes)],[
39         opt_threads=yes],[opt_threads=no])
40
41 dnl Server options
42
43 dnl LDAPD OPTIONS
44 CF_ARG_OPTION(ldapd,[  --enable-ldapd   enable building ldapd (no)],[
45         BUILD_LDAPD=yes],[BUILD_LDAPD=no],no)dnl
46
47 dnl SLAPD OPTIONS
48 CF_ARG_OPTION(slapd,[  --enable-slapd   enable building slapd (yes)],[
49         BUILD_SLAPD=no],[BUILD_SLAPD=yes],yes)dnl
50 CF_ARG_OPTION(aclgroup,[    --enable-aclgroup   enable ACL group support (yes)],[
51         SLAPD_ACLGROUP=no],[SLAPD_ALCGROUP=yes],yes)dnl
52 CF_ARG_OPTION(crypt,[    --enable-crypt enable crypt(3) passwords (yes)],[
53         SLAPD_CRYPT=no],[SLAPD_CRYPT=yes],yes)dnl
54 CF_ARG_OPTION(md5,[    --enable-md5     enable MD5 passwords (yes)],[
55         SLAPD_MD5=no],[SLAPD_MD5=yes],yes)dnl
56 CF_ARG_OPTION(sha1,[    --enable-sha1   enable SHA1 passwords (yes)],[
57         SLAPD_SHA1=no],[SLAPD_SHA1=yes],yes)dnl
58 CF_ARG_OPTION(wrappers,[    --enable-wrappers   enable tcp wrapper support (no)],[
59         SLAPD_TCP_WRAPPERS=yes],[LDAP_TCP_WRAPPERS=no],no)dnl
60 CF_ARG_OPTION(rlookups,[    --enable-rlookups   enable reverse lookups (yes)],[
61         LDAP_RLOOKUP=no],[LDAP_RLOOKUP=yes],yes)dnl
62
63 dnl SLAPD Backend options
64 CF_ARG_OPTION(ldbm,[    --enable-ldbm   enable ldbm backend (yes)],[
65         SLAPD_LDBM=no],[SLAPD_LDBM=yes],yes)dnl
66 CF_ARG_OPTION(passwd,[    --enable-passwd       enable passwd backend (yes)],[
67         SLAPD_PASSWD=no],[SLAPD_PASSWD=yes],yes)dnl
68 CF_ARG_OPTION(shell,[    --enable-shell enable shell backend (yes)],[
69         SLAPD_SHELL=no],[SLAPD_SHELL=yes],yes)dnl
70
71 AC_ARG_WITH(ndbm,[    --with-ndbm               use NDB for LDBM backend (any)],[
72         opt_ndbm=yes],[opt_ndbm=no])
73 AC_ARG_WITH(gdbm,[    --with-gdbm               use GDBM for LDBM backend (any)],[
74         opt_gdbm=yes],[opt_gdbm=no])
75 AC_ARG_WITH(dbhash,[    --with-dbhash   use Berkeley DB Hash for LDBM backend (any)],[
76         opt_dbhash=yes],[opt_dbhash=no])
77 AC_ARG_WITH(dbbtree,[    --with-dbbtree use Berkeley DB Btrees for LDBM backend (any)],[
78         opt_dbbtree=yes],[opt_dbbtree=no])
79 AC_ARG_WITH(db2,[    --with-db2         use Berkeley DB2 API (any)],[
80         opt_db2=yes],[opt_db2=no])
81
82 dnl SLURPD OPTIONS
83 CF_ARG_OPTION(slurpd,[  --enable-slurpd enable building slurpd (yes)],[
84         BUILD_SLURPD=no],[BUILD_SLURPD=yes],yes)dnl
85
86 AC_MSG_RESULT(done)
87
88 AC_MSG_CHECKING(LDBM preferences)
89 ldbm_prefer=any
90
91 if test "$opt_ndbm" = yes ; then
92         ldbm_prefer=ndbm
93 fi
94 if test "$opt_gdbm" = yes ; then
95         ldbm_prefer=gdbm
96 fi
97 if test "$opt_dbhash" = yes ; then
98         ldbm_prefer=dbhash
99 fi
100 if test "$opt_dbbtree" = yes ; then
101         ldbm_prefer=dbbtree
102 fi
103 AC_MSG_RESULT($ldbm_prefer)
104
105 if test "$BUILD_SLAPD" != "yes" ; then
106         BUILD_SLURPD="no"
107         SLAPD_LDBM="no"
108         SLAPD_PASSWD="no"
109         SLAPD_SHELL="no"
110         ldbm_prefer="none"
111 fi
112
113 AC_SUBST(BUILD_LDAPD)
114 AC_SUBST(BUILD_SLAPD)
115 AC_SUBST(BUILD_SLURPD)
116
117 AC_SUBST(SLAPD_LDBM)
118 AC_SUBST(SLAPD_PASSWD)
119 AC_SUBST(SLAPD_SHELL)
120
121 dnl general LDAP arguments
122 LDAP_DEFS=
123
124 if test "$LDAP_DEBUG" = "yes" ; then
125         LDAP_DEFS="$LDAP_DEFS -DLDAP_DEBUG"
126 fi
127 if test "$LDAP_REFERRALS" = "yes" ; then
128 dnl     AC_DEFINE(LDAP_REFERRALS,1)
129         LDAP_DEFS="$LDAP_DEFS -DLDAP_REFERRALS"
130 fi
131 if test "$LDAP_CACHE" = "no" ; then
132         AC_DEFINE(LDAP_NOCACHE,1)
133         LDAP_DEFS="$LDAP_DEFS -DNO_CACHE"
134 fi
135 if test "$LDAP_CLDAP" = "yes" ; then
136         AC_DEFINE(LDAP_CONNECTIONLESS,1)
137         LDAP_DEFS="$LDAP_DEFS -DCLDAP"
138 fi
139 if test "$LDAP_PHONETIC" = "yes" ; then
140         AC_DEFINE(LDAP_PHONETIC,1)
141         LDAP_DEFS="$LDAP_DEFS -DSOUNDEX"
142 fi
143
144 dnl ldapd arguments
145 LDAPD_DEFS=
146
147 dnl slapd arguments
148 SLAPD_DEFS=
149
150 if test "$SLAPD_LDBM" = "yes" ; then
151         AC_DEFINE(SLAPD_LDBM,1)
152 dnl     SLAPD_DEFS="$SLAPD_DEFS -DSLAPD_LDBM"
153 fi
154 if test "$SLAPD_PASSWD" = "yes" ; then
155         AC_DEFINE(SLAPD_PASSWD,1)
156 dnl     SLAPD_DEFS="$SLAPD_DEFS -DSLAPD_PASSWD"
157 fi
158 if test "$SLAPD_SHELL" = "yes" ; then
159         AC_DEFINE(SLAPD_SHELL,1)
160 dnl     SLAPD_DEFS="$SLAPD_DEFS -DSLAPD_SHELL"
161 fi
162
163 dnl slurpd arguments
164 SLURPD_DEFS=
165
166 dnl End Args
167
168 dnl Checks for programs.
169 AC_PROG_CC
170 AC_PROG_GCC_TRADITIONAL
171
172 AC_PROG_LN_S
173 AC_PROG_INSTALL
174 AC_PROG_RANLIB
175 AC_PROG_MAKE_SET
176
177 AC_PATH_PROG(SENDMAIL, sendmail, /usr/lib/sendmail,
178         $PATH:/usr/libexec:/usr/lib:/usr/sbin:/usr/etc:/etc)
179 AC_PATH_PROG(EDITOR, vi, /usr/ucb/vi,
180         $PATH:/usr/ucb)
181 AC_PATH_PROG(FINGER, finger, /usr/ucb/finger,
182         $PATH:/usr/ucb)
183
184 ldbm_use="none"
185 LIBDB=""
186
187 if test "$BUILD_LDBM" = "yes" ; then
188         if test $ldbm_prefer = any -o $ldbm_prefer = dbbtree \
189                         -o $ldbm_prefer = dbhash ; then
190                 AC_CHECK_FUNC(dbopen,[
191                         ldbm_use=$ldbm_prefer
192                         ldbm_prefer=found],[
193                         AC_CHECK_LIB(db,dbopen,[
194                                 ldbm_use=$ldbm_prefer
195                                 ldbm_prefer=found
196                                 LIBDB="-ldb"
197                         ]) 
198                 ])
199
200                 if test $ldbm_prefer = found ; then
201                         if test $ldbm_use = dbhash ; then
202                                 AC_DEFINE(LDBM_USE_DBHASH,1)
203 dnl                             LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_DBHASH"
204                         else
205                                 AC_DEFINE(LDBM_USE_DBBTREE,1)
206 dnl                             LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_DBBTREE"
207                         fi
208                 fi
209         fi
210         if test $ldbm_prefer = any -o $ldbm_prefer = gdbm ; then
211                 AC_CHECK_LIB(gdbm, gdbm_open,[
212                         ldbm_use=$ldbm_prefer
213                         ldbm_prefer=found
214                         LIBDB="-lgdbm"
215                         AC_DEFINE(LDBM_USE_GDBM,1)
216 dnl                     LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_GDBM"
217                 ]) 
218         fi
219         if test $ldbm_prefer = any -o $ldbm_prefer = ndbm ; then
220                 AC_CHECK_LIB(dbm,dbm_open,[
221                         ldbm_use=ndbm
222                         ldbm_prefer=found
223                         LIBDB="-ldbm"
224                         AC_DEFINE(LDBM_USE_NDBM,1)
225 dnl                     LDAP_DEFS="$LDAP_DEFS -DLDBM_USE_NDBM"
226                 ]) 
227         fi
228
229         if test $ldbm_prefer != found ; then
230                 AC_MSG_ERROR(could not find suitable db for $ldbm_prefer backend)
231         fi
232
233         if test $ldbm_use = ndbm ; then
234                 AC_MSG_WARN(LDBM using NDBM, functionality will be limited)
235         fi
236 fi
237
238 AC_SUBST(LDAP_DEFS)
239 AC_SUBST(LIBDB)
240
241 # ud needs termcap (should insert check here)
242 LIBTERMCAP="-ltermcap"
243 AC_SUBST(LIBTERMCAP)
244
245 # FreeBSD has obsoleted re_comp(3) from -lc, needs -lcompat
246 AC_CHECK_LIB(compat, re_comp) 
247
248 # FreeBSD (and others) have crypt(3) in -lcrypt
249 LIBCRYPT=
250 AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT), [
251         AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"
252         AC_DEFINE(HAVE_CRYPT)])
253 ])
254 AC_SUBST(LIBCRYPT)
255
256 dnl Checks for header files.
257 AC_HEADER_DIRENT
258 AC_HEADER_STDC
259 AC_HEADER_SYS_WAIT
260 AC_CHECK_HEADERS( \
261         stddef.h        \
262         fcntl.h         \
263         limits.h        \
264         malloc.h        \
265         sgtty.h         \
266         sys/file.h      \
267         sys/ioctl.h     \
268         sys/time.h      \
269         syslog.h        \
270         termio.h        \
271         unistd.h        \
272 )
273
274 dnl Checks for typedefs, structures, and compiler characteristics.
275 AC_TYPE_GETGROUPS
276 AC_TYPE_MODE_T
277 AC_TYPE_OFF_T
278 AC_TYPE_PID_T
279 AC_TYPE_SIGNAL
280 AC_TYPE_SIZE_T
281 AC_TYPE_UID_T
282 AC_STRUCT_ST_BLKSIZE
283 AC_HEADER_TIME
284 AC_STRUCT_TM
285
286 dnl AC_C_BIGENDIAN
287 AC_C_CONST
288
289 dnl Checks for library functions.
290 AC_FUNC_MEMCMP
291 AC_TYPE_SIGNAL
292 AC_FUNC_STRFTIME
293 AC_FUNC_VPRINTF
294 AC_FUNC_WAIT3
295
296 AC_CHECK_FUNCS(         \
297         gethostname             \
298         gettimeofday    \
299         mktime                  \
300         select                  \
301         socket                  \
302         strdup                  \
303         strerror                \
304         strstr                  \
305         strrchr                 \
306         strtod                  \
307         strtol                  \
308         strtoul                 \
309         memcpy                  \
310 )
311
312 AC_REPLACE_FUNCS(strdup)
313
314 # Check Configuration
315 CF_SYS_ERRLIST
316
317 dnl need do this early
318 test "x$prefix" = xNONE && prefix=$ac_default_prefix
319 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
320
321 SYSCONFDIR=`eval echo $sysconfdir`
322 AC_SUBST(SYSCONFDIR)
323
324 dnl AC_OUTPUT( \
325 dnl include/ldapconfig.h \
326 dnl include/Makefile:build/top.mk:include/Makefile.in   \
327 dnl clients/Makefile:build/top.mk:clients/Makefile.in:build/dir.mk \
328 dnl clients/tools/Makefile:build/top.mk:clients/tools/Makefile.in:build/rules.mk \
329 dnl clients/ud/Makefile:build/top.mk:clients/ud/Makefile.in:build/rules.mk \
330 dnl clients/fax500/Makefile:build/top.mk:clients/fax500/Makefile.in:build/rules.mk \
331 dnl clients/finger/Makefile:build/top.mk:clients/finger/Makefile.in:build/rules.mk \
332 dnl clients/gopher/Makefile:build/top.mk:clients/gopher/Makefile.in:build/rules.mk \
333 dnl clients/mail500/Makefile:build/top.mk:clients/mail500/Makefile.in:build/rules.mk \
334 dnl clients/rcpt500/Makefile:build/top.mk:clients/rcpt500/Makefile.in:build/rules.mk \
335 dnl contrib/Makefile:build/top.mk:contrib/Makefile.in:build/dir.mk \
336 dnl contrib/saucer/Makefile:build/top.mk:contrib/saucer/Makefile.in:build/rules.mk \
337 dnl contrib/whois++/Makefile:build/top.mk:contrib/whois++/Makefile.in:build/rules.mk \
338 dnl libraries/Makefile:build/top.mk:libraries/Makefile.in:build/dir.mk  \
339 dnl libraries/libavl/Makefile:build/top.mk:libraries/libavl/Makefile.in:build/lib.mk \
340 dnl libraries/liblber/Makefile:build/top.mk:libraries/liblber/Makefile.in:build/lib.mk \
341 dnl libraries/libldap/Makefile:build/top.mk:libraries/libldap/Makefile.in:build/lib.mk \
342 dnl libraries/libldbm/Makefile:build/top.mk:libraries/libldbm/Makefile.in:build/lib.mk \
343 dnl libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib.mk \
344 dnl libraries/liblthread/Makefile:build/top.mk:libraries/liblthread/Makefile.in:build/lib.mk \
345 dnl servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \
346 dnl servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \
347 dnl servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \
348 dnl servers/slapd/back-ldbm/Makefile:build/top.mk:servers/slapd/back-ldbm/Makefile.in:build/srv.mk \
349 dnl servers/slapd/back-passwd/Makefile:build/top.mk:servers/slapd/back-passwd/Makefile.in:build/srv.mk \
350 dnl servers/slapd/back-shell/Makefile:build/top.mk:servers/slapd/back-shell/Makefile.in:build/srv.mk \
351 dnl servers/slapd/tools/Makefile:build/top.mk:servers/slapd/tools/Makefile.in \
352 dnl servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk \
353 dnl servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk \
354 dnl tests/Makefile:build/top.mk:tests/Makefile.in \
355 dnl Makefile:build/top.mk:Makefile.in:build/dir.mk, \
356 dnl [date > stamp-h])
357
358 AC_OUTPUT( \
359 Makefile:build/top.mk:Makefile.in:build/dir.mk \
360 ,[date > stamp-h])