1 dnl Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
2 dnl COPYING RESTRICTIONS APPLY, See COPYRIGHT file
4 dnl OpenLDAP Autoconf Macros
6 dnl --------------------------------------------------------------------
7 dnl Restricted form of AC_ARG_ENABLE that limits user options
11 dnl $3 = default value (auto)
12 dnl $4 = allowed values (auto yes no)
13 AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
14 AC_ARG_ENABLE($1,[$2 (]ifelse($3,,auto,$3)[)],[
16 for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
17 if test "$enableval" = "$ol_val" ; then
21 if test "$ol_arg" = "invalid" ; then
22 AC_MSG_ERROR(bad value $enableval for --enable-$1)
24 ol_enable_$1="$ol_arg"
26 [ ol_enable_$1=ifelse($3,,"auto","$3")])dnl
27 dnl AC_VERBOSE(OpenLDAP -enable-$1 $ol_enable_$1)
31 dnl --------------------------------------------------------------------
32 dnl Restricted form of AC_ARG_WITH that limits user options
36 dnl $3 = default value (no)
37 dnl $4 = allowed values (yes or no)
38 AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1
39 AC_ARG_WITH($1,[$2 (]ifelse($3,,yes,$3)[)],[
41 for ol_val in ifelse($4,,[yes no],[$4]) ; do
42 if test "$withval" = "$ol_val" ; then
46 if test "$ol_arg" = "invalid" ; then
47 AC_MSG_ERROR(bad value $withval for --with-$1)
51 [ ol_with_$1=ifelse($3,,"no","$3")])dnl
52 dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1)
56 dnl ====================================================================
57 dnl check if hard links are supported.
59 AC_DEFUN([OL_PROG_LN_H], [# test for ln hardlink support
60 AC_MSG_CHECKING(whether ln works)
61 AC_CACHE_VAL(ol_cv_prog_LN_H,
62 [rm -f conftest.src conftest.dst
63 echo "conftest" > conftest.src
64 if ln conftest.src conftest.dst 2>/dev/null
70 rm -f conftest.src conftest.dst
72 LN_H="$ol_cv_prog_LN_H"
73 if test "$ol_cv_prog_LN_H" = "ln"; then
81 dnl ====================================================================
82 dnl Check for dependency generation flag
83 AC_DEFUN([OL_MKDEPEND], [# test for make depend flag
86 if test -z "${MKDEP}"; then
88 if test -z "${MKDEP_FLAGS}"; then
89 AC_CACHE_CHECK([for ${OL_MKDEP} depend flag], ol_cv_mkdep, [
91 for flag in "-M" "-xM"; do
92 cat > conftest.c <<EOF
95 if AC_TRY_COMMAND($OL_MKDEP $flag conftest.c) \
96 | egrep '^conftest\.'"${ac_objext}" >/dev/null 2>&1
98 if test ! -f conftest."${ac_object}" ; then
100 OL_MKDEP_FLAGS="$flag"
109 OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
114 OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
117 AC_SUBST(OL_MKDEP_FLAGS)
120 dnl ====================================================================
121 dnl Check if system uses EBCDIC instead of ASCII
122 AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC
123 AC_MSG_CHECKING([for EBCDIC])
124 AC_CACHE_VAL(ol_cv_cpp_ebcdic,[
127 #include <__ASCII__/generate_error.h>
130 [ol_cv_cpp_ebcdic=yes],
131 [ol_cv_cpp_ebcdic=no])])
132 AC_MSG_RESULT($ol_cv_cpp_ebcdic)
133 if test $ol_cv_cpp_ebcdic = yes ; then
134 AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII])
138 dnl --------------------------------------------------------------------
139 dnl OpenLDAP version of STDC header check w/ EBCDIC support
140 AC_DEFUN(OL_HEADER_STDC,
142 AC_REQUIRE([OL_CPP_EBCDIC])dnl
143 AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
144 [AC_TRY_CPP([#include <stdlib.h>
147 #include <float.h>], ol_cv_header_stdc=yes, ol_cv_header_stdc=no)
149 if test $ol_cv_header_stdc = yes; then
150 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
151 AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no)
154 if test $ol_cv_header_stdc = yes; then
155 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
156 AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no)
159 if test $ol_cv_header_stdc = yes; then
160 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
161 AC_TRY_RUN([#include <ctype.h>
163 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
164 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
166 # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
167 || ('j' <= (c) && (c) <= 'r') \
168 || ('s' <= (c) && (c) <= 'z'))
169 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
171 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
172 int main () { int i; for (i = 0; i < 256; i++)
173 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
175 ], , ol_cv_header_stdc=no, :)
177 if test $ol_cv_header_stdc = yes; then
178 AC_DEFINE(STDC_HEADERS)
180 ac_cv_header_stdc=disable
183 dnl ====================================================================
184 dnl Check if struct passwd has pw_gecos
185 AC_DEFUN([OL_STRUCT_PASSWD_PW_GECOS], [# test for pw_gecos in struct passwd
186 AC_MSG_CHECKING([struct passwd for pw_gecos])
187 AC_CACHE_VAL(ol_cv_struct_passwd_pw_gecos,[
188 AC_TRY_COMPILE([#include <pwd.h>],[
190 pwd.pw_gecos = pwd.pw_name;
192 [ol_cv_struct_passwd_pw_gecos=yes],
193 [ol_cv_struct_passwd_pw_gecos=no])])
194 AC_MSG_RESULT($ol_cv_struct_passwd_pw_gecos)
195 if test $ol_cv_struct_passwd_pw_gecos = yes ; then
196 AC_DEFINE(HAVE_PW_GECOS,1, [define if struct passwd has pw_gecos])
200 dnl --------------------------------------------------------------------
201 dnl Check if struct passwd has pw_passwd
202 AC_DEFUN([OL_STRUCT_PASSWD_PW_PASSWD], [# test for pw_passwd in struct passwd
203 AC_MSG_CHECKING([struct passwd for pw_passwd])
204 AC_CACHE_VAL(ol_cv_struct_passwd_pw_passwd,[
205 AC_TRY_COMPILE([#include <pwd.h>],[
207 pwd.pw_passwd = pwd.pw_name;
209 [ol_cv_struct_passwd_pw_passwd=yes],
210 [ol_cv_struct_passwd_pw_passwd=no])])
211 AC_MSG_RESULT($ol_cv_struct_passwd_pw_passwd)
212 if test $ol_cv_struct_passwd_pw_passwd = yes ; then
213 AC_DEFINE(HAVE_PW_PASSWD,1, [define if struct passwd has pw_passwd])
217 dnl ====================================================================
218 dnl Check if db.h is Berkeley DB2
220 dnl defines ol_cv_header_db2 to 'yes' or 'no'
223 dnl AC_CHECK_HEADERS(db.h)
225 AC_DEFUN([OL_HEADER_BERKELEY_DB2],
226 [AC_CHECK_HEADERS(db.h)
227 if test $ac_cv_header_db_h = yes ; then
228 AC_CACHE_CHECK([if db.h is DB2], [ol_cv_header_db2],[
229 AC_EGREP_CPP(__db_version_2,[
231 /* this check could be improved */
232 # ifdef DB_VERSION_MAJOR
233 # if DB_VERSION_MAJOR == 2
237 ], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
242 dnl --------------------------------------------------------------------
243 dnl Check if Berkeley DB2 library exists
244 dnl Check for dbopen in standard libraries or -ldb
246 dnl defines ol_cv_lib_db2 to '-ldb' or 'no'
249 dnl AC_CHECK_LIB(db,db_open)
251 AC_DEFUN([OL_LIB_BERKELEY_DB2],
252 [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2],
254 AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
259 dnl --------------------------------------------------------------------
260 dnl Check if Berkeley db2 exists
262 dnl defines ol_cv_berkeley_db2 to 'yes' or 'no'
265 dnl OL_LIB_BERKELEY_DB2
266 dnl OL_HEADER_BERKELEY_DB2
268 AC_DEFUN([OL_BERKELEY_DB2],
269 [AC_REQUIRE([OL_LIB_BERKELEY_DB2])
270 AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
271 AC_CACHE_CHECK([for Berkeley DB2], [ol_cv_berkeley_db2], [
272 if test "$ol_cv_lib_db2" = no -o "$ol_cv_header_db2" = no ; then
273 ol_cv_berkeley_db2=no
275 ol_cv_berkeley_db2=yes
278 if test $ol_cv_berkeley_db2 = yes ; then
279 AC_DEFINE(HAVE_BERKELEY_DB2,1, [define if Berkeley DBv2 is available])
283 dnl ====================================================================
284 dnl Check for db.h/db_185.h is Berkeley DB
286 dnl defines ol_cv_header_db to 'yes' or 'no'
289 dnl OL_HEADER_BERKELEY_DB2
290 dnl AC_CHECK_HEADERS(db_185.h)
292 AC_DEFUN([OL_HEADER_BERKELEY_DB],
293 [AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
294 AC_CHECK_HEADERS(db_185.h)
295 if test "$ol_cv_header_db2" = yes ; then
298 ol_cv_header_db=$ac_cv_header_db_185_h
300 ol_cv_header_db=$ac_cv_header_db_h
304 dnl --------------------------------------------------------------------
305 dnl Check if Berkeley DB library exists
306 dnl Check for dbopen in standard libraries or -ldb
308 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
309 dnl 'yes' implies dbopen is in $LIBS
312 dnl AC_CHECK_FUNC(dbopen)
313 dnl AC_CHECK_LIB(db,dbopen)
315 AC_DEFUN([OL_LIB_BERKELEY_DB],
316 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
318 AC_CHECK_HEADERS(db1/db.h)
320 AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
321 AC_CHECK_LIB(db1,dbopen,[ol_cv_lib_db=-ldb1],[
322 AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],
330 dnl --------------------------------------------------------------------
331 dnl Check if Berkeley DB exists
333 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
336 dnl OL_LIB_BERKELEY_DB
337 dnl OL_HEADER_BERKELEY_DB
339 AC_DEFUN([OL_BERKELEY_DB],
340 [AC_REQUIRE([OL_LIB_BERKELEY_DB])
341 AC_REQUIRE([OL_HEADER_BERKELEY_DB])
342 AC_CACHE_CHECK([for Berkeley DB], [ol_cv_berkeley_db], [
343 if test "$ol_cv_lib_db" = no -o "$ol_cv_header_db" = no ; then
346 ol_cv_berkeley_db=yes
349 if test $ol_cv_berkeley_db = yes ; then
350 AC_DEFINE(HAVE_BERKELEY_DB,1, [define if Berkeley DB is available])
354 dnl ====================================================================
355 dnl Check if GDBM library exists
356 dnl Check for gdbm_open in standard libraries or -lgdbm
358 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
359 dnl 'yes' implies gdbm_open is in $LIBS
362 dnl AC_CHECK_FUNC(gdbm_open)
363 dnl AC_CHECK_LIB(gdbm,gdbm_open)
365 AC_DEFUN([OL_LIB_GDBM],
366 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
368 AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
369 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
375 dnl --------------------------------------------------------------------
376 dnl Check if GDBM exists
378 dnl defines ol_cv_gdbm to 'yes' or 'no'
382 dnl AC_CHECK_HEADERS(gdbm.h)
385 [AC_REQUIRE([OL_LIB_GDBM])
386 AC_CHECK_HEADERS(gdbm.h)
387 AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
388 if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
394 if test $ol_cv_gdbm = yes ; then
395 AC_DEFINE(HAVE_GDBM,1, [define if GNU DBM is available])
399 dnl ====================================================================
400 dnl Check if MDBM library exists
401 dnl Check for mdbm_open in standard libraries or -lmdbm
403 dnl defines ol_cv_lib_mdbm to 'yes' or '-lmdbm' or 'no'
404 dnl 'yes' implies mdbm_open is in $LIBS
407 dnl AC_CHECK_FUNC(mdbm_set_chain)
408 dnl AC_CHECK_LIB(mdbm,mdbm_set_chain)
410 AC_DEFUN([OL_LIB_MDBM],
411 [AC_CACHE_CHECK(for MDBM library, [ol_cv_lib_mdbm],
413 AC_CHECK_FUNC(mdbm_set_chain,[ol_cv_lib_mdbm=yes], [
414 AC_CHECK_LIB(mdbm,mdbm_set_chain,[ol_cv_lib_mdbm=-lmdbm],[ol_cv_lib_mdbm=no])
420 dnl --------------------------------------------------------------------
421 dnl Check if MDBM exists
423 dnl defines ol_cv_mdbm to 'yes' or 'no'
427 dnl AC_CHECK_HEADERS(mdbm.h)
430 [AC_REQUIRE([OL_LIB_MDBM])
431 AC_CHECK_HEADERS(mdbm.h)
432 AC_CACHE_CHECK(for db, [ol_cv_mdbm], [
433 if test $ol_cv_lib_mdbm = no -o $ac_cv_header_mdbm_h = no ; then
439 if test $ol_cv_mdbm = yes ; then
440 AC_DEFINE(HAVE_MDBM,1, [define if MDBM is available])
444 dnl ====================================================================
445 dnl Check if NDBM library exists
446 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
448 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
449 dnl 'yes' implies ndbm_open is in $LIBS
452 dnl AC_CHECK_FUNC(dbm_open)
453 dnl AC_CHECK_LIB(ndbm,dbm_open)
454 dnl AC_CHECK_LIB(dbm,dbm_open)
457 dnl should also check SVR4 case: dbm_open() in -lucb but that
458 dnl would requiring dealing with -L/usr/ucblib
460 AC_DEFUN([OL_LIB_NDBM],
461 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
463 AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
464 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
465 AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
466 [ol_cv_lib_ndbm=no])dnl
473 dnl --------------------------------------------------------------------
474 dnl Check if NDBM exists
476 dnl defines ol_cv_ndbm to 'yes' or 'no'
480 dnl AC_CHECK_HEADERS(ndbm.h)
483 dnl Doesn't handle SVR4 case (see above)
486 [AC_REQUIRE([OL_LIB_NDBM])
487 AC_CHECK_HEADERS(ndbm.h)
488 AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
489 if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
495 if test $ol_cv_ndbm = yes ; then
496 AC_DEFINE(HAVE_NDBM,1, [define if NDBM is available])
500 dnl ====================================================================
501 dnl Check POSIX Thread version
503 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
504 dnl 'unknown' implies that the version could not be detected
505 dnl or that pthreads.h does exist. Existance of pthreads.h
506 dnl should be tested separately.
508 AC_DEFUN([OL_POSIX_THREAD_VERSION],
509 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
510 AC_EGREP_CPP(pthread_version_final,[
511 # include <pthread.h>
512 /* this check could be improved */
513 # ifdef PTHREAD_ONCE_INIT
514 pthread_version_final
516 ], ol_pthread_final=yes, ol_pthread_final=no)
518 AC_EGREP_CPP(pthread_version_draft4,[
519 # include <pthread.h>
520 /* this check could be improved */
521 # ifdef pthread_once_init
522 pthread_version_draft4
524 ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
526 if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
527 ol_cv_pthread_version=final
528 elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
529 ol_cv_pthread_version=draft4
531 ol_cv_pthread_version=unknown
536 dnl --------------------------------------------------------------------
537 AC_DEFUN([OL_PTHREAD_TRY_LINK], [# Pthread try link: $1 ($2)
538 if test "$ol_link_threads" = no ; then
540 AC_CACHE_CHECK([for pthread link with $1], [$2], [
548 #define NULL (void*)0
554 pthread_create(&t, pthread_attr_default, NULL, NULL);
555 pthread_detach( &t );
557 pthread_create(&t, NULL, NULL, NULL);
560 #ifdef HAVE_LINUX_THREADS
561 pthread_kill_other_threads_np();
563 ], [$2=yes], [$2=no])
569 if test $$2 = yes ; then
570 ol_link_pthreads="$1"
571 ol_link_threads=posix
576 dnl ====================================================================
577 dnl Check LinuxThreads Header
579 dnl defines ol_cv_header linux_threads to 'yes' or 'no'
580 dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h
581 dnl doesn't exists. Existance of pthread.h should separately
584 AC_DEFUN([OL_HEADER_LINUX_THREADS], [
585 AC_CACHE_CHECK([for LinuxThreads pthread.h],
586 [ol_cv_header_linux_threads],
587 [AC_EGREP_CPP(pthread_kill_other_threads_np,
588 [#include <pthread.h>],
589 [ol_cv_header_linux_threads=yes],
590 [ol_cv_header_linux_threads=no])
592 if test $ol_cv_header_linux_threads = yes; then
593 AC_DEFINE(HAVE_LINUX_THREADS,1,[if you have LinuxThreads])
596 dnl --------------------------------------------------------------------
597 dnl Check LinuxThreads Implementation
599 dnl defines ol_cv_sys_linux_threads to 'yes' or 'no'
600 dnl 'no' implies pthreads implementation is not LinuxThreads.
602 AC_DEFUN([OL_SYS_LINUX_THREADS], [
603 AC_CHECK_FUNC(pthread_kill_other_threads_np)
604 AC_CACHE_CHECK([for LinuxThreads implementation],
605 [ol_cv_sys_linux_threads],
606 [ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np])
609 dnl --------------------------------------------------------------------
610 dnl Check LinuxThreads consistency
611 AC_DEFUN([OL_LINUX_THREADS], [
612 AC_REQUIRE([OL_HEADER_LINUX_THREADS])
613 AC_REQUIRE([OL_SYS_LINUX_THREADS])
614 AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [
615 if test $ol_cv_header_linux_threads = yes -a \
616 $ol_cv_sys_linux_threads = yes; then
617 ol_cv_linux_threads=yes
618 elif test $ol_cv_header_linux_threads = no -a \
619 $ol_cv_sys_linux_threads = no; then
620 ol_cv_linux_threads=no
622 ol_cv_linux_threads=error
627 dnl ====================================================================
628 dnl Check for POSIX Regex
629 AC_DEFUN([OL_POSIX_REGEX], [
630 AC_MSG_CHECKING([for compatible POSIX regex])
631 AC_CACHE_VAL(ol_cv_c_posix_regex,[
633 #include <sys/types.h>
635 static char *pattern, *string;
643 if(regcomp(&re, pattern, 0)) {
647 string = "ALL MATCH";
649 rc = regexec(&re, string, 0, (void*)0, 0);
655 [ol_cv_c_posix_regex=yes],
656 [ol_cv_c_posix_regex=no],
657 [ol_cv_c_posix_regex=cross])])
658 AC_MSG_RESULT($ol_cv_c_posix_regex)
661 dnl ====================================================================
662 dnl Check if toupper() requires islower() to be called first
663 AC_DEFUN([OL_C_UPPER_LOWER],
665 AC_MSG_CHECKING([if toupper() requires islower()])
666 AC_CACHE_VAL(ol_cv_c_upper_lower,[
671 if ('C' == toupper('C'))
676 [ol_cv_c_upper_lower=no],
677 [ol_cv_c_upper_lower=yes],
678 [ol_cv_c_upper_lower=safe])])
679 AC_MSG_RESULT($ol_cv_c_upper_lower)
680 if test $ol_cv_c_upper_lower != no ; then
681 AC_DEFINE(C_UPPER_LOWER,1, [define if toupper() requires islower()])
685 dnl ====================================================================
686 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
687 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
688 dnl Reported by Keith Bostic.
689 AC_DEFUN([OL_SYS_ERRLIST],
691 AC_MSG_CHECKING([declaration of sys_errlist])
692 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
695 #include <sys/types.h>
696 #include <errno.h> ],
697 [char *c = (char *) *sys_errlist],
698 [ol_cv_dcl_sys_errlist=yes],
699 [ol_cv_dcl_sys_errlist=no])])
700 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
701 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
702 if test $ol_cv_dcl_sys_errlist = no ; then
703 AC_DEFINE(DECL_SYS_ERRLIST,1,
704 [define if sys_errlist is not declared in stdio.h or errno.h])
705 AC_MSG_CHECKING([existence of sys_errlist])
706 AC_CACHE_VAL(ol_cv_have_sys_errlist,[
707 AC_TRY_LINK([#include <errno.h>],
708 [char *c = (char *) *sys_errlist],
709 [ol_cv_have_sys_errlist=yes],
710 [ol_cv_have_sys_errlist=no])])
711 AC_MSG_RESULT($ol_cv_have_sys_errlist)
712 if test $ol_cv_have_sys_errlist = yes ; then
713 AC_DEFINE(HAVE_SYS_ERRLIST,1,
714 [define if you actually have sys_errlist in your libs])
719 dnl ====================================================================
720 dnl Early MIPS compilers (used in Ultrix 4.2) don't like
721 dnl "int x; int *volatile a = &x; *a = 0;"
722 dnl -- borrowed from PDKSH
723 AC_DEFUN(OL_C_VOLATILE,
724 [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
725 [AC_TRY_COMPILE([int x, y, z;],
726 [volatile int a; int * volatile b = x ? &y : &z;
727 /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
728 *b = 0;], ol_cv_c_volatile=yes, ol_cv_c_volatile=no)])
729 if test $ol_cv_c_volatile = yes; then
736 dnl ====================================================================
737 dnl Define sig_atomic_t if not defined in signal.h
738 AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
739 [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
740 [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
741 ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
742 if test $ol_cv_type_sig_atomic_t = no; then
743 AC_DEFINE(sig_atomic_t, int)
747 dnl ====================================================================
748 dnl Define socklen_t if not defined in signal.h
749 AC_DEFUN(OL_TYPE_SOCKLEN_T,
750 [AC_CACHE_CHECK(for socklen_t, ol_cv_type_socklen_t,
752 #ifdef HAVE_SYS_TYPES_H
753 #include <sys/types.h>
755 #ifdef HAVE_SYS_SOCKET_H
756 #include <sys/socket.h>
759 ol_cv_type_socklen_t=yes, ol_cv_type_socklen_t=no)])
760 if test $ol_cv_type_socklen_t = no; then
761 AC_DEFINE(socklen_t, int)
765 dnl ====================================================================
766 dnl check no of arguments for ctime_r
767 AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
768 [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
769 [AC_TRY_COMPILE([#include <time.h>],
770 [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
771 ol_cv_func_ctime_r_nargs=3,
772 [AC_TRY_COMPILE([#include <time.h>],
773 [time_t ti; char *buffer; ctime_r(&ti,buffer);],
774 ol_cv_func_ctime_r_nargs=2,
775 ol_cv_func_ctime_r_nargs=0)])])
776 if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
777 AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
778 [set to the number of arguments ctime_r() expects])
782 dnl --------------------------------------------------------------------
783 dnl check return type of ctime_r()
784 AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
785 [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
786 [AC_TRY_COMPILE([#include <time.h>],
787 [extern int (ctime_r)();],
788 ol_cv_func_ctime_r_type="int", ol_cv_func_ctime_r_type="charp")
790 if test $ol_cv_func_ctime_r_type = "int" ; then
791 AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
794 dnl ====================================================================
795 dnl check no of arguments for gethostbyname_r
796 AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
797 [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
798 ol_cv_func_gethostbyname_r_nargs,
799 [AC_TRY_COMPILE([#include <sys/types.h>
800 #include <sys/socket.h>
801 #include <netinet/in.h>
803 #define BUFSIZE (sizeof(struct hostent)+10)],
804 [struct hostent hent; char buffer[BUFSIZE];
805 int bufsize=BUFSIZE;int h_errno;
806 (void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
807 buffer, bufsize, &h_errno);],
808 ol_cv_func_gethostbyname_r_nargs=5,
809 [AC_TRY_COMPILE([#include <sys/types.h>
810 #include <sys/socket.h>
811 #include <netinet/in.h>
813 #define BUFSIZE (sizeof(struct hostent)+10)],
814 [struct hostent hent;struct hostent *rhent;
815 char buffer[BUFSIZE];
816 int bufsize=BUFSIZE;int h_errno;
817 (void)gethostbyname_r("localhost", &hent, buffer, bufsize,
819 ol_cv_func_gethostbyname_r_nargs=6,
820 ol_cv_func_gethostbyname_r_nargs=0)])])
821 if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
822 AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
823 $ol_cv_func_gethostbyname_r_nargs,
824 [set to the number of arguments gethostbyname_r() expects])
828 dnl check no of arguments for gethostbyaddr_r
829 AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
830 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
831 [ol_cv_func_gethostbyaddr_r_nargs],
832 [AC_TRY_COMPILE([#include <sys/types.h>
833 #include <sys/socket.h>
834 #include <netinet/in.h>
836 #define BUFSIZE (sizeof(struct hostent)+10)],
837 [struct hostent hent; char buffer[BUFSIZE];
839 size_t alen=sizeof(struct in_addr);
840 int bufsize=BUFSIZE;int h_errno;
841 (void)gethostbyaddr_r( (void *)&(add.s_addr),
842 alen, AF_INET, &hent, buffer, bufsize, &h_errno);],
843 ol_cv_func_gethostbyaddr_r_nargs=7,
844 [AC_TRY_COMPILE([#include <sys/types.h>
845 #include <sys/socket.h>
846 #include <netinet/in.h>
848 #define BUFSIZE (sizeof(struct hostent)+10)],
849 [struct hostent hent;
850 struct hostent *rhent; char buffer[BUFSIZE];
852 size_t alen=sizeof(struct in_addr);
853 int bufsize=BUFSIZE;int h_errno;
854 (void)gethostbyaddr_r( (void *)&(add.s_addr),
855 alen, AF_INET, &hent, buffer, bufsize,
857 ol_cv_func_gethostbyaddr_r_nargs=8,
858 ol_cv_func_gethostbyaddr_r_nargs=0)])])
859 if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
860 AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
861 $ol_cv_func_gethostbyaddr_r_nargs,
862 [set to the number of arguments gethostbyaddr_r() expects])