openldap.m4 revision 290001
1dnl OpenLDAP Autoconf Macros
2dnl $OpenLDAP: pkg/ldap/build/openldap.m4,v 1.157.2.10 2010/04/13 20:22:21 kurt Exp $
3dnl This work is part of OpenLDAP Software <http://www.openldap.org/>.
4dnl
5dnl Copyright 1998-2010 The OpenLDAP Foundation.
6dnl All rights reserved.
7dnl
8dnl Redistribution and use in source and binary forms, with or without
9dnl modification, are permitted only as authorized by the OpenLDAP
10dnl Public License.
11dnl
12dnl A copy of this license is available in the file LICENSE-OPENLDAP in
13dnl this directory of the distribution or, alternatively, at
14dnl <http://www.OpenLDAP.org/license.html>.
15dnl
16dnl --------------------------------------------------------------------
17dnl Restricted form of AC_ARG_ENABLE that limits user options
18dnl
19dnl $1 = option name
20dnl $2 = help-string
21dnl $3 = default value	(auto).  "--" means do not set it by default
22dnl $4 = allowed values (auto yes no)
23dnl $5 = overridden default
24AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
25	pushdef([ol_DefVal],ifelse($3,,auto,$3))
26	AC_ARG_ENABLE($1,ifelse($4,,[$2],[$2] translit([$4],[ ],[|])) ifelse($3,--,,@<:@ol_DefVal@:>@),[
27	ol_arg=invalid
28	for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
29		if test "$enableval" = "$ol_val" ; then
30			ol_arg="$ol_val"
31		fi
32	done
33	if test "$ol_arg" = "invalid" ; then
34		AC_MSG_ERROR(bad value $enableval for --enable-$1)
35	fi
36	ol_enable_$1="$ol_arg"
37]ifelse($3,--,,[,
38[	ol_enable_$1=ifelse($5,,ol_DefVal,[${]$5[:-]ol_DefVal[}])]]))dnl
39dnl AC_MSG_RESULT([OpenLDAP -enable-$1 $ol_enable_$1])
40	popdef([ol_DefVal])
41# end --enable-$1
42])dnl
43dnl
44dnl --------------------------------------------------------------------
45dnl Restricted form of AC_ARG_WITH that limits user options
46dnl
47dnl $1 = option name
48dnl $2 = help-string
49dnl $3 = default value (no)
50dnl $4 = allowed values (yes or no)
51AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1
52	AC_ARG_WITH($1,[$2 @<:@]ifelse($3,,yes,$3)@:>@,[
53	ol_arg=invalid
54	for ol_val in ifelse($4,,[yes no],[$4]) ; do
55		if test "$withval" = "$ol_val" ; then
56			ol_arg="$ol_val"
57		fi
58	done
59	if test "$ol_arg" = "invalid" ; then
60		AC_MSG_ERROR(bad value $withval for --with-$1)
61	fi
62	ol_with_$1="$ol_arg"
63],
64[	ol_with_$1=ifelse($3,,"no","$3")])dnl
65dnl AC_MSG_RESULT([OpenLDAP --with-$1 $ol_with_$1])
66# end --with-$1
67])dnl
68dnl ====================================================================
69dnl Check for dependency generation flag
70AC_DEFUN([OL_MKDEPEND], [# test for make depend flag
71OL_MKDEP=
72OL_MKDEP_FLAGS=
73if test -z "${MKDEP}"; then
74	OL_MKDEP="${CC-cc}"
75	if test -z "${MKDEP_FLAGS}"; then
76		AC_CACHE_CHECK([for ${OL_MKDEP} depend flag], ol_cv_mkdep, [
77			ol_cv_mkdep=no
78			for flag in "-M" "-xM"; do
79				cat > conftest.c <<EOF
80 noCode;
81EOF
82				if AC_TRY_COMMAND($OL_MKDEP $flag conftest.c) \
83					| grep '^conftest\.'"${ac_objext}" >/dev/null 2>&1
84				then
85					if test ! -f conftest."${ac_object}" ; then
86						ol_cv_mkdep=$flag
87						OL_MKDEP_FLAGS="$flag"
88						break
89					fi
90				fi
91			done
92			rm -f conftest*
93		])
94		test "$ol_cv_mkdep" = no && OL_MKDEP=":"
95	else
96		cc_cv_mkdep=yes
97		OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
98	fi
99else
100	cc_cv_mkdep=yes
101	OL_MKDEP="${MKDEP}"
102	OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
103fi
104AC_SUBST(OL_MKDEP)
105AC_SUBST(OL_MKDEP_FLAGS)
106])
107dnl
108dnl ====================================================================
109dnl Check if system uses EBCDIC instead of ASCII
110AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC
111AC_CACHE_CHECK([for EBCDIC],ol_cv_cpp_ebcdic,[
112	AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
113#if !('M' == 0xd4)
114#include <__ASCII__/generate_error.h>
115#endif
116]])],[ol_cv_cpp_ebcdic=yes],[ol_cv_cpp_ebcdic=no])])
117if test $ol_cv_cpp_ebcdic = yes ; then
118	AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII])
119fi
120])
121dnl
122dnl --------------------------------------------------------------------
123dnl Check for MSVC
124AC_DEFUN([OL_MSVC],
125[AC_REQUIRE_CPP()dnl
126AC_CACHE_CHECK([whether we are using MS Visual C++], ol_cv_msvc,
127[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
128#ifndef _MSC_VER
129#include <__FOO__/generate_error.h>
130#endif
131]])],[ol_cv_msvc=yes],[ol_cv_msvc=no])])])
132
133dnl --------------------------------------------------------------------
134dnl OpenLDAP version of STDC header check w/ EBCDIC support
135AC_DEFUN([OL_HEADER_STDC],
136[AC_REQUIRE_CPP()dnl
137AC_REQUIRE([OL_CPP_EBCDIC])dnl
138AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
139[AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
140#include <stdarg.h>
141#include <string.h>
142#include <float.h>]])],[ol_cv_header_stdc=yes],[ol_cv_header_stdc=no])
143
144if test $ol_cv_header_stdc = yes; then
145  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
146AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no)
147fi
148
149if test $ol_cv_header_stdc = yes; then
150  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
151AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no)
152fi
153
154if test $ol_cv_header_stdc = yes; then
155  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
156AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h>
157#ifndef HAVE_EBCDIC
158#	define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
159#	define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
160#else
161#	define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
162		|| ('j' <= (c) && (c) <= 'r') \
163		|| ('s' <= (c) && (c) <= 'z'))
164#	define TOUPPER(c)	(ISLOWER(c) ? ((c) | 0x40) : (c))
165#endif
166#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
167int main () { int i; for (i = 0; i < 256; i++)
168if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
169exit (0); }
170]])],[],[ol_cv_header_stdc=no],[:])
171fi])
172if test $ol_cv_header_stdc = yes; then
173  AC_DEFINE([STDC_HEADERS], [1], [is standard C provided?])
174fi
175ac_cv_header_stdc=disable
176])
177dnl
178dnl ====================================================================
179dnl DNS resolver macros
180AC_DEFUN([OL_RESOLVER_TRY],
181[if test $ol_cv_lib_resolver = no ; then
182	AC_CACHE_CHECK([for resolver link (]ifelse($2,,default,$2)[)],[$1],
183[
184	ol_RESOLVER_LIB=ifelse($2,,,$2)
185	ol_LIBS=$LIBS
186	LIBS="$ol_RESOLVER_LIB $LIBS"
187
188	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
189#ifdef HAVE_SYS_TYPES_H
190#	include <sys/types.h>
191#endif
192#include <netinet/in.h>
193#ifdef HAVE_ARPA_NAMESER_H
194#	include <arpa/nameser.h>
195#endif
196#ifdef HAVE_RESOLV_H
197#	include <resolv.h>
198#endif
199]], [[{
200	int len, status;
201	char *request = NULL;
202	unsigned char reply[64*1024];
203	unsigned char host[64*1024];
204	unsigned char *p;
205
206#ifdef NS_HFIXEDSZ
207	/* Bind 8/9 interface */
208	len = res_query(request, ns_c_in, ns_t_srv, reply, sizeof(reply));
209#else
210	/* Bind 4 interface */
211# ifndef T_SRV
212#  define T_SRV 33
213# endif
214	len = res_query(request, C_IN, T_SRV, reply, sizeof(reply));
215#endif
216	p = reply;
217#ifdef NS_HFIXEDSZ
218	/* Bind 8/9 interface */
219	p += NS_HFIXEDSZ;
220#elif defined(HFIXEDSZ)
221	/* Bind 4 interface w/ HFIXEDSZ */
222	p += HFIXEDSZ;
223#else
224	/* Bind 4 interface w/o HFIXEDSZ */
225	p += sizeof(HEADER);
226#endif
227	status = dn_expand( reply, reply+len, p, host, sizeof(host));
228}]])],[$1=yes],[$1=no])
229
230	LIBS="$ol_LIBS"
231])
232
233	if test $$1 = yes ; then
234		ol_cv_lib_resolver=ifelse($2,,yes,$2)
235	fi
236fi
237])
238dnl --------------------------------------------------------------------
239dnl Try to locate appropriate library
240AC_DEFUN([OL_RESOLVER_LINK],
241[ol_cv_lib_resolver=no
242OL_RESOLVER_TRY(ol_cv_resolver_none)
243OL_RESOLVER_TRY(ol_cv_resolver_resolv,[-lresolv])
244OL_RESOLVER_TRY(ol_cv_resolver_bind,[-lbind])
245])
246dnl
247dnl ====================================================================
248dnl International Components for Unicode (ICU)
249AC_DEFUN([OL_ICU],
250[ol_icu=no
251AC_CHECK_HEADERS( unicode/utypes.h )
252if test $ac_cv_header_unicode_utypes_h = yes ; then
253	dnl OL_ICULIBS="-licui18n -licuuc -licudata"
254	OL_ICULIBS="-licuuc -licudata"
255
256	AC_CACHE_CHECK([for ICU libraries], [ol_cv_lib_icu], [
257		ol_LIBS="$LIBS"
258		LIBS="$OL_ICULIBS $LIBS"
259		AC_LINK_IFELSE([AC_LANG_PROGRAM([[
260#include <unicode/utypes.h>
261]], [[
262(void) u_errorName(0);
263]])],[ol_cv_lib_icu=yes],[ol_cv_lib_icu=no])
264		LIBS="$ol_LIBS"
265])
266
267	if test $ol_cv_lib_icu != no ; then
268		ol_icu="$OL_ICULIBS"
269		AC_DEFINE([HAVE_ICU], [1], [define if you actually have ICU])
270	fi
271fi
272])
273dnl
274dnl ====================================================================
275dnl Berkeley DB macros
276dnl
277dnl --------------------------------------------------------------------
278dnl Try to link
279AC_DEFUN([OL_BERKELEY_DB_TRY],
280[if test $ol_cv_lib_db = no ; then
281	AC_CACHE_CHECK([for Berkeley DB link (]ifelse($2,,default,$2)[)],[$1],
282[
283	ol_DB_LIB=ifelse($2,,,$2)
284	ol_LIBS=$LIBS
285	LIBS="$ol_DB_LIB $LTHREAD_LIBS $LIBS"
286
287	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
288#ifdef HAVE_DB_185_H
289# include <db_185.h>
290#else
291# include <db.h>
292#endif
293
294#ifndef DB_VERSION_MAJOR
295# define DB_VERSION_MAJOR 1
296#endif
297
298#ifndef NULL
299#define NULL ((void*)0)
300#endif
301]], [[
302#if DB_VERSION_MAJOR > 2
303	db_env_create( NULL, 0 );
304#elif DB_VERSION_MAJOR > 1
305	db_appexit( NULL );
306#else
307	(void) dbopen( NULL, 0, 0, 0, NULL);
308#endif
309]])],[$1=yes],[$1=no])
310
311	LIBS="$ol_LIBS"
312])
313
314	if test $$1 = yes ; then
315		ol_cv_lib_db=ifelse($2,,yes,$2)
316	fi
317fi
318])
319dnl
320dnl --------------------------------------------------------------------
321dnl Get major and minor version from <db.h>
322AC_DEFUN([OL_BDB_HEADER_VERSION],
323[AC_CACHE_CHECK([for Berkeley DB major version in db.h], [ol_cv_bdb_major],[
324	AC_LANG_CONFTEST([
325#include <db.h>
326#ifndef DB_VERSION_MAJOR
327#	define DB_VERSION_MAJOR 1
328#endif
329__db_version DB_VERSION_MAJOR
330])
331	set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none
332	ol_cv_bdb_major=${3}
333])
334case $ol_cv_bdb_major in [[1-9]]*) : ;; *)
335	AC_MSG_ERROR([Unknown Berkeley DB major version in db.h]) ;;
336esac
337
338dnl Determine minor version
339AC_CACHE_CHECK([for Berkeley DB minor version in db.h], [ol_cv_bdb_minor],[
340	AC_LANG_CONFTEST([
341#include <db.h>
342#ifndef DB_VERSION_MINOR
343#	define DB_VERSION_MINOR 0
344#endif
345__db_version DB_VERSION_MINOR
346])
347	set X `eval "$ac_cpp conftest.$ac_ext" | $EGREP __db_version` none none
348	ol_cv_bdb_minor=${3}
349])
350case $ol_cv_bdb_minor in [[0-9]]*) : ;; *)
351	AC_MSG_ERROR([Unknown Berkeley DB minor version in db.h]) ;;
352esac
353])
354dnl
355dnl --------------------------------------------------------------------
356dnl Try to locate appropriate library
357AC_DEFUN([OL_BERKELEY_DB_LINK],
358[ol_cv_lib_db=no
359
360if test $ol_cv_bdb_major = 4 ; then
361	OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_m,[-ldb-4.$ol_cv_bdb_minor])
362	OL_BERKELEY_DB_TRY(ol_cv_db_db4m,[-ldb4$ol_cv_bdb_minor])
363	OL_BERKELEY_DB_TRY(ol_cv_db_db_4m,[-ldb-4$ol_cv_bdb_minor])
364	OL_BERKELEY_DB_TRY(ol_cv_db_db_4_m,[-ldb-4-$ol_cv_bdb_minor])
365	OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4])
366	OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
367	OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
368fi
369OL_BERKELEY_DB_TRY(ol_cv_db_none)
370])
371dnl
372dnl --------------------------------------------------------------------
373dnl Check if Berkeley DB version
374AC_DEFUN([OL_BERKELEY_DB_VERSION],
375[AC_CACHE_CHECK([for Berkeley DB library and header version match], [ol_cv_berkeley_db_version], [
376	ol_LIBS="$LIBS"
377	LIBS="$LTHREAD_LIBS $LIBS"
378	if test $ol_cv_lib_db != yes ; then
379		LIBS="$ol_cv_lib_db $LIBS"
380	fi
381
382	AC_RUN_IFELSE([AC_LANG_SOURCE([[
383#ifdef HAVE_DB_185_H
384	choke me;
385#else
386#include <db.h>
387#endif
388#ifndef DB_VERSION_MAJOR
389# define DB_VERSION_MAJOR 1
390#endif
391#ifndef NULL
392#define NULL ((void *)0)
393#endif
394main()
395{
396#if DB_VERSION_MAJOR > 1
397	char *version;
398	int major, minor, patch;
399
400	version = db_version( &major, &minor, &patch );
401
402	if( major != DB_VERSION_MAJOR ||
403		minor != DB_VERSION_MINOR ||
404		patch != DB_VERSION_PATCH )
405	{
406		printf("Berkeley DB version mismatch\n"
407			"\theader: %s\n\tlibrary: %s\n",
408			DB_VERSION_STRING, version);
409		return 1;
410	}
411#endif
412
413	return 0;
414}]])],[ol_cv_berkeley_db_version=yes],[ol_cv_berkeley_db_version=no],[ol_cv_berkeley_db_version=cross])
415
416	LIBS="$ol_LIBS"
417])
418
419	if test $ol_cv_berkeley_db_version = no ; then
420		AC_MSG_ERROR([Berkeley DB version mismatch])
421	fi
422])dnl
423dnl
424dnl --------------------------------------------------------------------
425dnl Check if Berkeley DB supports DB_THREAD
426AC_DEFUN([OL_BERKELEY_DB_THREAD],
427[AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [
428	ol_LIBS="$LIBS"
429	LIBS="$LTHREAD_LIBS $LIBS"
430	if test $ol_cv_lib_db != yes ; then
431		LIBS="$ol_cv_lib_db $LIBS"
432	fi
433
434	AC_RUN_IFELSE([AC_LANG_SOURCE([[
435#ifdef HAVE_DB_185_H
436	choke me;
437#else
438#include <db.h>
439#endif
440#ifndef NULL
441#define NULL ((void *)0)
442#endif
443main()
444{
445	int rc;
446	u_int32_t flags = DB_CREATE |
447#ifdef DB_PRIVATE
448		DB_PRIVATE |
449#endif
450		DB_THREAD;
451
452#if DB_VERSION_MAJOR > 2
453	DB_ENV *env = NULL;
454
455	rc = db_env_create( &env, 0 );
456
457	flags |= DB_INIT_MPOOL;
458#ifdef DB_MPOOL_PRIVATE
459	flags |= DB_MPOOL_PRIVATE;
460#endif
461
462	if( rc ) {
463		printf("BerkeleyDB: %s\n", db_strerror(rc) );
464		return rc;
465	}
466
467#if (DB_VERSION_MAJOR > 3) || (DB_VERSION_MINOR >= 1)
468	rc = (env->open)( env, NULL, flags, 0 );
469#else
470	rc = (env->open)( env, NULL, NULL, flags, 0 );
471#endif
472
473	if ( rc == 0 ) {
474		rc = env->close( env, 0 );
475	}
476
477	if( rc ) {
478		printf("BerkeleyDB: %s\n", db_strerror(rc) );
479		return rc;
480	}
481
482#else
483	DB_ENV env;
484	memset( &env, '\0', sizeof(env) );
485
486	rc = db_appinit( NULL, NULL, &env, flags );
487
488	if( rc == 0 ) {
489		db_appexit( &env );
490	}
491
492	unlink("__db_mpool.share");
493	unlink("__db_lock.share");
494#endif
495
496	return rc;
497}]])],[ol_cv_berkeley_db_thread=yes],[ol_cv_berkeley_db_thread=no],[ol_cv_berkeley_db_thread=cross])
498
499	LIBS="$ol_LIBS"
500])
501
502	if test $ol_cv_berkeley_db_thread != no ; then
503		AC_DEFINE([HAVE_BERKELEY_DB_THREAD], [1],
504			[define if Berkeley DB has DB_THREAD support])
505	fi
506])dnl
507dnl
508dnl --------------------------------------------------------------------
509dnl Find any DB
510AC_DEFUN([OL_BERKELEY_DB],
511[ol_cv_berkeley_db=no
512AC_CHECK_HEADERS(db.h)
513if test $ac_cv_header_db_h = yes; then
514	OL_BDB_HEADER_VERSION
515	OL_BDB_COMPAT
516
517	if test $ol_cv_bdb_compat != yes ; then
518		AC_MSG_ERROR([BerkeleyDB version incompatible with BDB/HDB backends])
519	fi
520
521	OL_BERKELEY_DB_LINK
522	if test "$ol_cv_lib_db" != no ; then
523		ol_cv_berkeley_db=yes
524		OL_BERKELEY_DB_VERSION
525		OL_BERKELEY_DB_THREAD
526	fi
527fi
528])
529dnl --------------------------------------------------------------------
530dnl Check for version compatility with back-bdb
531AC_DEFUN([OL_BDB_COMPAT],
532[AC_CACHE_CHECK([if Berkeley DB version supported by BDB/HDB backends], [ol_cv_bdb_compat],[
533	AC_EGREP_CPP(__db_version_compat,[
534#include <db.h>
535
536 /* this check could be improved */
537#ifndef DB_VERSION_MAJOR
538#	define DB_VERSION_MAJOR 1
539#endif
540#ifndef DB_VERSION_MINOR
541#	define DB_VERSION_MINOR 0
542#endif
543
544#define DB_VERSION_MM	((DB_VERSION_MAJOR<<8)|DB_VERSION_MINOR)
545
546/* require 4.4 or later */
547#if DB_VERSION_MM >= 0x0404
548	__db_version_compat
549#endif
550	], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
551])
552
553dnl
554dnl ====================================================================
555dnl Check POSIX Thread version 
556dnl
557dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 8, 10, depending on the
558dnl	version of the POSIX.4a Draft that is implemented.
559dnl	10 == POSIX.4a Final == POSIX.1c-1996 for our purposes.
560dnl	Existence of pthread.h should be tested separately.
561dnl
562dnl tests:
563dnl	pthread_detach() was dropped in Draft 8, it is present
564dnl		in every other version
565dnl	PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called
566dnl		PTHREAD_CREATE_JOINABLE after that
567dnl	pthread_attr_create was renamed to pthread_attr_init in Draft 6.
568dnl		Draft 6-10 has _init, Draft 4-5 has _create.
569dnl	pthread_attr_default was dropped in Draft 6, only 4 and 5 have it
570dnl	PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not
571dnl		interesting to us because we don't try to statically
572dnl		initialize mutexes. 5-10 has it.
573dnl
574dnl Draft 9 and 10 are equivalent for our purposes.
575dnl
576AC_DEFUN([OL_POSIX_THREAD_VERSION],
577[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
578	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
579#		include <pthread.h>
580	]], [[
581		int i = PTHREAD_CREATE_JOINABLE;
582	]])],[
583	AC_EGREP_HEADER(pthread_detach,pthread.h,
584	ol_cv_pthread_version=10, ol_cv_pthread_version=8)],[
585	AC_EGREP_CPP(draft7,[
586#		include <pthread.h>
587#		ifdef PTHREAD_CREATE_UNDETACHED
588		draft7
589#		endif
590	], ol_cv_pthread_version=7, [
591	AC_EGREP_HEADER(pthread_attr_init,pthread.h,
592	ol_cv_pthread_version=6, [
593	AC_EGREP_CPP(draft5,[
594#		include <pthread.h>
595#ifdef		PTHREAD_MUTEX_INITIALIZER
596		draft5
597#endif
598	], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ]) ]) ])
599])
600])dnl
601dnl
602dnl --------------------------------------------------------------------
603AC_DEFUN([OL_PTHREAD_TEST_INCLUDES], [[
604/* pthread test headers */
605#include <pthread.h>
606#if HAVE_PTHREADS < 7
607#include <errno.h>
608#endif
609#ifndef NULL
610#define NULL (void*)0
611#endif
612
613static void *task(p)
614	void *p;
615{
616	return (void *) (p == NULL);
617}
618]])
619AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
620	/* pthread test function */
621#ifndef PTHREAD_CREATE_DETACHED
622#define	PTHREAD_CREATE_DETACHED	1
623#endif
624	pthread_t t;
625	int status;
626	int detach = PTHREAD_CREATE_DETACHED;
627
628#if HAVE_PTHREADS > 4
629	/* Final pthreads */
630	pthread_attr_t attr;
631
632	status = pthread_attr_init(&attr);
633	if( status ) return status;
634
635#if HAVE_PTHREADS < 7
636	status = pthread_attr_setdetachstate(&attr, &detach);
637	if( status < 0 ) status = errno;
638#else
639	status = pthread_attr_setdetachstate(&attr, detach);
640#endif
641	if( status ) return status;
642	status = pthread_create( &t, &attr, task, NULL );
643#if HAVE_PTHREADS < 7
644	if( status < 0 ) status = errno;
645#endif
646	if( status ) return status;
647#else
648	/* Draft 4 pthreads */
649	status = pthread_create( &t, pthread_attr_default, task, NULL );
650	if( status ) return errno;
651
652	/* give thread a chance to complete */
653	/* it should remain joinable and hence detachable */
654	sleep( 1 );
655
656	status = pthread_detach( &t );
657	if( status ) return errno;
658#endif
659
660#ifdef HAVE_LINUX_THREADS
661	pthread_kill_other_threads_np();
662#endif
663
664	return 0;
665]])
666
667AC_DEFUN([OL_PTHREAD_TEST_PROGRAM], [
668AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
669
670int main(argc, argv)
671	int argc;
672	char **argv;
673{
674OL_PTHREAD_TEST_FUNCTION
675}
676])])
677dnl --------------------------------------------------------------------
678AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
679if test "$ol_link_threads" = no ; then
680	# try $1
681	AC_CACHE_CHECK([for pthread link with $1], [$2], [
682		# save the flags
683		ol_LIBS="$LIBS"
684		LIBS="$1 $LIBS"
685
686		AC_RUN_IFELSE([OL_PTHREAD_TEST_PROGRAM],
687			[$2=yes],
688			[$2=no],
689			[AC_LINK_IFELSE([AC_LANG_PROGRAM(OL_PTHREAD_TEST_INCLUDES,
690				OL_PTHREAD_TEST_FUNCTION)],
691				[$2=yes], [$2=no])])
692
693		# restore the LIBS
694		LIBS="$ol_LIBS"
695	])
696
697	if test $$2 = yes ; then
698		ol_link_pthreads="$1"
699		ol_link_threads=posix
700	fi
701fi
702])
703dnl
704dnl ====================================================================
705dnl Check GNU Pth pthread Header
706dnl
707dnl defines ol_cv_header linux_threads to 'yes' or 'no'
708dnl		'no' implies pthreads.h is not LinuxThreads or pthreads.h
709dnl		doesn't exists.  Existance of pthread.h should separately
710dnl		checked.
711dnl 
712AC_DEFUN([OL_HEADER_GNU_PTH_PTHREAD_H], [
713	AC_CACHE_CHECK([for GNU Pth pthread.h],
714		[ol_cv_header_gnu_pth_pthread_h],
715		[AC_EGREP_CPP(__gnu_pth__,
716			[#include <pthread.h>
717#ifdef _POSIX_THREAD_IS_GNU_PTH
718	__gnu_pth__;
719#endif
720],
721			[ol_cv_header_gnu_pth_pthread_h=yes],
722			[ol_cv_header_gnu_pth_pthread_h=no])
723		])
724])dnl
725dnl ====================================================================
726dnl Check for NT Threads
727AC_DEFUN([OL_NT_THREADS], [
728	AC_CHECK_FUNC(_beginthread)
729
730	if test $ac_cv_func__beginthread = yes ; then
731		AC_DEFINE([HAVE_NT_THREADS], [1], [if you have NT Threads])
732		ol_cv_nt_threads=yes
733	fi
734])
735dnl ====================================================================
736dnl Check LinuxThreads Header
737dnl
738dnl defines ol_cv_header linux_threads to 'yes' or 'no'
739dnl		'no' implies pthreads.h is not LinuxThreads or pthreads.h
740dnl		doesn't exists.  Existance of pthread.h should separately
741dnl		checked.
742dnl 
743AC_DEFUN([OL_HEADER_LINUX_THREADS], [
744	AC_CACHE_CHECK([for LinuxThreads pthread.h],
745		[ol_cv_header_linux_threads],
746		[AC_EGREP_CPP(pthread_kill_other_threads_np,
747			[#include <pthread.h>],
748			[ol_cv_header_linux_threads=yes],
749			[ol_cv_header_linux_threads=no])
750		])
751	if test $ol_cv_header_linux_threads = yes; then
752		AC_DEFINE([HAVE_LINUX_THREADS], [1], [if you have LinuxThreads])
753	fi
754])dnl
755dnl --------------------------------------------------------------------
756dnl	Check LinuxThreads Implementation
757dnl
758dnl	defines ol_cv_sys_linux_threads to 'yes' or 'no'
759dnl	'no' implies pthreads implementation is not LinuxThreads.
760dnl 
761AC_DEFUN([OL_SYS_LINUX_THREADS], [
762	AC_CHECK_FUNCS(pthread_kill_other_threads_np)
763	AC_CACHE_CHECK([for LinuxThreads implementation],
764		[ol_cv_sys_linux_threads],
765		[ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np])
766])dnl
767dnl
768dnl --------------------------------------------------------------------
769dnl Check LinuxThreads consistency
770AC_DEFUN([OL_LINUX_THREADS], [
771	AC_REQUIRE([OL_HEADER_LINUX_THREADS])
772	AC_REQUIRE([OL_SYS_LINUX_THREADS])
773	AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [
774		if test $ol_cv_header_linux_threads = yes &&
775		   test $ol_cv_sys_linux_threads = yes; then
776			ol_cv_linux_threads=yes
777		elif test $ol_cv_header_linux_threads = no &&
778		     test $ol_cv_sys_linux_threads = no; then
779			ol_cv_linux_threads=no
780		else
781			ol_cv_linux_threads=error
782		fi
783	])
784])dnl
785dnl
786dnl ====================================================================
787dnl Check for POSIX Regex
788AC_DEFUN([OL_POSIX_REGEX], [
789AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[
790	AC_RUN_IFELSE([AC_LANG_SOURCE([[
791#include <sys/types.h>
792#include <regex.h>
793static char *pattern, *string;
794main()
795{
796	int rc;
797	regex_t re;
798
799	pattern = "^A";
800
801	if(regcomp(&re, pattern, 0)) {
802		return -1;
803	}
804	
805	string = "ALL MATCH";
806	
807	rc = regexec(&re, string, 0, (void*)0, 0);
808
809	regfree(&re);
810
811	return rc;
812}]])],[ol_cv_c_posix_regex=yes],[ol_cv_c_posix_regex=no],[ol_cv_c_posix_regex=cross])])
813])
814dnl
815dnl ====================================================================
816dnl Check if toupper() requires islower() to be called first
817AC_DEFUN([OL_C_UPPER_LOWER],
818[AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[
819	AC_RUN_IFELSE([AC_LANG_SOURCE([[
820#include <ctype.h>
821main()
822{
823	if ('C' == toupper('C'))
824		exit(0);
825	else
826		exit(1);
827}]])],[ol_cv_c_upper_lower=no],[ol_cv_c_upper_lower=yes],[ol_cv_c_upper_lower=safe])])
828if test $ol_cv_c_upper_lower != no ; then
829	AC_DEFINE([C_UPPER_LOWER], [1], [define if toupper() requires islower()])
830fi
831])
832dnl
833dnl ====================================================================
834dnl Error string checks
835dnl
836dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
837dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
838dnl Reported by Keith Bostic.
839AC_DEFUN([OL_SYS_ERRLIST],
840[AC_CACHE_CHECK([declaration of sys_errlist],ol_cv_dcl_sys_errlist,[
841	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
842#include <stdio.h>
843#include <sys/types.h>
844#include <errno.h>
845#ifdef _WIN32
846#include <stdlib.h>
847#endif ]], [[char *c = (char *) *sys_errlist]])],[ol_cv_dcl_sys_errlist=yes
848	ol_cv_have_sys_errlist=yes],[ol_cv_dcl_sys_errlist=no])])
849#
850# It's possible (for near-UNIX clones) that sys_errlist doesn't exist
851if test $ol_cv_dcl_sys_errlist = no ; then
852	AC_DEFINE([DECL_SYS_ERRLIST], [1],
853		[define if sys_errlist is not declared in stdio.h or errno.h])
854
855	AC_CACHE_CHECK([existence of sys_errlist],ol_cv_have_sys_errlist,[
856		AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[char *c = (char *) *sys_errlist]])],[ol_cv_have_sys_errlist=yes],[ol_cv_have_sys_errlist=no])])
857fi
858if test $ol_cv_have_sys_errlist = yes ; then
859	AC_DEFINE([HAVE_SYS_ERRLIST], [1],
860		[define if you actually have sys_errlist in your libs])
861fi
862])dnl
863AC_DEFUN([OL_NONPOSIX_STRERROR_R],
864[AC_CACHE_CHECK([non-posix strerror_r],ol_cv_nonposix_strerror_r,[
865	AC_EGREP_CPP(strerror_r,[#include <string.h>],
866		ol_decl_strerror_r=yes, ol_decl_strerror_r=no)dnl
867
868	if test $ol_decl_strerror_r = yes ; then
869		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]], [[   /* from autoconf 2.59 */
870				char buf[100];
871				char x = *strerror_r (0, buf, sizeof buf);
872				char *p = strerror_r (0, buf, sizeof buf);
873			]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror_r=no])
874	else
875		AC_RUN_IFELSE([AC_LANG_SOURCE([[
876			main() {
877				char buf[100];
878				buf[0] = 0;
879				strerror_r( 1, buf, sizeof buf );
880				exit( buf[0] == 0 );
881			}
882			]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror=no],[ol_cv_nonposix_strerror=no])
883	fi
884	])
885if test $ol_cv_nonposix_strerror_r = yes ; then
886	AC_DEFINE([HAVE_NONPOSIX_STRERROR_R], [1],
887		[define if strerror_r returns char* instead of int])
888fi
889])dnl
890dnl
891AC_DEFUN([OL_STRERROR],
892[OL_SYS_ERRLIST dnl TEMPORARY
893AC_CHECK_FUNCS(strerror strerror_r)
894ol_cv_func_strerror_r=no
895if test "${ac_cv_func_strerror_r}" = yes ; then
896	OL_NONPOSIX_STRERROR_R
897elif test "${ac_cv_func_strerror}" = no ; then
898	OL_SYS_ERRLIST
899fi
900])dnl
901dnl ====================================================================
902dnl Early MIPS compilers (used in Ultrix 4.2) don't like
903dnl "int x; int *volatile a = &x; *a = 0;"
904dnl 	-- borrowed from PDKSH
905AC_DEFUN([OL_C_VOLATILE],
906 [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
907    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int x, y, z;]], [[volatile int a; int * volatile b = x ? &y : &z;
908      /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
909      *b = 0;]])],[ol_cv_c_volatile=yes],[ol_cv_c_volatile=no])])
910  if test $ol_cv_c_volatile = yes; then
911    : 
912  else
913    AC_DEFINE([volatile], [], [define as empty if volatile is not supported])
914  fi
915 ])dnl
916dnl
917dnl ====================================================================
918dnl Look for fetch(3)
919AC_DEFUN([OL_LIB_FETCH],
920[ol_LIBS=$LIBS
921LIBS="-lfetch -lcom_err $LIBS"
922AC_CACHE_CHECK([fetch(3) library],ol_cv_lib_fetch,[
923	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
924#ifdef HAVE_SYS_PARAM_H
925#include <sys/param.h>
926#endif
927#include <stdio.h>
928#include <fetch.h>]], [[struct url *u = fetchParseURL("file:///"); ]])],[ol_cv_lib_fetch=yes],[ol_cv_lib_fetch=no])])
929LIBS=$ol_LIBS
930if test $ol_cv_lib_fetch != no ; then
931	ol_link_fetch="-lfetch -lcom_err"
932	AC_DEFINE([HAVE_FETCH], [1],
933		[define if you actually have FreeBSD fetch(3)])
934fi
935])dnl
936dnl
937dnl ====================================================================
938dnl Define inet_aton is available
939AC_DEFUN([OL_FUNC_INET_ATON],
940 [AC_CACHE_CHECK([for inet_aton()], ol_cv_func_inet_aton,
941    [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
942#ifdef HAVE_SYS_TYPES_H
943#	include <sys/types.h>
944#endif
945#ifdef HAVE_SYS_SOCKET_H
946#	include <sys/socket.h>
947#	ifdef HAVE_SYS_SELECT_H
948#		include <sys/select.h>
949#	endif
950#	include <netinet/in.h>
951#	ifdef HAVE_ARPA_INET_H
952#		include <arpa/inet.h>
953#	endif
954#endif
955]], [[struct in_addr in;
956int rc = inet_aton( "255.255.255.255", &in );]])],[ol_cv_func_inet_aton=yes],[ol_cv_func_inet_aton=no])])
957  if test $ol_cv_func_inet_aton != no; then
958    AC_DEFINE(HAVE_INET_ATON, 1,
959		[define to you inet_aton(3) is available])
960  fi
961 ])dnl
962dnl
963dnl ====================================================================
964dnl check no of arguments for ctime_r
965AC_DEFUN([OL_FUNC_CTIME_R_NARGS],
966 [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
967   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[time_t ti; char *buffer; ctime_r(&ti,buffer,32);]])],[ol_cv_func_ctime_r_nargs3=yes],[ol_cv_func_ctime_r_nargs3=no])
968
969	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[time_t ti; char *buffer; ctime_r(&ti,buffer);]])],[ol_cv_func_ctime_r_nargs2=yes],[ol_cv_func_ctime_r_nargs2=no])
970
971	if test $ol_cv_func_ctime_r_nargs3 = yes &&
972	   test $ol_cv_func_ctime_r_nargs2 = no ; then
973
974		ol_cv_func_ctime_r_nargs=3
975
976	elif test $ol_cv_func_ctime_r_nargs3 = no &&
977	     test $ol_cv_func_ctime_r_nargs2 = yes ; then
978
979		ol_cv_func_ctime_r_nargs=2
980
981	else
982		ol_cv_func_ctime_r_nargs=0
983	fi
984  ])
985
986  if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
987 	AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
988		[set to the number of arguments ctime_r() expects])
989  fi
990])dnl
991dnl
992dnl --------------------------------------------------------------------
993dnl check return type of ctime_r()
994AC_DEFUN([OL_FUNC_CTIME_R_TYPE],
995 [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
996   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[extern int (ctime_r)();]])],[ol_cv_func_ctime_r_type="int"],[ol_cv_func_ctime_r_type="charp"])
997	])
998  if test $ol_cv_func_ctime_r_type = "int" ; then
999	AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
1000  fi
1001])dnl
1002dnl ====================================================================
1003dnl check no of arguments for gethostbyname_r
1004AC_DEFUN([OL_FUNC_GETHOSTBYNAME_R_NARGS],
1005 [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
1006	ol_cv_func_gethostbyname_r_nargs,
1007	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1008#include <sys/socket.h>
1009#include <netinet/in.h>
1010#include <netdb.h>
1011#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent; char buffer[BUFSIZE];
1012		int bufsize=BUFSIZE;int h_errno;
1013		(void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
1014			buffer, bufsize, &h_errno);]])],[ol_cv_func_gethostbyname_r_nargs5=yes],[ol_cv_func_gethostbyname_r_nargs5=no])
1015
1016	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1017#include <sys/socket.h>
1018#include <netinet/in.h>
1019#include <netdb.h>
1020#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent;struct hostent *rhent;
1021		char buffer[BUFSIZE];
1022		int bufsize=BUFSIZE;int h_errno;
1023		(void)gethostbyname_r("localhost", &hent, buffer, bufsize,
1024			&rhent, &h_errno);]])],[ol_cv_func_gethostbyname_r_nargs6=yes],[ol_cv_func_gethostbyname_r_nargs6=no])
1025
1026	if test $ol_cv_func_gethostbyname_r_nargs5 = yes &&
1027	   test $ol_cv_func_gethostbyname_r_nargs6 = no ; then
1028
1029		ol_cv_func_gethostbyname_r_nargs=5
1030
1031	elif test $ol_cv_func_gethostbyname_r_nargs5 = no &&
1032	     test $ol_cv_func_gethostbyname_r_nargs6 = yes ; then
1033
1034		ol_cv_func_gethostbyname_r_nargs=6
1035
1036	else
1037		ol_cv_func_gethostbyname_r_nargs=0
1038	fi
1039  ])
1040  if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
1041	AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
1042		$ol_cv_func_gethostbyname_r_nargs,
1043		[set to the number of arguments gethostbyname_r() expects])
1044  fi
1045])dnl
1046dnl
1047dnl check no of arguments for gethostbyaddr_r
1048AC_DEFUN([OL_FUNC_GETHOSTBYADDR_R_NARGS],
1049 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
1050	[ol_cv_func_gethostbyaddr_r_nargs],
1051	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1052#include <sys/socket.h>
1053#include <netinet/in.h>
1054#include <netdb.h>
1055#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent; char buffer[BUFSIZE]; 
1056	    struct in_addr add;
1057	    size_t alen=sizeof(struct in_addr);
1058	    int bufsize=BUFSIZE;int h_errno;
1059		(void)gethostbyaddr_r( (void *)&(add.s_addr),
1060			alen, AF_INET, &hent, buffer, bufsize, &h_errno);]])],[ol_cv_func_gethostbyaddr_r_nargs7=yes],[ol_cv_func_gethostbyaddr_r_nargs7=no])
1061
1062	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1063#include <sys/socket.h>
1064#include <netinet/in.h>
1065#include <netdb.h>
1066#define BUFSIZE (sizeof(struct hostent)+10)]], [[struct hostent hent;
1067		struct hostent *rhent; char buffer[BUFSIZE]; 
1068		struct in_addr add;
1069		size_t alen=sizeof(struct in_addr);
1070		int bufsize=BUFSIZE;int h_errno;
1071		(void)gethostbyaddr_r( (void *)&(add.s_addr),
1072			alen, AF_INET, &hent, buffer, bufsize, 
1073			&rhent, &h_errno);]])],[ol_cv_func_gethostbyaddr_r_nargs8=yes],[ol_cv_func_gethostbyaddr_r_nargs8=no])
1074
1075	if test $ol_cv_func_gethostbyaddr_r_nargs7 = yes &&
1076	   test $ol_cv_func_gethostbyaddr_r_nargs8 = no ; then
1077
1078		ol_cv_func_gethostbyaddr_r_nargs=7
1079
1080	elif test $ol_cv_func_gethostbyaddr_r_nargs7 = no &&
1081	     test $ol_cv_func_gethostbyaddr_r_nargs8 = yes ; then
1082
1083		ol_cv_func_gethostbyaddr_r_nargs=8
1084
1085	else
1086		ol_cv_func_gethostbyaddr_r_nargs=0
1087	fi
1088  ])
1089  if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
1090    AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
1091		$ol_cv_func_gethostbyaddr_r_nargs,
1092		[set to the number of arguments gethostbyaddr_r() expects])
1093  fi
1094])dnl
1095dnl
1096dnl --------------------------------------------------------------------
1097dnl Check for Cyrus SASL version compatility
1098AC_DEFUN([OL_SASL_COMPAT],
1099[AC_CACHE_CHECK([Cyrus SASL library version], [ol_cv_sasl_compat],[
1100	AC_EGREP_CPP(__sasl_compat,[
1101#ifdef HAVE_SASL_SASL_H
1102#include <sasl/sasl.h>
1103#else
1104#include <sasl.h>
1105#endif
1106
1107/* Require 2.1.15+ */
1108#if SASL_VERSION_MAJOR == 2  && SASL_VERSION_MINOR > 1
1109	char *__sasl_compat = "2.2+ or better okay (we guess)";
1110#elif SASL_VERSION_MAJOR == 2  && SASL_VERSION_MINOR == 1 \
1111	&& SASL_VERSION_STEP >=15
1112	char *__sasl_compat = "2.1.15+ or better okay";
1113#endif
1114	],	[ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])])
1115])
1116dnl ====================================================================
1117dnl check for SSL compatibility
1118AC_DEFUN([OL_SSL_COMPAT],
1119[AC_CACHE_CHECK([OpenSSL library version (CRL checking capability)],
1120	[ol_cv_ssl_crl_compat],[
1121		AC_EGREP_CPP(__ssl_compat,[
1122#ifdef HAVE_OPENSSL_SSL_H
1123#include <openssl/ssl.h>
1124#endif
1125
1126/* Require 0.9.7d+ */
1127#if OPENSSL_VERSION_NUMBER >= 0x0090704fL
1128	char *__ssl_compat = "0.9.7d";
1129#endif
1130	], [ol_cv_ssl_crl_compat=yes], [ol_cv_ssl_crl_compat=no])])
1131])
1132