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 dnl Check LinuxThread
478 dnl defines ol_cv_linux_threads to 'yes' or 'no'
479 dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h
480 dnl doesn't exists. Existance of pthread.h should separately
483 AC_DEFUN([OL_LINUX_THREADS],
485 AC_CACHE_CHECK([for LinuxThreads], [ol_cv_linux_threads], [
486 res=`grep Linuxthreads /usr/include/pthread.h 2>/dev/null | wc -l`
487 if test "$res" -gt 0 ; then
488 ol_cv_linux_threads=yes
490 ol_cv_linux_threads=no
495 dnl ====================================================================
496 dnl Check if toupper() requires islower() to be called first
497 AC_DEFUN([OL_C_UPPER_LOWER],
499 AC_MSG_CHECKING([if toupper() requires islower()])
500 AC_CACHE_VAL(ol_cv_c_upper_lower,[
505 if ('C' == toupper('C'))
510 [ol_cv_c_upper_lower=no],
511 [ol_cv_c_upper_lower=yes],
512 [ol_cv_c_upper_lower=safe])])
513 AC_MSG_RESULT($ol_cv_c_upper_lower)
514 if test $ol_cv_c_upper_lower != no ; then
515 AC_DEFINE(C_UPPER_LOWER,1, [define if toupper() requires islower()])
519 dnl ====================================================================
520 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
521 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
522 dnl Reported by Keith Bostic.
523 AC_DEFUN([OL_SYS_ERRLIST],
525 AC_MSG_CHECKING([declaration of sys_errlist])
526 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
529 #include <sys/types.h>
530 #include <errno.h> ],
531 [char *c = (char *) *sys_errlist],
532 [ol_cv_dcl_sys_errlist=yes],
533 [ol_cv_dcl_sys_errlist=no])])
534 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
535 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
536 if test $ol_cv_dcl_sys_errlist = no ; then
537 AC_DEFINE(DECL_SYS_ERRLIST,1,
538 [define if sys_errlist is not declared in stdio.h or errno.h])
539 AC_MSG_CHECKING([existence of sys_errlist])
540 AC_CACHE_VAL(ol_cv_have_sys_errlist,[
541 AC_TRY_LINK([#include <errno.h>],
542 [char *c = (char *) *sys_errlist],
543 [ol_cv_have_sys_errlist=yes],
544 [ol_cv_have_sys_errlist=no])])
545 AC_MSG_RESULT($ol_cv_have_sys_errlist)
546 if test $ol_cv_have_sys_errlist = yes ; then
547 AC_DEFINE(HAVE_SYS_ERRLIST,1,
548 [define if you actually have sys_errlist in your libs])
553 dnl ====================================================================
554 dnl Check to see if we should not declare strdup if we have it
556 AC_DEFUN([OL_DECL_STRDUP],
558 AC_MSG_CHECKING([strdup declaration])
559 AC_CACHE_VAL(ol_cv_dcl_strdup,[
561 #include <string.h> ],
562 [extern char *strdup();],
563 [ol_cv_dcl_strdup=yes],
564 [ol_cv_dcl_strdup=no])])
565 AC_MSG_RESULT($ol_cv_dcl_strdup)
566 if test $ol_cv_dcl_strdup = yes ; then
567 AC_DEFINE(DECL_STRDUP,1,
568 [define if you have strdup() but it's not declared])
572 dnl ====================================================================
573 dnl Early MIPS compilers (used in Ultrix 4.2) don't like
574 dnl "int x; int *volatile a = &x; *a = 0;"
575 dnl -- borrowed from PDKSH
576 AC_DEFUN(OL_C_VOLATILE,
577 [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
578 [AC_TRY_COMPILE([int x, y, z;],
579 [volatile int a; int * volatile b = x ? &y : &z;
580 /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
581 *b = 0;], ol_cv_c_volatile=yes, ol_cv_c_volatile=no)])
582 if test $ol_cv_c_volatile = yes; then
589 dnl ====================================================================
590 dnl Define sig_atomic_t if not defined in signal.h
591 AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
592 [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
593 [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
594 ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
595 if test $ol_cv_type_sig_atomic_t = no; then
596 AC_DEFINE(sig_atomic_t, int)
600 dnl ====================================================================
601 dnl check no of arguments for ctime_r
602 AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
603 [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
604 [AC_TRY_COMPILE([#include <time.h>],
605 [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
606 ol_cv_func_ctime_r_nargs=3,
607 [AC_TRY_COMPILE([#include <time.h>],
608 [time_t ti; char *buffer; ctime_r(&ti,buffer);],
609 ol_cv_func_ctime_r_nargs=2,
610 ol_cv_func_ctime_r_nargs=0)])])
611 if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
612 AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
613 [set to the number of arguments ctime_r() expects])
617 dnl --------------------------------------------------------------------
618 dnl check return type of ctime_r()
619 AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
620 [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
621 [AC_TRY_COMPILE([#include <time.h>],
623 ol_cv_func_ctime_r_type="int", ol_cv_func_ctime_r_type="charp")
625 if test $ol_cv_func_ctime_r_type = "int" ; then
626 AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
629 dnl ====================================================================
630 dnl check no of arguments for gethostbyname_r
631 AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
632 [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
633 ol_cv_func_gethostbyname_r_nargs,
634 [AC_TRY_COMPILE([#include <sys/types.h>
635 #include <sys/socket.h>
636 #include <netinet/in.h>
638 #define BUFSIZE (sizeof(struct hostent)+10)],
639 [struct hostent hent; char buffer[BUFSIZE];
640 int bufsize=BUFSIZE;int h_errno;
641 (void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
642 buffer, bufsize, &h_errno);],
643 ol_cv_func_gethostbyname_r_nargs=5,
644 [AC_TRY_COMPILE([#include <sys/types.h>
645 #include <sys/socket.h>
646 #include <netinet/in.h>
648 #define BUFSIZE (sizeof(struct hostent)+10)],
649 [struct hostent hent;struct hostent *rhent;
650 char buffer[BUFSIZE];
651 int bufsize=BUFSIZE;int h_errno;
652 (void)gethostbyname_r("localhost", &hent, buffer, bufsize,
654 ol_cv_func_gethostbyname_r_nargs=6,
655 ol_cv_func_gethostbyname_r_nargs=0)])])
656 if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
657 AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
658 $ol_cv_func_gethostbyname_r_nargs,
659 [set to the number of arguments gethostbyname_r() expects])
663 dnl check no of arguments for gethostbyaddr_r
664 AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
665 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
666 [ol_cv_func_gethostbyaddr_r_nargs],
667 [AC_TRY_COMPILE([#include <sys/types.h>
668 #include <sys/socket.h>
669 #include <netinet/in.h>
671 #define BUFSIZE (sizeof(struct hostent)+10)],
672 [struct hostent hent; char buffer[BUFSIZE];
674 size_t alen=sizeof(struct in_addr);
675 int bufsize=BUFSIZE;int h_errno;
676 (void)gethostbyaddr_r( (void *)&(add.s_addr),
677 alen, AF_INET, &hent, buffer, bufsize, &h_errno);],
678 ol_cv_func_gethostbyaddr_r_nargs=7,
679 [AC_TRY_COMPILE([#include <sys/types.h>
680 #include <sys/socket.h>
681 #include <netinet/in.h>
683 #define BUFSIZE (sizeof(struct hostent)+10)],
684 [struct hostent hent;
685 struct hostent *rhent; char buffer[BUFSIZE];
687 size_t alen=sizeof(struct in_addr);
688 int bufsize=BUFSIZE;int h_errno;
689 (void)gethostbyaddr_r( (void *)&(add.s_addr),
690 alen, AF_INET, &hent, buffer, bufsize,
692 ol_cv_func_gethostbyaddr_r_nargs=8,
693 ol_cv_func_gethostbyaddr_r_nargs=0)])])
694 if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
695 AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
696 $ol_cv_func_gethostbyaddr_r_nargs,
697 [set to the number of arguments gethostbyaddr_r() expects])