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
99 OL_MKDEP_FLAGS="$flag"
107 OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
112 OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
115 AC_SUBST(OL_MKDEP_FLAGS)
118 dnl ====================================================================
119 dnl Check if system uses EBCDIC instead of ASCII
120 AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC
121 AC_MSG_CHECKING([for EBCDIC])
122 AC_CACHE_VAL(ol_cv_cpp_ebcdic,[
125 #include <__ASCII__/generate_error.h>
128 [ol_cv_cpp_ebcdic=yes],
129 [ol_cv_cpp_ebcdic=no])])
130 AC_MSG_RESULT($ol_cv_cpp_ebcdic)
131 if test $ol_cv_cpp_ebcdic = yes ; then
132 AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII])
136 dnl --------------------------------------------------------------------
137 dnl OpenLDAP version of STDC header check w/ EBCDIC support
138 AC_DEFUN(OL_HEADER_STDC,
140 AC_REQUIRE([OL_CPP_EBCDIC])dnl
141 AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
142 [AC_TRY_CPP([#include <stdlib.h>
145 #include <float.h>], ol_cv_header_stdc=yes, ol_cv_header_stdc=no)
147 if test $ol_cv_header_stdc = yes; then
148 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
149 AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no)
152 if test $ol_cv_header_stdc = yes; then
153 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
154 AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no)
157 if test $ol_cv_header_stdc = yes; then
158 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
159 AC_TRY_RUN([#include <ctype.h>
161 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
162 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
164 # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
165 || ('j' <= (c) && (c) <= 'r') \
166 || ('s' <= (c) && (c) <= 'z'))
167 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
169 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
170 int main () { int i; for (i = 0; i < 256; i++)
171 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
173 ], , ol_cv_header_stdc=no, :)
175 if test $ol_cv_header_stdc = yes; then
176 AC_DEFINE(STDC_HEADERS)
178 ac_cv_header_stdc=disable
181 dnl ====================================================================
182 dnl Check if struct passwd has pw_gecos
183 AC_DEFUN([OL_STRUCT_PASSWD_PW_GECOS], [# test for pw_gecos in struct passwd
184 AC_MSG_CHECKING([struct passwd for pw_gecos])
185 AC_CACHE_VAL(ol_cv_struct_passwd_pw_gecos,[
186 AC_TRY_COMPILE([#include <pwd.h>],[
188 pwd.pw_gecos = pwd.pw_name;
190 [ol_cv_struct_passwd_pw_gecos=yes],
191 [ol_cv_struct_passwd_pw_gecos=no])])
192 AC_MSG_RESULT($ol_cv_struct_passwd_pw_gecos)
193 if test $ol_cv_struct_passwd_pw_gecos = yes ; then
194 AC_DEFINE(HAVE_PW_GECOS,1, [define if struct passwd has pw_gecos])
198 dnl ====================================================================
199 dnl Check if db.h is Berkeley DB2
201 dnl defines ol_cv_header_db2 to 'yes' or 'no'
204 dnl AC_CHECK_HEADERS(db.h)
206 AC_DEFUN([OL_HEADER_BERKELEY_DB2],
207 [AC_CHECK_HEADERS(db.h)
208 if test $ac_cv_header_db_h = yes ; then
209 AC_CACHE_CHECK([if db.h is DB2], [ol_cv_header_db2],[
210 AC_EGREP_CPP(__db_version_2,[
212 /* this check could be improved */
213 # ifdef DB_VERSION_MAJOR
214 # if DB_VERSION_MAJOR == 2
218 ], ol_cv_header_db2=yes, ol_cv_header_db2=no)])
223 dnl --------------------------------------------------------------------
224 dnl Check if Berkeley DB2 library exists
225 dnl Check for dbopen in standard libraries or -ldb
227 dnl defines ol_cv_lib_db2 to '-ldb' or 'no'
230 dnl AC_CHECK_LIB(db,db_open)
232 AC_DEFUN([OL_LIB_BERKELEY_DB2],
233 [AC_CACHE_CHECK([for DB2 library], [ol_cv_lib_db2],
235 AC_CHECK_LIB(db,db_open,[ol_cv_lib_db2=-ldb],[ol_cv_lib_db2=no])
240 dnl --------------------------------------------------------------------
241 dnl Check if Berkeley db2 exists
243 dnl defines ol_cv_berkeley_db2 to 'yes' or 'no'
246 dnl OL_LIB_BERKELEY_DB2
247 dnl OL_HEADER_BERKELEY_DB2
249 AC_DEFUN([OL_BERKELEY_DB2],
250 [AC_REQUIRE([OL_LIB_BERKELEY_DB2])
251 AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
252 AC_CACHE_CHECK([for Berkeley DB2], [ol_cv_berkeley_db2], [
253 if test "$ol_cv_lib_db2" = no -o "$ol_cv_header_db2" = no ; then
254 ol_cv_berkeley_db2=no
256 ol_cv_berkeley_db2=yes
259 if test $ol_cv_berkeley_db2 = yes ; then
260 AC_DEFINE(HAVE_BERKELEY_DB2,1, [define if Berkeley DBv2 is available])
264 dnl ====================================================================
265 dnl Check for db.h/db_185.h is Berkeley DB
267 dnl defines ol_cv_header_db to 'yes' or 'no'
270 dnl OL_HEADER_BERKELEY_DB2
271 dnl AC_CHECK_HEADERS(db_185.h)
273 AC_DEFUN([OL_HEADER_BERKELEY_DB],
274 [AC_REQUIRE([OL_HEADER_BERKELEY_DB2])
275 AC_CHECK_HEADERS(db_185.h)
276 if test "$ol_cv_header_db2" = yes ; then
279 ol_cv_header_db=$ac_cv_header_db_185_h
281 ol_cv_header_db=$ac_cv_header_db_h
285 dnl --------------------------------------------------------------------
286 dnl Check if Berkeley DB library exists
287 dnl Check for dbopen in standard libraries or -ldb
289 dnl defines ol_cv_lib_db to 'yes' or '-ldb' or 'no'
290 dnl 'yes' implies dbopen is in $LIBS
293 dnl AC_CHECK_FUNC(dbopen)
294 dnl AC_CHECK_LIB(db,dbopen)
296 AC_DEFUN([OL_LIB_BERKELEY_DB],
297 [AC_CACHE_CHECK([for Berkeley DB library], [ol_cv_lib_db],
299 AC_CHECK_HEADERS(db1/db.h)
301 AC_CHECK_FUNC(dbopen,[ol_cv_lib_db=yes], [
302 AC_CHECK_LIB(db1,dbopen,[ol_cv_lib_db=-ldb1],[
303 AC_CHECK_LIB(db,dbopen,[ol_cv_lib_db=-ldb],
311 dnl --------------------------------------------------------------------
312 dnl Check if Berkeley DB exists
314 dnl defines ol_cv_berkeley_db to 'yes' or 'no'
317 dnl OL_LIB_BERKELEY_DB
318 dnl OL_HEADER_BERKELEY_DB
320 AC_DEFUN([OL_BERKELEY_DB],
321 [AC_REQUIRE([OL_LIB_BERKELEY_DB])
322 AC_REQUIRE([OL_HEADER_BERKELEY_DB])
323 AC_CACHE_CHECK([for Berkeley DB], [ol_cv_berkeley_db], [
324 if test "$ol_cv_lib_db" = no -o "$ol_cv_header_db" = no ; then
327 ol_cv_berkeley_db=yes
330 if test $ol_cv_berkeley_db = yes ; then
331 AC_DEFINE(HAVE_BERKELEY_DB,1, [define if Berkeley DB is available])
335 dnl ====================================================================
336 dnl Check if GDBM library exists
337 dnl Check for gdbm_open in standard libraries or -lgdbm
339 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
340 dnl 'yes' implies gdbm_open is in $LIBS
343 dnl AC_CHECK_FUNC(gdbm_open)
344 dnl AC_CHECK_LIB(gdbm,gdbm_open)
346 AC_DEFUN([OL_LIB_GDBM],
347 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
349 AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
350 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
356 dnl --------------------------------------------------------------------
357 dnl Check if GDBM exists
359 dnl defines ol_cv_gdbm to 'yes' or 'no'
363 dnl AC_CHECK_HEADERS(gdbm.h)
366 [AC_REQUIRE([OL_LIB_GDBM])
367 AC_CHECK_HEADERS(gdbm.h)
368 AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
369 if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
375 if test $ol_cv_gdbm = yes ; then
376 AC_DEFINE(HAVE_GDBM,1, [define if GNU DBM is available])
380 dnl ====================================================================
381 dnl Check if MDBM library exists
382 dnl Check for mdbm_open in standard libraries or -lmdbm
384 dnl defines ol_cv_lib_mdbm to 'yes' or '-lmdbm' or 'no'
385 dnl 'yes' implies mdbm_open is in $LIBS
388 dnl AC_CHECK_FUNC(mdbm_set_chain)
389 dnl AC_CHECK_LIB(mdbm,mdbm_set_chain)
391 AC_DEFUN([OL_LIB_MDBM],
392 [AC_CACHE_CHECK(for MDBM library, [ol_cv_lib_mdbm],
394 AC_CHECK_FUNC(mdbm_set_chain,[ol_cv_lib_mdbm=yes], [
395 AC_CHECK_LIB(mdbm,mdbm_set_chain,[ol_cv_lib_mdbm=-lmdbm],[ol_cv_lib_mdbm=no])
401 dnl --------------------------------------------------------------------
402 dnl Check if MDBM exists
404 dnl defines ol_cv_mdbm to 'yes' or 'no'
408 dnl AC_CHECK_HEADERS(mdbm.h)
411 [AC_REQUIRE([OL_LIB_MDBM])
412 AC_CHECK_HEADERS(mdbm.h)
413 AC_CACHE_CHECK(for db, [ol_cv_mdbm], [
414 if test $ol_cv_lib_mdbm = no -o $ac_cv_header_mdbm_h = no ; then
420 if test $ol_cv_mdbm = yes ; then
421 AC_DEFINE(HAVE_MDBM,1, [define if MDBM is available])
425 dnl ====================================================================
426 dnl Check if NDBM library exists
427 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
429 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
430 dnl 'yes' implies ndbm_open is in $LIBS
433 dnl AC_CHECK_FUNC(dbm_open)
434 dnl AC_CHECK_LIB(ndbm,dbm_open)
435 dnl AC_CHECK_LIB(dbm,dbm_open)
438 dnl should also check SVR4 case: dbm_open() in -lucb but that
439 dnl would requiring dealing with -L/usr/ucblib
441 AC_DEFUN([OL_LIB_NDBM],
442 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
444 AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
445 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
446 AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
447 [ol_cv_lib_ndbm=no])dnl
454 dnl --------------------------------------------------------------------
455 dnl Check if NDBM exists
457 dnl defines ol_cv_ndbm to 'yes' or 'no'
461 dnl AC_CHECK_HEADERS(ndbm.h)
464 dnl Doesn't handle SVR4 case (see above)
467 [AC_REQUIRE([OL_LIB_NDBM])
468 AC_CHECK_HEADERS(ndbm.h)
469 AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
470 if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
476 if test $ol_cv_ndbm = yes ; then
477 AC_DEFINE(HAVE_NDBM,1, [define if NDBM is available])
481 dnl ====================================================================
482 dnl Check POSIX Thread version
484 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
485 dnl 'unknown' implies that the version could not be detected
486 dnl or that pthreads.h does exist. Existance of pthreads.h
487 dnl should be tested separately.
489 AC_DEFUN([OL_POSIX_THREAD_VERSION],
490 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
491 AC_EGREP_CPP(pthread_version_final,[
492 # include <pthread.h>
493 /* this check could be improved */
494 # ifdef PTHREAD_ONCE_INIT
495 pthread_version_final
497 ], ol_pthread_final=yes, ol_pthread_final=no)
499 AC_EGREP_CPP(pthread_version_draft4,[
500 # include <pthread.h>
501 /* this check could be improved */
502 # ifdef pthread_once_init
503 pthread_version_draft4
505 ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
507 if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
508 ol_cv_pthread_version=final
509 elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
510 ol_cv_pthread_version=draft4
512 ol_cv_pthread_version=unknown
517 dnl --------------------------------------------------------------------
518 AC_DEFUN([OL_PTHREAD_TRY_LINK], [# Pthread try link: $1 ($2)
519 if test "$ol_link_threads" = no ; then
521 AC_CACHE_CHECK([for pthread link with $1], [$2], [
529 #define NULL (void*)0
535 pthread_create(&t, pthread_attr_default, NULL, NULL);
536 pthread_detach( &t );
538 pthread_create(&t, NULL, NULL, NULL);
541 #ifdef HAVE_LINUX_THREADS
542 pthread_kill_other_threads_np();
544 ], [$2=yes], [$2=no])
550 if test $$2 = yes ; then
551 ol_link_pthreads="$1"
552 ol_link_threads=posix
557 dnl ====================================================================
558 dnl Check LinuxThreads Header
560 dnl defines ol_cv_header linux_threads to 'yes' or 'no'
561 dnl 'no' implies pthreads.h is not LinuxThreads or pthreads.h
562 dnl doesn't exists. Existance of pthread.h should separately
565 AC_DEFUN([OL_HEADER_LINUX_THREADS], [
566 AC_CACHE_CHECK([for LinuxThreads pthread.h],
567 [ol_cv_header_linux_threads],
568 [AC_EGREP_CPP(pthread_kill_other_threads_np,
569 [#include <pthread.h>],
570 [ol_cv_header_linux_threads=yes],
571 [ol_cv_header_linux_threads=no])
573 if test $ol_cv_header_linux_threads = yes; then
574 AC_DEFINE(HAVE_LINUX_THREADS,1,[if you have LinuxThreads])
577 dnl --------------------------------------------------------------------
578 dnl Check LinuxThreads Implementation
580 dnl defines ol_cv_sys_linux_threads to 'yes' or 'no'
581 dnl 'no' implies pthreads implementation is not LinuxThreads.
583 AC_DEFUN([OL_SYS_LINUX_THREADS], [
584 AC_CHECK_FUNC(pthread_kill_other_threads_np)
585 AC_CACHE_CHECK([for LinuxThreads implementation],
586 [ol_cv_sys_linux_threads],
587 [ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np])
590 dnl --------------------------------------------------------------------
591 dnl Check LinuxThreads consistency
592 AC_DEFUN([OL_LINUX_THREADS], [
593 AC_REQUIRE([OL_HEADER_LINUX_THREADS])
594 AC_REQUIRE([OL_SYS_LINUX_THREADS])
595 AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [
596 if test $ol_cv_header_linux_threads = yes -a \
597 $ol_cv_sys_linux_threads = yes; then
598 ol_cv_linux_threads=yes
599 elif test $ol_cv_header_linux_threads = no -a \
600 $ol_cv_sys_linux_threads = no; then
601 ol_cv_linux_threads=no
603 ol_cv_linux_threads=error
608 dnl ====================================================================
609 dnl Check if toupper() requires islower() to be called first
610 AC_DEFUN([OL_C_UPPER_LOWER],
612 AC_MSG_CHECKING([if toupper() requires islower()])
613 AC_CACHE_VAL(ol_cv_c_upper_lower,[
618 if ('C' == toupper('C'))
623 [ol_cv_c_upper_lower=no],
624 [ol_cv_c_upper_lower=yes],
625 [ol_cv_c_upper_lower=safe])])
626 AC_MSG_RESULT($ol_cv_c_upper_lower)
627 if test $ol_cv_c_upper_lower != no ; then
628 AC_DEFINE(C_UPPER_LOWER,1, [define if toupper() requires islower()])
632 dnl ====================================================================
633 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
634 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
635 dnl Reported by Keith Bostic.
636 AC_DEFUN([OL_SYS_ERRLIST],
638 AC_MSG_CHECKING([declaration of sys_errlist])
639 AC_CACHE_VAL(ol_cv_dcl_sys_errlist,[
642 #include <sys/types.h>
643 #include <errno.h> ],
644 [char *c = (char *) *sys_errlist],
645 [ol_cv_dcl_sys_errlist=yes],
646 [ol_cv_dcl_sys_errlist=no])])
647 AC_MSG_RESULT($ol_cv_dcl_sys_errlist)
648 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
649 if test $ol_cv_dcl_sys_errlist = no ; then
650 AC_DEFINE(DECL_SYS_ERRLIST,1,
651 [define if sys_errlist is not declared in stdio.h or errno.h])
652 AC_MSG_CHECKING([existence of sys_errlist])
653 AC_CACHE_VAL(ol_cv_have_sys_errlist,[
654 AC_TRY_LINK([#include <errno.h>],
655 [char *c = (char *) *sys_errlist],
656 [ol_cv_have_sys_errlist=yes],
657 [ol_cv_have_sys_errlist=no])])
658 AC_MSG_RESULT($ol_cv_have_sys_errlist)
659 if test $ol_cv_have_sys_errlist = yes ; then
660 AC_DEFINE(HAVE_SYS_ERRLIST,1,
661 [define if you actually have sys_errlist in your libs])
666 dnl ====================================================================
667 dnl Early MIPS compilers (used in Ultrix 4.2) don't like
668 dnl "int x; int *volatile a = &x; *a = 0;"
669 dnl -- borrowed from PDKSH
670 AC_DEFUN(OL_C_VOLATILE,
671 [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
672 [AC_TRY_COMPILE([int x, y, z;],
673 [volatile int a; int * volatile b = x ? &y : &z;
674 /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
675 *b = 0;], ol_cv_c_volatile=yes, ol_cv_c_volatile=no)])
676 if test $ol_cv_c_volatile = yes; then
683 dnl ====================================================================
684 dnl Define sig_atomic_t if not defined in signal.h
685 AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
686 [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
687 [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
688 ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
689 if test $ol_cv_type_sig_atomic_t = no; then
690 AC_DEFINE(sig_atomic_t, int)
694 dnl ====================================================================
695 dnl check no of arguments for ctime_r
696 AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
697 [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
698 [AC_TRY_COMPILE([#include <time.h>],
699 [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
700 ol_cv_func_ctime_r_nargs=3,
701 [AC_TRY_COMPILE([#include <time.h>],
702 [time_t ti; char *buffer; ctime_r(&ti,buffer);],
703 ol_cv_func_ctime_r_nargs=2,
704 ol_cv_func_ctime_r_nargs=0)])])
705 if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
706 AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
707 [set to the number of arguments ctime_r() expects])
711 dnl --------------------------------------------------------------------
712 dnl check return type of ctime_r()
713 AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
714 [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
715 [AC_TRY_COMPILE([#include <time.h>],
716 [extern int (ctime_r)();],
717 ol_cv_func_ctime_r_type="int", ol_cv_func_ctime_r_type="charp")
719 if test $ol_cv_func_ctime_r_type = "int" ; then
720 AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
723 dnl ====================================================================
724 dnl check no of arguments for gethostbyname_r
725 AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
726 [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
727 ol_cv_func_gethostbyname_r_nargs,
728 [AC_TRY_COMPILE([#include <sys/types.h>
729 #include <sys/socket.h>
730 #include <netinet/in.h>
732 #define BUFSIZE (sizeof(struct hostent)+10)],
733 [struct hostent hent; char buffer[BUFSIZE];
734 int bufsize=BUFSIZE;int h_errno;
735 (void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
736 buffer, bufsize, &h_errno);],
737 ol_cv_func_gethostbyname_r_nargs=5,
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;struct hostent *rhent;
744 char buffer[BUFSIZE];
745 int bufsize=BUFSIZE;int h_errno;
746 (void)gethostbyname_r("localhost", &hent, buffer, bufsize,
748 ol_cv_func_gethostbyname_r_nargs=6,
749 ol_cv_func_gethostbyname_r_nargs=0)])])
750 if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
751 AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
752 $ol_cv_func_gethostbyname_r_nargs,
753 [set to the number of arguments gethostbyname_r() expects])
757 dnl check no of arguments for gethostbyaddr_r
758 AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
759 [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
760 [ol_cv_func_gethostbyaddr_r_nargs],
761 [AC_TRY_COMPILE([#include <sys/types.h>
762 #include <sys/socket.h>
763 #include <netinet/in.h>
765 #define BUFSIZE (sizeof(struct hostent)+10)],
766 [struct hostent hent; char buffer[BUFSIZE];
768 size_t alen=sizeof(struct in_addr);
769 int bufsize=BUFSIZE;int h_errno;
770 (void)gethostbyaddr_r( (void *)&(add.s_addr),
771 alen, AF_INET, &hent, buffer, bufsize, &h_errno);],
772 ol_cv_func_gethostbyaddr_r_nargs=7,
773 [AC_TRY_COMPILE([#include <sys/types.h>
774 #include <sys/socket.h>
775 #include <netinet/in.h>
777 #define BUFSIZE (sizeof(struct hostent)+10)],
778 [struct hostent hent;
779 struct hostent *rhent; char buffer[BUFSIZE];
781 size_t alen=sizeof(struct in_addr);
782 int bufsize=BUFSIZE;int h_errno;
783 (void)gethostbyaddr_r( (void *)&(add.s_addr),
784 alen, AF_INET, &hent, buffer, bufsize,
786 ol_cv_func_gethostbyaddr_r_nargs=8,
787 ol_cv_func_gethostbyaddr_r_nargs=0)])])
788 if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
789 AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
790 $ol_cv_func_gethostbyaddr_r_nargs,
791 [set to the number of arguments gethostbyaddr_r() expects])