configure.in 93.7 KB
Newer Older
1
dnl $OpenLDAP$
Kurt Zeilenga's avatar
Kurt Zeilenga committed
2
dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
3
dnl
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
4
dnl Copyright 1998-2019 The OpenLDAP Foundation.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
5
6
dnl All rights reserved.
dnl
7
8
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted only as authorized by the OpenLDAP
Kurt Zeilenga's avatar
Kurt Zeilenga committed
9
10
11
12
13
dnl Public License.
dnl
dnl A copy of this license is available in the file LICENSE in the
dnl top-level directory of the distribution or, alternatively, at
dnl <http://www.OpenLDAP.org/license.html>.
14
dnl
15
dnl ----------------------------------------------------------------
16
17
18
dnl Disable config.cache!
define([AC_CACHE_LOAD], )dnl
define([AC_CACHE_SAVE], )dnl
19
20
21
22
23
dnl ----------------------------------------------------------------
dnl Disable libtool 1.5 support for languages we don't use
define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
Kurt Zeilenga's avatar
Kurt Zeilenga committed
24
dnl ================================================================
Kurt Zeilenga's avatar
Kurt Zeilenga committed
25
dnl Configure.in for OpenLDAP
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
26
AC_COPYRIGHT([[Copyright 1998-2019 The OpenLDAP Foundation. All rights reserved.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
27
Restrictions apply, see COPYRIGHT and LICENSE files.]])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
28
AC_REVISION([$Id$])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
29
AC_INIT([OpenLDAP],,[http://www.openldap.org/its/])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
30
m4_define([AC_PACKAGE_BUGREPORT],[<http://www.openldap.org/its/>])
31
AC_CONFIG_SRCDIR(build/version.sh)dnl
Kurt Zeilenga's avatar
Kurt Zeilenga committed
32
33
34
35
dnl ----------------------------------------------------------------
dnl OpenLDAP Autoconf Macros
builtin(include, build/openldap.m4)dnl
dnl ================================================================
36
37

AC_CONFIG_AUX_DIR(build)dnl
38

39
40
eval `$ac_aux_dir/version.sh`
if test -z "$OL_STRING"; then
41
42
43
	AC_MSG_ERROR([could not determine version])
fi

44
if test -f "$ac_aux_dir/shtool" && test ! -d $ac_aux_dir/shtool; then
45
46
47
48
49
50
51
	ac_cv_shtool="$ac_aux_dir/shtool"
else
	AC_MSG_ERROR([no shtool found in $ac_aux_dir])
fi

SHTOOL="$ac_cv_shtool"
dnl AC_SUBST(SHTOOL)dnl
52

53
54
55
56
57
TB="" TN=""
if test -t 1; then
	TB="`$SHTOOL echo -e '%B' 2>/dev/null`"
	TN="`$SHTOOL echo -e '%b' 2>/dev/null`"
fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
58

59
60
61
62
63
OPENLDAP_REPO=""
if test -d $ac_aux_dir/../.git; then
	OPENLDAP_REPO="(from Git clone) "
elif test -d $ac_aux_dir/CVS; then
	OPENLDAP_REPO="(from CVS checkout) "
64
65
fi

66
echo "Configuring ${TB}${OL_STRING}${TN} ${OPENLDAP_REPO}..."
67

68
69
dnl Determine host platform
dnl		we try not to use this for much
70
AC_CANONICAL_TARGET([])
71

72
73
74
75
76
AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
AC_SUBST(PACKAGE)dnl
AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
AC_DEFINE_UNQUOTED(OPENLDAP_VERSION,"$VERSION",Version)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
77

78
79
80
81
AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION,$OL_API_INC,Version)
AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MAJOR,$OL_MAJOR,Major)
AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_MINOR,$OL_MINOR,Minor)
AC_DEFINE_UNQUOTED(LDAP_VENDOR_VERSION_PATCH,$OL_PATCH,Patch)
82

Kurt Zeilenga's avatar
Kurt Zeilenga committed
83
84
85
86
OPENLDAP_LIBRELEASE=$OL_API_LIB_RELEASE
AC_SUBST(OPENLDAP_LIBRELEASE)dnl

OPENLDAP_LIBVERSION=$OL_API_LIB_VERSION
Kurt Zeilenga's avatar
Kurt Zeilenga committed
87
AC_SUBST(OPENLDAP_LIBVERSION)dnl
88

89
90
91
OPENLDAP_RELEASE_DATE="$OL_RELEASE_DATE"
AC_SUBST(OPENLDAP_RELEASE_DATE)dnl

92
93
94
95
dnl We use autoconf features new to 2.59.  Later versions like won't work.
dnl aclocal.m4 should be built using aclocal from automake 1.5
dnl libtool 1.5 should be installed.
AC_PREREQ(2.59)dnl Required Autoconf version
96

97
98
99
100
AH_TOP([
/* begin of portable.h.pre */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
 *
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
101
 * Copyright 1998-2019 The OpenLDAP Foundation
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted only as authorized by the OpenLDAP
 * Public License.
 *
 * A copy of this license is available in the file LICENSE in the
 * top-level directory of the distribution or, alternatively, at
 * <http://www.OpenLDAP.org/license.html>.
 */

#ifndef _LDAP_PORTABLE_H
#define _LDAP_PORTABLE_H

/* define this if needed to get reentrant functions */
#ifndef REENTRANT
#undef REENTRANT
#endif
#ifndef _REENTRANT
#undef _REENTRANT
#endif

/* define this if needed to get threadsafe functions */
#ifndef THREADSAFE
#undef THREADSAFE
#endif
#ifndef _THREADSAFE
#undef _THREADSAFE
#endif
#ifndef THREAD_SAFE
#undef THREAD_SAFE
#endif
#ifndef _THREAD_SAFE
#undef _THREAD_SAFE
#endif

#ifndef _SGI_MP_SOURCE
#undef _SGI_MP_SOURCE
#endif

/* end of portable.h.pre */
])
AH_BOTTOM([
/* begin of portable.h.post */

#ifdef _WIN32
	/* don't suck in all of the win32 api */
#	define WIN32_LEAN_AND_MEAN 1
#endif

#ifndef LDAP_NEEDS_PROTOTYPES
/* force LDAP_P to always include prototypes */
#define LDAP_NEEDS_PROTOTYPES 1
#endif

#ifndef LDAP_REL_ENG
#if (LDAP_VENDOR_VERSION == 000000) && !defined(LDAP_DEVEL)
#define LDAP_DEVEL
#endif
#if defined(LDAP_DEVEL) && !defined(LDAP_TEST)
#define LDAP_TEST
#endif
#endif

#ifdef HAVE_STDDEF_H
#	include <stddef.h>
#endif

#ifdef HAVE_EBCDIC 
/* ASCII/EBCDIC converting replacements for stdio funcs
 * vsnprintf and snprintf are used too, but they are already
 * checked by the configure script
 */
#define fputs ber_pvt_fputs
#define fgets ber_pvt_fgets
#define printf ber_pvt_printf
#define fprintf ber_pvt_fprintf
#define vfprintf ber_pvt_vfprintf
#define vsprintf ber_pvt_vsprintf
#endif

#include "ac/fdset.h"

#include "ldap_cdefs.h"
#include "ldap_features.h"
187

188
189
190
191
192
193
194
195
196
197
#include "ac/assert.h"
#include "ac/localize.h"

#endif /* _LDAP_PORTABLE_H */
/* end of portable.h.post */
])

AC_CONFIG_HEADERS([include/portable.h:include/portable.hin])
AC_CONFIG_HEADERS([include/ldap_features.h:include/ldap_features.hin])
AC_CONFIG_HEADERS([include/lber_types.h:include/lber_types.hin])
198

199
dnl ================================================================
Kurt Zeilenga's avatar
Kurt Zeilenga committed
200
201
202
203
dnl Start Args
AC_MSG_CHECKING(configure arguments)
AC_PREFIX_DEFAULT(/usr/local)

204
205
206
top_builddir=`pwd`
AC_SUBST(top_builddir)dnl

207
208
dnl ----------------------------------------------------------------
dnl --with-subdir
209
ldap_subdir="/openldap"
Kurt Zeilenga's avatar
Kurt Zeilenga committed
210

211
AC_ARG_WITH(subdir,
Kurt Zeilenga's avatar
Kurt Zeilenga committed
212
[  --with-subdir=DIR       change default subdirectory used for installs],
213
214
215
216
217
218
[case "$withval" in
	no) ldap_subdir=""
		;;
	yes)
		;;
	/*|\\*)
219
		ldap_subdir="$withval"
220
221
222
223
224
		;;
	*)
		ldap_subdir="/$withval"
		;;
esac
225
226
])dnl

227
228
AC_SUBST(ldap_subdir)dnl

229
230
dnl ----------------------------------------------------------------
dnl General "enable" options
231
232
dnl set default to traditional to enable the original debug style
OL_ARG_ENABLE(debug,[  --enable-debug 	  enable debugging], yes, [no yes traditional])dnl
233
234
235
236
OL_ARG_ENABLE(dynamic,[  --enable-dynamic	  enable linking built binaries with dynamic libs], no)dnl
OL_ARG_ENABLE(syslog,[  --enable-syslog	  enable syslog support], auto)dnl
OL_ARG_ENABLE(proctitle,[  --enable-proctitle	  enable proctitle support], yes)dnl
dnl OL_ARG_ENABLE(referrals,[  --enable-referrals	  enable LDAPv2+ Referrals (experimental)], no)dnl
237
ol_enable_referrals=${ol_enable_referrals-no}
238
239
OL_ARG_ENABLE(ipv6,[  --enable-ipv6 	  enable IPv6 support], auto)dnl
OL_ARG_ENABLE(local,[  --enable-local	  enable AF_LOCAL (AF_UNIX) socket support], auto)dnl
Kurt Zeilenga's avatar
Kurt Zeilenga committed
240

241
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
242
dnl General "with" options
243
244
245
246
247
248
OL_ARG_WITH(cyrus_sasl,[  --with-cyrus-sasl	  with Cyrus SASL support],
	auto, [auto yes no] )
OL_ARG_WITH(fetch,[  --with-fetch		  with fetch(3) URL support],
	auto, [auto yes no] )
OL_ARG_WITH(threads,[  --with-threads	  with threads],
	auto, [auto nt posix mach pth lwp yes no manual] )
249
250
OL_ARG_WITH(tls,[  --with-tls		  with TLS/SSL support auto|openssl|gnutls|moznss],
	auto, [auto openssl gnutls moznss yes no] )
Kurt Zeilenga's avatar
Kurt Zeilenga committed
251
252
OL_ARG_WITH(yielding_select,
	[  --with-yielding-select  with implicitly yielding select],
253
	auto, [auto yes no manual] )
Kurt Zeilenga's avatar
Kurt Zeilenga committed
254
255
256
OL_ARG_WITH(mp,
	[  --with-mp               with multiple precision statistics auto|longlong|long|bignum|gmp],
	auto, [auto longlong long bignum gmp yes no])
257
OL_ARG_WITH(odbc,
258
259
	[  --with-odbc             with specific ODBC support iodbc|unixodbc|odbc32|auto],
	auto, [auto iodbc unixodbc odbc32] )
Kurt Zeilenga's avatar
Kurt Zeilenga committed
260

261
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
262
dnl Server options
263
264
dnl ----------------------------------------------------------------

265
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
266
dnl SLAPD OPTIONS
267
AC_ARG_ENABLE(xxslapdoptions,[
268
269
SLAPD (Standalone LDAP Daemon) Options:])
OL_ARG_ENABLE(slapd,[  --enable-slapd	  enable building slapd], yes)dnl
270
271
OL_ARG_ENABLE(dynacl,[    --enable-dynacl	  enable run-time loadable ACL support (experimental)], no)dnl
OL_ARG_ENABLE(aci,[    --enable-aci	  enable per-object ACIs (experimental)], no, [no yes mod])dnl
272
273
274
275
276
OL_ARG_ENABLE(cleartext,[    --enable-cleartext	  enable cleartext passwords], yes)dnl
OL_ARG_ENABLE(crypt,[    --enable-crypt	  enable crypt(3) passwords], no)dnl
OL_ARG_ENABLE(lmpasswd,[    --enable-lmpasswd	  enable LAN Manager passwords], no)dnl
OL_ARG_ENABLE(spasswd,[    --enable-spasswd	  enable (Cyrus) SASL password verification], no)dnl
OL_ARG_ENABLE(modules,[    --enable-modules	  enable dynamic module support], no)dnl
277
OL_ARG_ENABLE(rewrite,[    --enable-rewrite	  enable DN rewriting in back-ldap and rwm overlay], auto)dnl
278
OL_ARG_ENABLE(rlookups,[    --enable-rlookups	  enable reverse lookups of client hostnames], no)dnl
279
OL_ARG_ENABLE(slapi,[    --enable-slapi        enable SLAPI support (experimental)], no)dnl
280
281
282
OL_ARG_ENABLE(slp,[    --enable-slp          enable SLPv2 support], no)dnl     
OL_ARG_ENABLE(wrappers,[    --enable-wrappers	  enable tcp wrapper support], no)dnl

Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
283
284
dnl ----------------------------------------------------------------
dnl SLAPD Backend Options
285
Backends="dnssrv \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
286
	ldap \
287
	mdb \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
288
	meta \
Howard Chu's avatar
Howard Chu committed
289
	asyncmeta \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
290
	monitor \
Howard Chu's avatar
Howard Chu committed
291
	ndb \
Kurt Zeilenga's avatar
Kurt Zeilenga committed
292
293
294
295
296
	null \
	passwd \
	perl \
	relay \
	shell \
297
	sock \
298
299
	sql \
	wt"
300

301
AC_ARG_ENABLE(xxslapbackends,[
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
302
303
SLAPD Backend Options:])

304
OL_ARG_ENABLE(backends,[    --enable-backends	  enable all available backends],
305
	--, [no yes mod])dnl
306
307
308
309
OL_ARG_ENABLE(dnssrv,[    --enable-dnssrv	  enable dnssrv backend],
	no, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(ldap,[    --enable-ldap	  enable ldap backend],
	no, [no yes mod], ol_enable_backends)dnl
310
311
OL_ARG_ENABLE(mdb,[    --enable-mdb	  enable mdb database backend],
	yes, [no yes mod], ol_enable_backends)dnl
312
313
OL_ARG_ENABLE(meta,[    --enable-meta	  enable metadirectory backend],
	no, [no yes mod], ol_enable_backends)dnl
314
315
OL_ARG_ENABLE(asyncmeta,[    --enable-asyncmeta	  enable asynchronous metadirectory backend],
	no, [no yes mod], ol_enable_backends)dnl
316
317
OL_ARG_ENABLE(monitor,[    --enable-monitor	  enable monitor backend],
	yes, [no yes mod], ol_enable_backends)dnl
Howard Chu's avatar
Howard Chu committed
318
319
OL_ARG_ENABLE(ndb,[    --enable-ndb	  enable MySQL NDB Cluster backend],
	no, [no yes mod], ol_enable_backends)dnl
320
321
322
323
324
325
326
327
328
329
OL_ARG_ENABLE(null,[    --enable-null	  enable null backend],
	no, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(passwd,[    --enable-passwd	  enable passwd backend],
	no, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(perl,[    --enable-perl	  enable perl backend],
	no, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(relay,[    --enable-relay  	  enable relay backend],
	yes, [no yes mod], ol_enable_backends)dnl
OL_ARG_ENABLE(shell,[    --enable-shell	  enable shell backend],
	no, [no yes mod], ol_enable_backends)dnl
330
331
OL_ARG_ENABLE(sock,[    --enable-sock	  enable sock backend],
	no, [no yes mod], ol_enable_backends)dnl
332
333
OL_ARG_ENABLE(sql,[    --enable-sql	  enable sql backend],
	no, [no yes mod], ol_enable_backends)dnl
334
335
OL_ARG_ENABLE(wt,[    --enable-wt	  enable WiredTiger backend],
	no, [no yes mod], ol_enable_backends)dnl
Kurt Zeilenga's avatar
Kurt Zeilenga committed
336

Howard Chu's avatar
Howard Chu committed
337
338
dnl ----------------------------------------------------------------
dnl SLAPD Overlay Options
339
Overlays="accesslog \
Howard Chu's avatar
Howard Chu committed
340
	auditlog \
Howard Chu's avatar
Howard Chu committed
341
	autoca \
342
	collect \
Howard Chu's avatar
Howard Chu committed
343
	constraint \
344
	dds \
345
	deref \
346
347
	dyngroup \
	dynlist \
Pierangelo Masarati's avatar
Pierangelo Masarati committed
348
	memberof \
349
350
351
352
353
	ppolicy \
	proxycache \
	refint \
	retcode \
	rwm \
354
	seqmod \
Howard Chu's avatar
Howard Chu committed
355
	sssvlv \
356
357
	syncprov \
	translucent \
Howard Chu's avatar
Howard Chu committed
358
359
	unique \
	valsort"
360

361
AC_ARG_ENABLE(xxslapoverlays,[
Howard Chu's avatar
Howard Chu committed
362
SLAPD Overlay Options:])
Kurt Zeilenga's avatar
cleanup    
Kurt Zeilenga committed
363

364
OL_ARG_ENABLE(overlays,[    --enable-overlays	  enable all available overlays],
365
	--, [no yes mod])dnl
366
367
OL_ARG_ENABLE(accesslog,[    --enable-accesslog	  In-Directory Access Logging overlay],
	no, [no yes mod], ol_enable_overlays)
Howard Chu's avatar
Howard Chu committed
368
369
OL_ARG_ENABLE(auditlog,[    --enable-auditlog	  Audit Logging overlay],
	no, [no yes mod], ol_enable_overlays)
Howard Chu's avatar
Howard Chu committed
370
371
OL_ARG_ENABLE(autoca,[    --enable-autoca	  Automatic Certificate Authority overlay],
	no, [no yes mod], ol_enable_overlays)
372
373
OL_ARG_ENABLE(collect,[    --enable-collect	  Collect overlay],
	no, [no yes mod], ol_enable_overlays)
Howard Chu's avatar
Howard Chu committed
374
375
OL_ARG_ENABLE(constraint,[    --enable-constraint	  Attribute Constraint overlay],
	no, [no yes mod], ol_enable_overlays)
376
377
OL_ARG_ENABLE(dds,[    --enable-dds  	  Dynamic Directory Services overlay],
	no, [no yes mod], ol_enable_overlays)
378
379
OL_ARG_ENABLE(deref,[    --enable-deref	  Dereference overlay],
	no, [no yes mod], ol_enable_overlays)
380
381
382
383
OL_ARG_ENABLE(dyngroup,[    --enable-dyngroup	  Dynamic Group overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(dynlist,[    --enable-dynlist	  Dynamic List overlay],
	no, [no yes mod], ol_enable_overlays)
Pierangelo Masarati's avatar
Pierangelo Masarati committed
384
385
OL_ARG_ENABLE(memberof,[    --enable-memberof	  Reverse Group Membership overlay],
	no, [no yes mod], ol_enable_overlays)
386
387
388
389
390
391
392
393
394
395
OL_ARG_ENABLE(ppolicy,[    --enable-ppolicy	  Password Policy overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(proxycache,[    --enable-proxycache	  Proxy Cache overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(refint,[    --enable-refint	  Referential Integrity overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(retcode,[    --enable-retcode	  Return Code testing overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(rwm,[    --enable-rwm       	  Rewrite/Remap overlay],
	no, [no yes mod], ol_enable_overlays)
396
OL_ARG_ENABLE(seqmod,[    --enable-seqmod	  Sequential Modify overlay],
397
	no, [no yes mod], ol_enable_overlays)
Howard Chu's avatar
Howard Chu committed
398
OL_ARG_ENABLE(sssvlv,[    --enable-sssvlv	  ServerSideSort/VLV overlay],
399
	no, [no yes mod], ol_enable_overlays)
400
401
402
403
404
405
OL_ARG_ENABLE(syncprov,[    --enable-syncprov	  Syncrepl Provider overlay],
	yes, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(translucent,[    --enable-translucent  Translucent Proxy overlay],
	no, [no yes mod], ol_enable_overlays)
OL_ARG_ENABLE(unique,[    --enable-unique       Attribute Uniqueness overlay],
	no, [no yes mod], ol_enable_overlays)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
406
OL_ARG_ENABLE(valsort,[    --enable-valsort      Value Sorting overlay],
407
	no, [no yes mod], ol_enable_overlays)
Howard Chu's avatar
Howard Chu committed
408

409
dnl ----------------------------------------------------------------
410
AC_ARG_ENABLE(xxliboptions,[
411
Library Generation & Linking Options])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
412
413
AC_ENABLE_STATIC
AC_ENABLE_SHARED
414

415
416
dnl ----------------------------------------------------------------

417
# validate options
Kurt Zeilenga's avatar
Kurt Zeilenga committed
418
if test $ol_enable_slapd = no ; then
Josh Soref's avatar
Josh Soref committed
419
	dnl SLAPD was specifically disabled
420
421
422
	if test $ol_enable_slapi = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-slapi argument])
	fi
423
	case "$ol_enable_backends" in yes | mod)
424
		AC_MSG_WARN([slapd disabled, ignoring --enable-backends argument])
425
	esac
426
427
428
429
	for i in $Backends; do
		eval "ol_tmp=\$ol_enable_$i"
		if test $ol_tmp != no ; then
			AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
Howard Chu's avatar
Howard Chu committed
430
			eval "ol_enable_$i=no"
431
432
		fi
	done
433
	if test $ol_enable_modules = yes ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
434
		AC_MSG_WARN([slapd disabled, ignoring --enable-modules argument])
435
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
436
	if test $ol_enable_wrappers = yes ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
437
		AC_MSG_WARN([slapd disabled, ignoring --enable-wrappers argument])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
438
439
	fi
	if test $ol_enable_rlookups = yes ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
440
		AC_MSG_WARN([slapd disabled, ignoring --enable-rlookups argument])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
441
	fi
442
443
444
445
	if test $ol_enable_dynacl = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-dynacl argument])
	fi
	if test $ol_enable_aci != no ; then
446
447
		AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
	fi
Pierangelo Masarati's avatar
Pierangelo Masarati committed
448
449
450
	if test $ol_enable_rewrite = yes ; then
		AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
	fi
Pierangelo Masarati's avatar
Pierangelo Masarati committed
451
	dnl overlays
452
	case "$ol_enable_overlays" in yes | mod)
453
		AC_MSG_WARN([slapd disabled, ignoring --enable-overlays argument])
454
	esac
455
456
457
458
	for i in $Overlays; do
		eval "ol_tmp=\$ol_enable_$i"
		if test $ol_tmp != no ; then
			AC_MSG_WARN([slapd disabled, ignoring --enable-$i argument])
Howard Chu's avatar
Howard Chu committed
459
			eval "ol_enable_$i=no"
460
461
		fi
	done
Kurt Zeilenga's avatar
Kurt Zeilenga committed
462
463

	# force settings to no
464
	ol_enable_slapi=no
465

466
467
	ol_enable_backends=
	ol_enable_overlays=
468
	ol_enable_modules=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
469
	ol_enable_rlookups=no
470
	ol_enable_dynacl=no
471
	ol_enable_aci=no
472
473
	ol_enable_wrappers=no

Pierangelo Masarati's avatar
Pierangelo Masarati committed
474
475
	ol_enable_rewrite=no

476
477
478
elif test $ol_enable_modules != yes &&
	test $ol_enable_dnssrv = no &&
	test $ol_enable_ldap = no &&
479
	test $ol_enable_mdb = no &&
480
	test $ol_enable_meta = no &&
Howard Chu's avatar
Howard Chu committed
481
	test $ol_enable_asyncmeta = no &&
482
	test $ol_enable_monitor = no &&
Howard Chu's avatar
Howard Chu committed
483
	test $ol_enable_ndb = no &&
484
485
486
487
488
	test $ol_enable_null = no &&
	test $ol_enable_passwd = no &&
	test $ol_enable_perl = no &&
	test $ol_enable_relay = no &&
	test $ol_enable_shell = no &&
489
	test $ol_enable_sock = no &&
490
491
	test $ol_enable_sql = no &&
	test $ol_enable_wt = no ; then
492
493
494
495
496
497
498
	dnl no slapd backend

	if test $ol_enable_slapd = yes ; then
		AC_MSG_ERROR([slapd requires a backend])
	else
		AC_MSG_WARN([skipping slapd, no backend specified])
		ol_enable_slapd=no
499
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
500
501
fi

502
if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
503
504
505
	AC_MSG_ERROR([--enable-meta requires --enable-ldap])
fi

Howard Chu's avatar
Howard Chu committed
506
if test $ol_enable_asyncmeta/$ol_enable_ldap = yes/no ; then
507
508
509
	AC_MSG_ERROR([--enable-asyncmeta requires --enable-ldap])
fi

Kurt Zeilenga's avatar
Kurt Zeilenga committed
510
511
512
513
514
515
if test $ol_enable_lmpasswd = yes ; then
	if test $ol_with_tls = no ; then
		AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
	fi
fi

516
517
518
519
if test $ol_enable_spasswd = yes ; then
	if test $ol_with_cyrus_sasl = no ; then
		AC_MSG_ERROR([options require --with-cyrus-sasl])
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
520
	ol_with_cyrus_sasl=yes
521
522
fi

Kurt Zeilenga's avatar
Kurt Zeilenga committed
523
524
AC_MSG_RESULT(done)

525
526
dnl ----------------------------------------------------------------
dnl Initialize vars
Kurt Zeilenga's avatar
Kurt Zeilenga committed
527
LDAP_LIBS=
Howard Chu's avatar
Howard Chu committed
528
529
SLAPD_NDB_LIBS=
SLAPD_NDB_INCS=
Kurt Zeilenga's avatar
Kurt Zeilenga committed
530
531
532
LTHREAD_LIBS=
LUTIL_LIBS=

533
534
CLIENT_LIBS=

Kurt Zeilenga's avatar
Kurt Zeilenga committed
535
536
537
538
SLAPD_LIBS=

BUILD_SLAPD=no

539
540
BUILD_THREAD=no

541
542
543
BUILD_SLAPI=no
SLAPD_SLAPI_DEPEND=

544
BUILD_DNSSRV=no
545
BUILD_LDAP=no
546
BUILD_MDB=no
Pierangelo Masarati's avatar
Pierangelo Masarati committed
547
BUILD_META=no
548
BUILD_ASYNCMETA=no
549
BUILD_MONITOR=no
550
BUILD_NDB=no
551
BUILD_NULL=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
552
BUILD_PASSWD=no
553
BUILD_PERL=no
554
BUILD_RELAY=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
555
BUILD_SHELL=no
556
BUILD_SOCK=no
557
BUILD_SQL=no
558
BUILD_WT=no
Kurt Zeilenga's avatar
Kurt Zeilenga committed
559

Howard Chu's avatar
Howard Chu committed
560
BUILD_ACCESSLOG=no
Howard Chu's avatar
Howard Chu committed
561
BUILD_AUDITLOG=no
562
BUILD_AUTOCA=no
Howard Chu's avatar
Howard Chu committed
563
BUILD_CONSTRAINT=no
564
BUILD_DDS=no
Pierangelo Masarati's avatar
Pierangelo Masarati committed
565
BUILD_DENYOP=no
Howard Chu's avatar
Howard Chu committed
566
BUILD_DEREF=no
Howard Chu's avatar
Howard Chu committed
567
BUILD_DYNGROUP=no
Pierangelo Masarati's avatar
Pierangelo Masarati committed
568
BUILD_DYNLIST=no
569
BUILD_LASTMOD=no
570
BUILD_MEMBEROF=no
Howard Chu's avatar
Howard Chu committed
571
BUILD_PPOLICY=no
Howard Chu's avatar
Howard Chu committed
572
BUILD_PROXYCACHE=no
573
BUILD_REFINT=no
574
BUILD_RETCODE=no
575
BUILD_RWM=no
576
BUILD_SEQMOD=no
Howard Chu's avatar
Howard Chu committed
577
BUILD_SSSVLV=no
Howard Chu's avatar
Howard Chu committed
578
BUILD_SYNCPROV=no
Howard Chu's avatar
Howard Chu committed
579
BUILD_TRANSLUCENT=no
580
BUILD_UNIQUE=no
Howard Chu's avatar
Howard Chu committed
581
BUILD_VALSORT=no
Howard Chu's avatar
Howard Chu committed
582

583
SLAPD_STATIC_OVERLAYS=
Howard Chu's avatar
Howard Chu committed
584
585
SLAPD_DYNAMIC_OVERLAYS=

586
587
588
SLAPD_MODULES_LDFLAGS=
SLAPD_MODULES_CPPFLAGS=

589
SLAPD_STATIC_BACKENDS=back-ldif
590
591
SLAPD_DYNAMIC_BACKENDS=

592
SLAPD_PERL_LDFLAGS=
593
594
MOD_PERL_LDFLAGS=
PERL_CPPFLAGS=
595

596
597
598
599
SLAPD_SQL_LDFLAGS=
SLAPD_SQL_LIBS=
SLAPD_SQL_INCLUDES=

600
601
KRB4_LIBS=
KRB5_LIBS=
602
SASL_LIBS=
Bart Hartgers's avatar
   
Bart Hartgers committed
603
TLS_LIBS=
604
WITH_TLS_TYPE=
605
MODULES_LIBS=
606
SLAPI_LIBS=
Pierangelo Masarati's avatar
Pierangelo Masarati committed
607
LIBSLAPI=
608
AUTH_LIBS=
609
ICU_LIBS=
Kurt Zeilenga's avatar
Kurt Zeilenga committed
610

611
SLAPD_SLP_LIBS=
612
SLAPD_GMP_LIBS=
613

614
dnl ================================================================
Kurt Zeilenga's avatar
Kurt Zeilenga committed
615
616
dnl Checks for programs

617
618
AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])

619
dnl ----------------------------------------------------------------
620
621
622
623
dnl
dnl Determine which C translator to use
dnl

624
dnl AIX Thread requires we use cc_r or xlc_r.
Kurt Zeilenga's avatar
Kurt Zeilenga committed
625
626
dnl But only do this IF AIX and CC is not set
dnl and threads are auto|yes|posix.
627
dnl
628
dnl If we find cc_r|xlc_r, force pthreads and assume
629
630
dnl		pthread_create is in $LIBS (ie: don't bring in
dnl		any additional thread libraries)
631
dnl If we do not find cc_r|xlc_r, disable threads
632
633

ol_aix_threads=no
634
case "$target" in
Kurt Zeilenga's avatar
Kurt Zeilenga committed
635
*-*-aix*) dnl all AIX is not a good idea.
636
	if test -z "$CC" ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
637
		case "$ol_with_threads" in
638
		auto | yes |  posix) ol_aix_threads=yes ;;
Kurt Zeilenga's avatar
Kurt Zeilenga committed
639
640
641
642
		esac
	fi
;;
esac
643

644
645
646
647
648
649
650
651
652
653
654
655
656
657
if test $ol_aix_threads = yes ; then
	if test -z "${CC}" ; then
		AC_CHECK_PROGS(CC,cc_r xlc_r cc)

		if test "$CC" = cc ; then
			dnl no CC! don't allow --with-threads
			if test $ol_with_threads != auto ; then
				AC_MSG_ERROR([--with-threads requires cc_r (or other suitable compiler) on AIX])
			else
				AC_MSG_WARN([disabling threads, no cc_r on AIX])
			fi
			ol_with_threads=no
  		fi
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
658

659
	case ${CC} in cc_r | xlc_r)
660
661
		ol_with_threads=posix
		ol_cv_pthread_create=yes
662
663
		;;
	esac
664
665
fi

Kurt Zeilenga's avatar
Kurt Zeilenga committed
666
if test -z "${CC}"; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
667
	AC_CHECK_PROGS(CC,cc gcc,missing)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
668
669

	if test "${CC}" = "missing" ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
670
		AC_MSG_ERROR([Unable to locate cc(1) or suitable replacement.  Check PATH or set CC.])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
671
	fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
672
673
fi

674
675
676
677
if test -z "${AR}"; then
	AC_CHECK_PROGS(AR,ar gar,missing)

	if test "${AR}" = "missing" ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
678
		AC_MSG_ERROR([Unable to locate ar(1) or suitable replacement.  Check PATH or set AR.])
679
680
	fi
fi
681

Howard Chu's avatar
Howard Chu committed
682
AC_LIBTOOL_WIN32_DLL
683
AC_LIBTOOL_DLOPEN
Kurt Zeilenga's avatar
Kurt Zeilenga committed
684
AC_PROG_LIBTOOL
Kurt Zeilenga's avatar
Kurt Zeilenga committed
685

686
687
dnl ----------------------------------------------------------------
dnl Perl
688
689
ol_link_perl=no
if test $ol_enable_perl != no ; then
690
691
692
	AC_PATH_PROG(PERLBIN, perl, /usr/bin/perl)

	if test "no$PERLBIN" = "no" ; then
693
694
695
		if test $ol_enable_perl = yes ; then
			AC_MSG_ERROR([could not locate perl])
		fi
696

697
	else
698
		PERL_CPPFLAGS="`$PERLBIN -MExtUtils::Embed -e ccopts`"
699
		PERL_LDFLAGS="`$PERLBIN -MExtUtils::Embed -e ldopts|sed -e 's/ -lc / /' -e 's/ -lc$//'`"
Kurt Zeilenga's avatar
Kurt Zeilenga committed
700

701
		if test x"$ol_enable_perl" = "xyes" ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
702
			SLAPD_PERL_LDFLAGS="$PERL_LDFLAGS"
703
		else
Kurt Zeilenga's avatar
Kurt Zeilenga committed
704
			MOD_PERL_LDFLAGS="$PERL_LDFLAGS"
705
		fi
706
707
708
		dnl should check perl version
		ol_link_perl=yes
	fi
709
710
fi

711
AC_PROG_CPP
Kurt Zeilenga's avatar
Kurt Zeilenga committed
712
OL_MSVC
713

Howard Chu's avatar
Howard Chu committed
714
715
716
717
718
dnl ----------------------------------------------------------------
dnl Checks for Windows NT
case $host_os in
  *mingw32* ) ac_cv_mingw32=yes ;;
  *cygwin* ) ac_cv_cygwin=yes ;;
Kurt Zeilenga's avatar
Kurt Zeilenga committed
719
  *interix* ) ac_cv_interix=yes ;;
Howard Chu's avatar
Howard Chu committed
720
721
esac

722
dnl ----------------------------------------------------------------
723
dnl Checks for file extensions
724
725
AC_EXEEXT
AC_OBJEXT
Kurt Zeilenga's avatar
Kurt Zeilenga committed
726
AC_DEFINE_UNQUOTED(EXEEXT, "${EXEEXT}", [defined to be the EXE extension])
727

728
dnl ----------------------------------------------------------------
729
730
731
dnl BeOS requires -lbe -lroot -lnet
AC_CHECK_LIB(be, be_app, [LIBS="$LIBS -lbe -lroot -lnet"], :, [-lroot -lnet])

732
dnl ----------------------------------------------------------------
733
dnl OpenLDAP requires STDC features
734
735
AC_PROG_CC
if test "X${ac_cv_prog_cc_stdc}" = "Xno" ; then
736
	AC_MSG_ERROR([OpenLDAP requires compiler to support STDC constructs.])
737
738
fi

739
dnl ----------------------------------------------------------------
740
dnl Check cc depend flags
Kurt Zeilenga's avatar
Kurt Zeilenga committed
741
742
743
744
745
OL_MKDEPEND
if test "${ol_cv_mkdep}" = no ; then
	# this will soon become an error
	AC_MSG_WARN([do not know how to generate dependencies])
fi
746

747
748
dnl ----------------------------------------------------------------
dnl Check for AIX security library
749
AC_CHECK_LIB(s, afopen, [
750
751
752
753
	AUTH_LIBS=-ls
	AC_DEFINE(HAVE_AIX_SECURITY,1,[define if you have AIX security lib])
])

754
755
756
757
758
759
760
761
dnl ----------------------------------------------------------------
dnl Check for IBM OS/390
case "$target" in
*-ibm-openedition)
	ac_cv_func_getopt=no
	AC_DEFINE(BOTH_STRINGS_H,1,[define to use both <string.h> and <strings.h>])
	;;
esac
762

763
dnl ----------------------------------------------------------------
764
765
dnl Check for module support
ol_link_modules=no
766
WITH_MODULES_ENABLED=no
767
768
769
770
771
772
773
if test $ol_enable_modules != no ; then
	AC_CHECK_HEADERS(ltdl.h)

	if test $ac_cv_header_ltdl_h = no ; then
		AC_MSG_ERROR([could not locate libtool ltdl.h])
	fi

Howard Chu's avatar
Howard Chu committed
774
	AC_CHECK_LIB(ltdl, lt_dlinit, [
Kurt Zeilenga's avatar
Kurt Zeilenga committed
775
776
		MODULES_LIBS=-lltdl
		AC_DEFINE(HAVE_LIBLTDL,1,[define if you have libtool -ltdl])
Howard Chu's avatar
Howard Chu committed
777
778
	])

779
780
781
782
	if test "$ac_cv_lib_ltdl_lt_dlinit" = no ; then
		AC_MSG_ERROR([could not locate libtool -lltdl])
	fi
	ol_link_modules=yes
783
	WITH_MODULES_ENABLED=yes
784

785
else
786
787
788
789
	for i in $Backends; do
		eval "ol_tmp=\$ol_enable_$i"
		if test $ol_tmp = mod ; then
			AC_MSG_WARN([building static $i backend])
Howard Chu's avatar
Howard Chu committed
790
			eval "ol_enable_$i=yes"
791
792
793
794
795
796
		fi
	done
	for i in $Overlays; do
		eval "ol_tmp=\$ol_enable_$i"
		if test $ol_tmp = mod ; then
			AC_MSG_WARN([building static $i overlay])
Howard Chu's avatar
Howard Chu committed
797
			eval "ol_enable_$i=yes"
798
799
		fi
	done
800
801
fi

802
803
804
805
806
807
808
809
810
811
dnl ----------------------------------------------------------------
dnl Checks for header files.
OL_HEADER_STDC

if test $ol_cv_header_stdc != yes; then
	AC_MSG_WARN([could not locate Standard C compliant headers])
fi

AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
Kurt Zeilenga's avatar
Kurt Zeilenga committed
812
AC_HEADER_TIOCGWINSZ
813

814
AC_CHECK_HEADERS(	\
815
	arpa/inet.h		\
816
	arpa/nameser.h	\
817
	assert.h		\
818
	bits/types.h	\
Howard Chu's avatar
Howard Chu committed
819
	conio.h			\
820
	crypt.h			\
Howard Chu's avatar
Howard Chu committed
821
	direct.h		\
822
823
824
825
826
	errno.h			\
	fcntl.h			\
	filio.h			\
	getopt.h		\
	grp.h			\
Howard Chu's avatar
Howard Chu committed
827
	io.h			\
828
829
830
831
832
833
834
	libutil.h		\
	limits.h		\
	locale.h		\
	malloc.h		\
	memory.h		\
	psap.h			\
	pwd.h			\
Howard Chu's avatar
Howard Chu committed
835
	process.h		\
836
837
838
839
840
841
842
843
	sgtty.h			\
	shadow.h		\
	stddef.h		\
	string.h		\
	strings.h		\
	sysexits.h		\
	sys/file.h		\
	sys/filio.h		\
Howard Chu's avatar
Howard Chu committed
844
	sys/fstyp.h		\
845
846
847
	sys/errno.h		\
	sys/ioctl.h		\
	sys/param.h		\
Howard Chu's avatar
Howard Chu committed
848
	sys/privgrp.h	\
849
850
851
	sys/resource.h	\
	sys/select.h	\
	sys/socket.h	\
852
	sys/stat.h		\
853
	sys/syslog.h	\
854
855
	sys/time.h		\
	sys/types.h		\
856
	sys/uio.h		\
Howard Chu's avatar
Howard Chu committed
857
	sys/vmount.h	\
858
859
860
	syslog.h		\
	termios.h		\
	unistd.h		\
Pierangelo Masarati's avatar
Pierangelo Masarati committed
861
	utime.h			\
862
863
)

864
dnl Only check Winsock on MinGW
Kurt Zeilenga's avatar
Kurt Zeilenga committed
865
866
867
868
if test "$ac_cv_mingw32" = yes \
	-o "$ac_cv_interix" = yes \
	-o "$ol_cv_msvc" = yes
then
869
870
871
	AC_CHECK_HEADERS( winsock.h winsock2.h )
fi

872
AC_CHECK_HEADERS( resolv.h, [], [],
873
[$ac_includes_default
874
#include <netinet/in.h>
875
876
877
878
879
880
])

AC_CHECK_HEADERS( netinet/tcp.h, [], [],
[$ac_includes_default
#include <netinet/in.h>
])
881

882
AC_CHECK_HEADERS( sys/ucred.h, [], [],
883
884
885
886
887
888
[$ac_includes_default
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
])

889
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
890
891
dnl Checks for libraries

892
893
AC_CHECK_FUNCS( sigaction sigset )

894
895
dnl HP-UX requires -lV3
dnl this is not needed on newer versions of HP-UX
896
897
898
if test $ac_cv_func_sigaction = no && test $ac_cv_func_sigaction = no ; then
	AC_CHECK_LIB(V3, sigset)
fi
899

900
if test $ol_cv_msvc = yes ; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
901
902
903
   ol_cv_winsock=yes
fi

Howard Chu's avatar
Howard Chu committed
904
905
906
dnl The following is INTENTIONALLY scripted out because shell does not
dnl support variable names with the '@' character, which is what
dnl autoconf would try to generate if one merely used AC_SEARCH_LIBS
907
if test "$ac_cv_header_winsock_h" = yes; then
908
909
910
	AC_CACHE_CHECK([for winsock], [ol_cv_winsock],[
	save_LIBS="$LIBS"
	for curlib in none ws2_32 wsock32; do
911
		if test $curlib != none ; then
912
913
914
	    	LIBS="$save_LIBS -l$curlib"
		fi
		AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <winsock.h>
Kurt Zeilenga's avatar
Kurt Zeilenga committed
915
			]], [[
916
917
918
919
			socket(0,0,0);
			select(0,NULL,NULL,NULL,NULL);
			closesocket(0);
			gethostname(NULL,0);
Kurt Zeilenga's avatar
Kurt Zeilenga committed
920
			]])],[ol_cv_winsock=$curlib],[ol_cv_winsock=no])
Howard Chu's avatar
Howard Chu committed
921

922
923
924
925
		test "$ol_cv_winsock" != no && break
	done
	LIBS="$save_LIBS"
	])
Kurt Zeilenga's avatar
Kurt Zeilenga committed
926

927
928
929
930
931
932
	if test $ol_cv_winsock != no ; then
    	AC_DEFINE(HAVE_WINSOCK, 1, [define if you have winsock])
    	ac_cv_func_socket=yes
    	ac_cv_func_select=yes
    	ac_cv_func_closesocket=yes
    	ac_cv_func_gethostname=yes
933

934
935
936
		if test $ol_cv_winsock != none -a $ol_cv_winsock != yes ; then
        	LIBS="$LIBS -l$ol_cv_winsock"
		fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
937

938
939
940
941
    	if test $ol_cv_winsock = ws2_32 -o $ol_cv_winsock = yes ; then
			AC_DEFINE(HAVE_WINSOCK2, 1, [define if you have winsock2])
    	fi
	fi
942
fi
Howard Chu's avatar
Howard Chu committed
943

Kurt Zeilenga's avatar
Kurt Zeilenga committed
944
945
946
947
948
dnl Find socket()
dnl Likely combinations:
dnl		-lsocket [ -lnsl_s | -lnsl ]
dnl		-linet

Kurt Zeilenga's avatar
Kurt Zeilenga committed
949
AC_CHECK_FUNC(socket, :, [	
Kurt Zeilenga's avatar
Kurt Zeilenga committed
950
951
dnl hopefully we won't include too many libraries
	AC_CHECK_LIB(socket, main)
952
	AC_CHECK_LIB(net, socket)
Kurt Zeilenga's avatar
Kurt Zeilenga committed
953
954
955
956
957
958
	AC_CHECK_LIB(nsl_s, main)
	AC_CHECK_LIB(nsl, main)
	AC_CHECK_LIB(inet, socket)
	AC_CHECK_LIB(gen, main)
])

Kurt Zeilenga's avatar
Kurt Zeilenga committed
959
dnl require select
960
961
AC_CHECK_FUNC(select, :, AC_MSG_ERROR([select() required.]))

Howard Chu's avatar
Howard Chu committed
962
if test "${ac_cv_header_winsock_h}" != yes; then
Kurt Zeilenga's avatar
Kurt Zeilenga committed
963
	dnl Select arg types
Josh Soref's avatar
Josh Soref committed
964
	dnl (if this detection becomes permanent, it and the select() detection
Kurt Zeilenga's avatar
Kurt Zeilenga committed
965
966
	dnl should be done before the yielding select test) 
	AC_FUNC_SELECT_ARGTYPES
Howard Chu's avatar
Howard Chu committed
967
fi
968

969
dnl check to see if system call automatically restart
970
dnl AC_SYS_RESTARTABLE_SYSCALLS
971

Kurt Zeilenga's avatar
Kurt Zeilenga committed
972
dnl ----------------------------------------------------------------
973
AC_CHECK_FUNCS( poll )
Howard Chu's avatar
Howard Chu committed
974
975
976
if test $ac_cv_func_poll = yes; then
AC_CHECK_HEADERS( poll.h sys/poll.h )
fi
Kurt Zeilenga's avatar
Kurt Zeilenga committed
977

978
979
dnl ----------------------------------------------------------------
AC_CHECK_HEADERS( sys/epoll.h )
980
if test "${ac_cv_header_sys_epoll_h}" = yes; then
981
982
	AC_MSG_CHECKING(for epoll system call)
	AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
983
984
985
{
	int epfd = epoll_create(256);
	exit (epfd == -1 ? 1 : 0);
Kurt Zeilenga's avatar
Kurt Zeilenga committed
986
}]])],[AC_MSG_RESULT(yes)
987
988
989
	AC_DEFINE(HAVE_EPOLL,1, [define if your system supports epoll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
fi

990
991
992
993
dnl ----------------------------------------------------------------
AC_CHECK_HEADERS( sys/event.h )
if test "${ac_cv_header_sys_event_h}" = yes; then
AC_MSG_CHECKING(for kqueue system call)
994
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
995
996
997
998
999
1000
1001
{
	int kqfd = kqueue();
	exit (kqfd == -1 ? 1 : 0);
}]])],[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_KQUEUE,1, [define if your system supports kqueue])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
fi

1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
dnl ----------------------------------------------------------------
AC_CHECK_HEADERS( sys/devpoll.h )
dnl "/dev/poll" needs <sys/poll.h> as well...
if test "${ac_cv_header_sys_devpoll_h}" = yes \
		-a "${ac_cv_header_poll_h}" = yes ; \
then
	AC_MSG_CHECKING(for /dev/poll)
	AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
{
	int devpollfd = open("/dev/poll", /* O_RDWR */ 2);
	exit (devpollfd == -1 ? 1 : 0);
}]])],[AC_MSG_RESULT(yes)
	AC_DEFINE(HAVE_DEVPOLL,1, [define if your system supports /dev/poll])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
1015
fi
1016

Kurt Zeilenga's avatar
Kurt Zeilenga committed
1017
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
1018
1019
OL_STRERROR

1020
dnl ----------------------------------------------------------------
Kurt Zeilenga's avatar
Kurt Zeilenga committed
1021
dnl require POSIX regex
1022
1023
1024
1025
1026
1027
1028
AC_CHECK_HEADERS( regex.h, [], [],
[$ac_includes_default
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
])

1029
1030
1031
if test "$ac_cv_header_regex_h" != yes ; then
	AC_MSG_ERROR([POSIX regex.h required.])
fi
Howard Chu's avatar
Howard Chu committed
1032
AC_SEARCH_LIBS(regfree, [regex gnuregex],
Kurt Zeilenga's avatar
Kurt Zeilenga committed
1033
	:, AC_MSG_ERROR([POSIX regex required.]))