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 if system uses EBCDIC instead of ASCII
83 AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC
84 AC_MSG_CHECKING([for EBCDIC])
85 AC_CACHE_VAL(ol_cv_cpp_ebcdic,[
88 #include <__ASCII__/generate_error.h>
91 [ol_cv_cpp_ebcdic=yes],
92 [ol_cv_cpp_ebcdic=no])])
93 AC_MSG_RESULT($ol_cv_cpp_ebcdic)
94 if test $ol_cv_cpp_ebcdic = yes ; then
95 AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII])
99 dnl --------------------------------------------------------------------
100 dnl OpenLDAP version of STDC header check w/ EBCDIC support
101 AC_DEFUN(OL_HEADER_STDC,
103 AC_REQUIRE([OL_CPP_EBCDIC])dnl
104 AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
105 [AC_TRY_CPP([#include <stdlib.h>
108 #include <float.h>], ol_cv_header_stdc=yes, ol_cv_header_stdc=no)
110 if test $ol_cv_header_stdc = yes; then
111 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
112 AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no)
115 if test $ol_cv_header_stdc = yes; then
116 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
117 AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no)
120 if test $ol_cv_header_stdc = yes; then
121 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
122 AC_TRY_RUN([#include <ctype.h>
124 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
125 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
127 # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
128 || ('j' <= (c) && (c) <= 'r') \
129 || ('s' <= (c) && (c) <= 'z'))
130 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
132 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
133 int main () { int i; for (i = 0; i < 256; i++)
134 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
136 ], , ol_cv_header_stdc=no, :)
138 if test $ol_cv_header_stdc = yes; then
139 AC_DEFINE(STDC_HEADERS)
141 ac_cv_header_stdc=disable
144 dnl ====================================================================
145 dnl Check if struct passwd has pw_gecos
146 AC_DEFUN([OL_STRUCT_PASSWD_PW_GECOS], [# test for pw_gecos in struct passwd
147 AC_MSG_CHECKING([struct passwd for pw_gecos])
148 AC_CACHE_VAL(ol_cv_struct_passwd_pw_gecos,[
149 AC_TRY_COMPILE([#include <pwd.h>],[
151 pwd.pw_gecos = pwd.pw_name;
153 [ol_cv_struct_passwd_pw_gecos=yes],
154 [ol_cv_struct_passwd_pw_gecos=no])])
155 AC_MSG_RESULT($ol_cv_struct_passwd_pw_gecos)
156 if test $ol_cv_struct_passwd_pw_gecos = yes ; then
157 AC_DEFINE(HAVE_PW_GECOS,1, [define if struct passwd has pw_gecos])
161 dnl ====================================================================
162 dnl Check if db.h is Berkeley DB2
164 dnl defines ol_cv_header_db2 to 'yes' or 'no'
167 dnl AC_CHECK_HEADERS(db.h)
169 AC_DEFUN([OL_HEADER_BERKELEY_DB2],
170 [AC_CHECK_HEADERS(db.h)
171 if test $ac_cv_header_db_h = yes ; then
172 AC_CACHE_CHECK([if db.h is DB2], [ol_cv_header_db2],[
173 AC_EGREP_CPP(__db_version_2,[
175 /* this check could be improved */
176 # ifdef DB_VERSION_MAJOR
177 # if DB_VERSION_MAJOR == 2
181 ], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
186 dnl --------------------------------------------------------------------
187 dnl Check if Berkeley DB2 library exists
188 dnl Check for dbopen in standard libraries or -ldb
190 dnl defines ol_cv_lib_db2 to '-ldb' or 'no'
193 dnl AC_CHECK_LIB(db,db_open)
195 AC_DEFUN([OL_LIB_BERKELEY_DB2],
196 [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2],
198 AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
203 dnl --------------------------------------------------------------------
204 dnl Check if Berkeley db2 exists
206 dnl defines ol_cv_berkeley_db2 to 'yes' or 'no'
209 dnl OL_LIB_BERKELEY_DB2
210 dnl OL_HEADER_BERKELEY_DB2
212 AC_DEFUN([OL_BERKELEY_DB2],
213 [AC_REQUIRE([OL_LIB_BERKELEY_DB2])
214 AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
215 AC_CACHE_CHECK([for Berkeley DB2], [ol_cv_berkeley_db2], [
216 if test "$ol_cv_lib_db2" = no -o "$ol_cv_header_db2" = no ; then
217 ol_cv_berkeley_db2=no
219 ol_cv_berkeley_db2=yes
222 if test $ol_cv_berkeley_db2 = yes ; then
223 AC_DEFINE(HAVE_BERKELEY_DB2,1, [define if Berkeley DBv2 is available])
227 dnl ====================================================================
228 dnl Check for db.h/db_185.h is Berkeley DB
230 dnl defines ol_cv_header_db to 'yes' or 'no'
233 dnl OL_HEADER_BERKELEY_DB2
234 dnl AC_CHECK_HEADERS(db_185.h)
236 AC_DEFUN([OL_HEADER_BERKELEY_DB],
237 [AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
238 AC_CHECK_HEADERS(db_185.h)
239 if test "$ol_cv_header_db2" = yes ; then
242 ol_cv_header_db=$ac_cv_header_db_185_h
244 ol_cv_header_db=$ac_cv_header_db_h
248 dnl --------------------------------------------------------------------
249 dnl Check if Berkeley DB library exists
250 dnl Check for dbopen in standard libraries or -ldb
252 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
253 dnl 'yes' implies dbopen is in $LIBS
256 dnl AC_CHECK_FUNC(dbopen)
257 dnl AC_CHECK_LIB(db,dbopen)
259 AC_DEFUN([OL_LIB_BERKELEY_DB],
260 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
262 AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
263 AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],[ol_cv_lib_db=no])
269 dnl --------------------------------------------------------------------
270 dnl Check if Berkeley DB exists
272 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
275 dnl OL_LIB_BERKELEY_DB
276 dnl OL_HEADER_BERKELEY_DB
278 AC_DEFUN([OL_BERKELEY_DB],
279 [AC_REQUIRE([OL_LIB_BERKELEY_DB])
280 AC_REQUIRE([OL_HEADER_BERKELEY_DB])
281 AC_CACHE_CHECK([for Berkeley DB], [ol_cv_berkeley_db], [
282 if test "$ol_cv_lib_db" = no -o "$ol_cv_header_db" = no ; then
285 ol_cv_berkeley_db=yes
288 if test $ol_cv_berkeley_db = yes ; then
289 AC_DEFINE(HAVE_BERKELEY_DB,1, [define if Berkeley DB is available])
293 dnl ====================================================================
294 dnl Check if GDBM library exists
295 dnl Check for gdbm_open in standard libraries or -lgdbm
297 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
298 dnl 'yes' implies gdbm_open is in $LIBS
301 dnl AC_CHECK_FUNC(gdbm_open)
302 dnl AC_CHECK_LIB(gdbm,gdbm_open)
304 AC_DEFUN([OL_LIB_GDBM],
305 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
307 AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
308 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
314 dnl --------------------------------------------------------------------
315 dnl Check if GDBM exists
317 dnl defines ol_cv_gdbm to 'yes' or 'no'
321 dnl AC_CHECK_HEADERS(gdbm.h)
324 [AC_REQUIRE([OL_LIB_GDBM])
325 AC_CHECK_HEADERS(gdbm.h)
326 AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
327 if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
333 if test $ol_cv_gdbm = yes ; then
334 AC_DEFINE(HAVE_GDBM,1, [define if GNU DBM is available])
338 dnl ====================================================================
339 dnl Check if MDBM library exists
340 dnl Check for mdbm_open in standard libraries or -lmdbm
342 dnl defines ol_cv_lib_mdbm to 'yes' or '-lmdbm' or 'no'
343 dnl 'yes' implies mdbm_open is in $LIBS
346 dnl AC_CHECK_FUNC(mdbm_set_chain)
347 dnl AC_CHECK_LIB(mdbm,mdbm_set_chain)
349 AC_DEFUN([OL_LIB_MDBM],
350 [AC_CACHE_CHECK(for MDBM library, [ol_cv_lib_mdbm],
352 AC_CHECK_FUNC(mdbm_set_chain,[ol_cv_lib_mdbm=yes], [
353 AC_CHECK_LIB(mdbm,mdbm_set_chain,[ol_cv_lib_mdbm=-lmdbm],[ol_cv_lib_mdbm=no])
359 dnl --------------------------------------------------------------------
360 dnl Check if MDBM exists
362 dnl defines ol_cv_mdbm to 'yes' or 'no'
366 dnl AC_CHECK_HEADERS(mdbm.h)
369 [AC_REQUIRE([OL_LIB_MDBM])
370 AC_CHECK_HEADERS(mdbm.h)
371 AC_CACHE_CHECK(for db, [ol_cv_mdbm], [
372 if test $ol_cv_lib_mdbm = no -o $ac_cv_header_mdbm_h = no ; then
378 if test $ol_cv_mdbm = yes ; then
379 AC_DEFINE(HAVE_MDBM,1, [define if MDBM is available])
383 dnl ====================================================================
384 dnl Check if NDBM library exists
385 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
387 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
388 dnl 'yes' implies ndbm_open is in $LIBS
391 dnl AC_CHECK_FUNC(dbm_open)
392 dnl AC_CHECK_LIB(ndbm,dbm_open)
393 dnl AC_CHECK_LIB(dbm,dbm_open)
396 dnl should also check SVR4 case: dbm_open() in -lucb but that
397 dnl would requiring dealing with -L/usr/ucblib
399 AC_DEFUN([OL_LIB_NDBM],
400 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
402 AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
403 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
404 AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
405 [ol_cv_lib_ndbm=no])dnl
412 dnl --------------------------------------------------------------------
413 dnl Check if NDBM exists
415 dnl defines ol_cv_ndbm to 'yes' or 'no'
419 dnl AC_CHECK_HEADERS(ndbm.h)
422 dnl Doesn't handle SVR4 case (see above)
425 [AC_REQUIRE([OL_LIB_NDBM])
426 AC_CHECK_HEADERS(ndbm.h)
427 AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
428 if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
434 if test $ol_cv_ndbm = yes ; then
435 AC_DEFINE(HAVE_NDBM,1, [define if NDBM is available])
439 dnl ====================================================================
440 dnl Check POSIX Thread version
442 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
443 dnl 'unknown' implies that the version could not be detected
444 dnl or that pthreads.h does exist. Existance of pthreads.h
445 dnl should be tested separately.
447 AC_DEFUN([OL_POSIX_THREAD_VERSION],
448 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
449 AC_EGREP_CPP(pthread_version_final,[
450 # include <pthread.h>
451 /* this check could be improved */
452 # ifdef PTHREAD_ONCE_INIT
453 pthread_version_final
455 ], ol_pthread_final=yes, ol_pthread_final=no)
457 AC_EGREP_CPP(pthread_version_draft4,[
458 # include <pthread.h>
459 /* this check could be improved */
460 # ifdef pthread_once_init
461 pthread_version_draft4
463 ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
465 if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
466 ol_cv_pthread_version=final
467 elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
468 ol_cv_pthread_version=draft4
470 ol_cv_pthread_version=unknown
475 dnl --------------------------------------------------------------------
476 AC_DEFUN([OL_PTHREAD_TRY_LINK], [# Pthread try link: $1 ($2)
477 if test "$ol_link_threads" = no ; then
479 AC_CACHE_CHECK([for pthread link with $1], [$2], [
487 #define NULL (void*)0
493 pthread_create(&t, pthread_attr_default, NULL, NULL);
494 pthread_detach( &t );
496 pthread_create(&t, NULL, NULL, NULL);
499 #ifdef HAVE_LINUX_THREADS
500 pthread_kill_other_threads_np();
502 ], [$2=yes], [$2=no])
508 if test $$2 = yes ; then
509 ol_link_pthreads="$1"
510 ol_link_threads=posix
515 dnl ====================================================================
516 dnl Check LinuxThreads Header
518 dnl defines ol_cv_header linux_threads to 'yes' or 'no'
519 dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h
520 dnl doesn't exists. Existance of pthread.h should separately
523 AC_DEFUN([OL_HEADER_LINUX_THREADS], [
524 AC_CACHE_CHECK([for LinuxThreads pthread.h],
525 [ol_cv_header_linux_threads],
526 [AC_EGREP_CPP(pthread_kill_other_threads_np,
527 [#include <pthread.h>],
528 [ol_cv_header_linux_threads=yes],
529 [ol_cv_header_linux_threads=no])
531 if test $ol_cv_header_linux_threads = yes; then
532 AC_DEFINE(HAVE_LINUX_THREADS,1,[if you have LinuxThreads])
535 dnl --------------------------------------------------------------------
536 dnl Check LinuxThreads Implementation
538 dnl defines ol_cv_sys_linux_threads to 'yes' or 'no'
539 dnl 'no' implies pthreads implementation is not LinuxThreads.
541 AC_DEFUN([OL_SYS_LINUX_THREADS], [
542 AC_CHECK_FUNC(pthread_kill_other_threads_np)
543 AC_CACHE_CHECK([for LinuxThreads implementation],
544 [ol_cv_sys_linux_threads],
545 [ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np])
548 dnl --------------------------------------------------------------------
549 dnl Check LinuxThreads consistency
550 AC_DEFUN([OL_LINUX_THREADS], [
551 AC_REQUIRE([OL_HEADER_LINUX_THREADS])
552 AC_REQUIRE([OL_SYS_LINUX_THREADS])
553 AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [
554 if test $ol_cv_header_linux_threads = yes -a \
555 $ol_cv_sys_linux_threads = yes; then
556 ol_cv_linux_threads=yes
557 elif test $ol_cv_header_linux_threads = no -a \
558 $ol_cv_sys_linux_threads = no; then
559 ol_cv_linux_threads=no
561 ol_cv_linux_threads=error
566 dnl ====================================================================
567 dnl Check if toupper() requires islower() to be called first
568 AC_DEFUN([OL_C_UPPER_LOWER],
570 AC_MSG_CHECKING([if toupper() requires islower()])
571 AC_CACHE_VAL(ol_cv_c_upper_lower,[
576 if ('C' == toupper('C'))
581 [ol_cv_c_upper_lower=no],
582 [ol_cv_c_upper_lower=yes],
583 [ol_cv_c_upper_lower=safe])])
584 AC_MSG_RESULT($ol_cv_c_upper_lower)
585 if test $ol_cv_c_upper_lower != no ; then
586 AC_DEFINE(C_UPPER_LOWER,1, [define if toupper() requires islower()])
590 dnl ====================================================================
591 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
592 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
593 dnl Reported by Keith Bostic.
594 AC_DEFUN([OL_SYS_ERRLIST],
596 AC_MSG_CHECKING([declaration of sys_errlist])
597 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
600 #include <sys/types.h>
601 #include <errno.h> ],
602 [char *c = (char *) *sys_errlist],
603 [ol_cv_dcl_sys_errlist=yes],
604 [ol_cv_dcl_sys_errlist=no])])
605 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
606 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
607 if test $ol_cv_dcl_sys_errlist = no ; then
608 AC_DEFINE(DECL_SYS_ERRLIST,1,
609 [define if sys_errlist is not declared in stdio.h or errno.h])
610 AC_MSG_CHECKING([existence of sys_errlist])
611 AC_CACHE_VAL(ol_cv_have_sys_errlist,[
612 AC_TRY_LINK([#include <errno.h>],
613 [char *c = (char *) *sys_errlist],
614 [ol_cv_have_sys_errlist=yes],
615 [ol_cv_have_sys_errlist=no])])
616 AC_MSG_RESULT($ol_cv_have_sys_errlist)
617 if test $ol_cv_have_sys_errlist = yes ; then
618 AC_DEFINE(HAVE_SYS_ERRLIST,1,
619 [define if you actually have sys_errlist in your libs])
624 dnl ====================================================================
625 dnl Check to see if we should not declare strdup if we have it
627 AC_DEFUN([OL_DECL_STRDUP],
629 AC_MSG_CHECKING([strdup declaration])
630 AC_CACHE_VAL(ol_cv_dcl_strdup,[
632 #include <string.h> ],
633 [extern char *strdup();],
634 [ol_cv_dcl_strdup=yes],
635 [ol_cv_dcl_strdup=no])])
636 AC_MSG_RESULT($ol_cv_dcl_strdup)
637 if test $ol_cv_dcl_strdup = yes ; then
638 AC_DEFINE(DECL_STRDUP,1,
639 [define if you have strdup() but it's not declared])
643 dnl ====================================================================
644 dnl Early MIPS compilers (used in Ultrix 4.2) don't like
645 dnl "int x; int *volatile a = &x; *a = 0;"
646 dnl -- borrowed from PDKSH
647 AC_DEFUN(OL_C_VOLATILE,
648 [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
649 [AC_TRY_COMPILE([int x, y, z;],
650 [volatile int a; int * volatile b = x ? &y : &z;
651 /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
652 *b = 0;], ol_cv_c_volatile=yes, ol_cv_c_volatile=no)])
653 if test $ol_cv_c_volatile = yes; then
660 dnl ====================================================================
661 dnl Define sig_atomic_t if not defined in signal.h
662 AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
663 [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
664 [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
665 ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
666 if test $ol_cv_type_sig_atomic_t = no; then
667 AC_DEFINE(sig_atomic_t, int)
671 dnl ====================================================================
672 dnl check no of arguments for ctime_r
673 AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
674 [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
675 [AC_TRY_COMPILE([#include <time.h>],
676 [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
677 ol_cv_func_ctime_r_nargs=3,
678 [AC_TRY_COMPILE([#include <time.h>],
679 [time_t ti; char *buffer; ctime_r(&ti,buffer);],
680 ol_cv_func_ctime_r_nargs=2,
681 ol_cv_func_ctime_r_nargs=0)])])
682 if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
683 AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
684 [set to the number of arguments ctime_r() expects])
688 dnl --------------------------------------------------------------------
689 dnl check return type of ctime_r()
690 AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
691 [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
692 [AC_TRY_COMPILE([#include <time.h>],
694 ol_cv_func_ctime_r_type="int", ol_cv_func_ctime_r_type="charp")
696 if test $ol_cv_func_ctime_r_type = "int" ; then
697 AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
700 dnl ====================================================================
701 dnl check no of arguments for gethostbyname_r
702 AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
703 [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
704 ol_cv_func_gethostbyname_r_nargs,
705 [AC_TRY_COMPILE([#include <sys/types.h>
706 #include <sys/socket.h>
707 #include <netinet/in.h>
709 #define BUFSIZE (sizeof(struct hostent)+10)],
710 [struct hostent hent; char buffer[BUFSIZE];
711 int bufsize=BUFSIZE;int h_errno;
712 (void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
713 buffer, bufsize, &h_errno);],
714 ol_cv_func_gethostbyname_r_nargs=5,
715 [AC_TRY_COMPILE([#include <sys/types.h>
716 #include <sys/socket.h>
717 #include <netinet/in.h>
719 #define BUFSIZE (sizeof(struct hostent)+10)],
720 [struct hostent hent;struct hostent *rhent;
721 char buffer[BUFSIZE];
722 int bufsize=BUFSIZE;int h_errno;
723 (void)gethostbyname_r("localhost", &hent, buffer, bufsize,
725 ol_cv_func_gethostbyname_r_nargs=6,
726 ol_cv_func_gethostbyname_r_nargs=0)])])
727 if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
728 AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
729 $ol_cv_func_gethostbyname_r_nargs,
730 [set to the number of arguments gethostbyname_r() expects])
734 dnl check no of arguments for gethostbyaddr_r
735 AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
736 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
737 [ol_cv_func_gethostbyaddr_r_nargs],
738 [AC_TRY_COMPILE([#include <sys/types.h>
739 #include <sys/socket.h>
740 #include <netinet/in.h>
742 #define BUFSIZE (sizeof(struct hostent)+10)],
743 [struct hostent hent; char buffer[BUFSIZE];
745 size_t alen=sizeof(struct in_addr);
746 int bufsize=BUFSIZE;int h_errno;
747 (void)gethostbyaddr_r( (void *)&(add.s_addr),
748 alen, AF_INET, &hent, buffer, bufsize, &h_errno);],
749 ol_cv_func_gethostbyaddr_r_nargs=7,
750 [AC_TRY_COMPILE([#include <sys/types.h>
751 #include <sys/socket.h>
752 #include <netinet/in.h>
754 #define BUFSIZE (sizeof(struct hostent)+10)],
755 [struct hostent hent;
756 struct hostent *rhent; char buffer[BUFSIZE];
758 size_t alen=sizeof(struct in_addr);
759 int bufsize=BUFSIZE;int h_errno;
760 (void)gethostbyaddr_r( (void *)&(add.s_addr),
761 alen, AF_INET, &hent, buffer, bufsize,
763 ol_cv_func_gethostbyaddr_r_nargs=8,
764 ol_cv_func_gethostbyaddr_r_nargs=0)])])
765 if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
766 AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
767 $ol_cv_func_gethostbyaddr_r_nargs,
768 [set to the number of arguments gethostbyaddr_r() expects])