]> git.sur5r.net Git - openldap/blob - build/openldap.m4
More updates.
[openldap] / build / openldap.m4
1 dnl $OpenLDAP$
2 dnl
3 dnl Copyright 1998-2000 The OpenLDAP Foundation,  All Rights Reserved.
4 dnl COPYING RESTRICTIONS APPLY, See COPYRIGHT file
5 dnl
6 dnl OpenLDAP Autoconf Macros
7 dnl
8 dnl --------------------------------------------------------------------
9 dnl Restricted form of AC_ARG_ENABLE that limits user options
10 dnl
11 dnl $1 = option name
12 dnl $2 = help-string
13 dnl $3 = default value  (auto)
14 dnl $4 = allowed values (auto yes no)
15 AC_DEFUN([OL_ARG_ENABLE], [# OpenLDAP --enable-$1
16         AC_ARG_ENABLE($1,changequote(<,>)<$2 [>ifelse($3,,auto,$3)<]>changequote([,]),[
17         ol_arg=invalid
18         for ol_val in ifelse($4,,[auto yes no],[$4]) ; do
19                 if test "$enableval" = "$ol_val" ; then
20                         ol_arg="$ol_val"
21                 fi
22         done
23         if test "$ol_arg" = "invalid" ; then
24                 AC_MSG_ERROR(bad value $enableval for --enable-$1)
25         fi
26         ol_enable_$1="$ol_arg"
27 ],
28 [       ol_enable_$1=ifelse($3,,"auto","$3")])dnl
29 dnl AC_VERBOSE(OpenLDAP -enable-$1 $ol_enable_$1)
30 # end --enable-$1
31 ])dnl
32 dnl
33 dnl --------------------------------------------------------------------
34 dnl Restricted form of AC_ARG_WITH that limits user options
35 dnl
36 dnl $1 = option name
37 dnl $2 = help-string
38 dnl $3 = default value (no)
39 dnl $4 = allowed values (yes or no)
40 AC_DEFUN([OL_ARG_WITH], [# OpenLDAP --with-$1
41         AC_ARG_WITH($1,changequote(<,>)<$2 [>ifelse($3,,yes,$3)<]>changequote([,]),[
42         ol_arg=invalid
43         for ol_val in ifelse($4,,[yes no],[$4]) ; do
44                 if test "$withval" = "$ol_val" ; then
45                         ol_arg="$ol_val"
46                 fi
47         done
48         if test "$ol_arg" = "invalid" ; then
49                 AC_MSG_ERROR(bad value $withval for --with-$1)
50         fi
51         ol_with_$1="$ol_arg"
52 ],
53 [       ol_with_$1=ifelse($3,,"no","$3")])dnl
54 dnl AC_VERBOSE(OpenLDAP --with-$1 $ol_with_$1)
55 # end --with-$1
56 ])dnl
57 dnl
58 dnl ====================================================================
59 dnl
60 AC_DEFUN(AC_COMPILE_CHECK_SIZEOF,
61 [changequote(<<, >>)dnl 
62 dnl The name to #define. 
63 define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl 
64 dnl The cache variable name. 
65 define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl 
66 changequote([, ])dnl 
67 AC_MSG_CHECKING(size of $1) 
68 AC_CACHE_VAL(AC_CV_NAME, 
69 [for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence. 
70   AC_TRY_COMPILE([#include "confdefs.h" 
71 #include <sys/types.h> 
72 $2 
73 ], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size) 
74   if test x$AC_CV_NAME != x ; then break; fi 
75 done 
76 ]) 
77 if test x$AC_CV_NAME = x ; then 
78   AC_MSG_ERROR([cannot determine a size for $1]) 
79 fi 
80 AC_MSG_RESULT($AC_CV_NAME) 
81 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1]) 
82 undefine([AC_TYPE_NAME])dnl 
83 undefine([AC_CV_NAME])dnl 
84 ])
85 dnl ====================================================================
86 dnl check if hard links are supported.
87 dnl
88 AC_DEFUN([OL_PROG_LN_H], [# test for ln hardlink support
89 AC_MSG_CHECKING(whether ln works)
90 AC_CACHE_VAL(ol_cv_prog_LN_H,
91 [rm -f conftest.src conftest.dst
92 echo "conftest" > conftest.src
93 if ln conftest.src conftest.dst 2>/dev/null
94 then
95   ol_cv_prog_LN_H="ln"
96 else
97   ol_cv_prog_LN_H="cp"
98 fi
99 rm -f conftest.src conftest.dst
100 ])dnl
101 LN_H="$ol_cv_prog_LN_H"
102 if test "$ol_cv_prog_LN_H" = "ln"; then
103         AC_MSG_RESULT(yes)
104 else
105         AC_MSG_RESULT(no)
106 fi
107 AC_SUBST(LN_H)dnl
108 ])dnl
109 dnl
110 dnl ====================================================================
111 dnl Check for dependency generation flag
112 AC_DEFUN([OL_MKDEPEND], [# test for make depend flag
113 OL_MKDEP=
114 OL_MKDEP_FLAGS=
115 if test -z "${MKDEP}"; then
116         OL_MKDEP="${CC-cc}"
117         if test -z "${MKDEP_FLAGS}"; then
118                 AC_CACHE_CHECK([for ${OL_MKDEP} depend flag], ol_cv_mkdep, [
119                         ol_cv_mkdep=no
120                         for flag in "-M" "-xM"; do
121                                 cat > conftest.c <<EOF
122  noCode;
123 EOF
124                                 if AC_TRY_COMMAND($OL_MKDEP $flag conftest.c) \
125                                         | egrep '^conftest\.'"${ac_objext}" >/dev/null 2>&1
126                                 then
127                                         if test ! -f conftest."${ac_object}" ; then
128                                                 ol_cv_mkdep=$flag
129                                                 OL_MKDEP_FLAGS="$flag"
130                                                 break
131                                         fi
132                                 fi
133                         done
134                         rm -f conftest*
135                 ])
136         else
137                 cc_cv_mkdep=yes
138                 OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
139         fi
140 else
141         cc_cv_mkdep=yes
142         OL_MKDEP="${MKDEP}"
143         OL_MKDEP_FLAGS="${MKDEP_FLAGS}"
144 fi
145 AC_SUBST(OL_MKDEP)
146 AC_SUBST(OL_MKDEP_FLAGS)
147 ])
148 dnl
149 dnl ====================================================================
150 dnl Check if system uses EBCDIC instead of ASCII
151 AC_DEFUN([OL_CPP_EBCDIC], [# test for EBCDIC
152 AC_CACHE_CHECK([for EBCDIC],ol_cv_cpp_ebcdic,[
153         AC_TRY_CPP([
154 #if !('M' == 0xd4)
155 #include <__ASCII__/generate_error.h>
156 #endif
157 ],
158         [ol_cv_cpp_ebcdic=yes],
159         [ol_cv_cpp_ebcdic=no])])
160 if test $ol_cv_cpp_ebcdic = yes ; then
161         AC_DEFINE(HAVE_EBCDIC,1, [define if system uses EBCDIC instead of ASCII])
162 fi
163 ])
164 dnl
165 dnl --------------------------------------------------------------------
166 dnl OpenLDAP version of STDC header check w/ EBCDIC support
167 AC_DEFUN(OL_HEADER_STDC,
168 [AC_REQUIRE_CPP()dnl
169 AC_REQUIRE([OL_CPP_EBCDIC])dnl
170 AC_CACHE_CHECK([for ANSI C header files], ol_cv_header_stdc,
171 [AC_TRY_CPP([#include <stdlib.h>
172 #include <stdarg.h>
173 #include <string.h>
174 #include <float.h>], ol_cv_header_stdc=yes, ol_cv_header_stdc=no)
175
176 if test $ol_cv_header_stdc = yes; then
177   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
178 AC_EGREP_HEADER(memchr, string.h, , ol_cv_header_stdc=no)
179 fi
180
181 if test $ol_cv_header_stdc = yes; then
182   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
183 AC_EGREP_HEADER(free, stdlib.h, , ol_cv_header_stdc=no)
184 fi
185
186 if test $ol_cv_header_stdc = yes; then
187   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
188 AC_TRY_RUN([#include <ctype.h>
189 #ifndef HAVE_EBCDIC
190 #       define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
191 #       define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
192 #else
193 #       define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
194                 || ('j' <= (c) && (c) <= 'r') \
195                 || ('s' <= (c) && (c) <= 'z'))
196 #       define TOUPPER(c)       (ISLOWER(c) ? ((c) | 0x40) : (c))
197 #endif
198 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
199 int main () { int i; for (i = 0; i < 256; i++)
200 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
201 exit (0); }
202 ], , ol_cv_header_stdc=no, :)
203 fi])
204 if test $ol_cv_header_stdc = yes; then
205   AC_DEFINE(STDC_HEADERS)
206 fi
207 ac_cv_header_stdc=disable
208 ])
209 dnl
210 dnl ====================================================================
211 dnl Check if struct passwd has pw_gecos
212 AC_DEFUN([OL_STRUCT_PASSWD_PW_GECOS], [# test for pw_gecos in struct passwd
213 AC_CACHE_CHECK([struct passwd for pw_gecos],ol_cv_struct_passwd_pw_gecos,[
214         AC_TRY_COMPILE([#include <pwd.h>],[
215         struct passwd pwd;
216         pwd.pw_gecos = pwd.pw_name;
217 ],
218         [ol_cv_struct_passwd_pw_gecos=yes],
219         [ol_cv_struct_passwd_pw_gecos=no])])
220 if test $ol_cv_struct_passwd_pw_gecos = yes ; then
221         AC_DEFINE(HAVE_PW_GECOS,1, [define if struct passwd has pw_gecos])
222 fi
223 ])
224 dnl
225 dnl --------------------------------------------------------------------
226 dnl Check if struct passwd has pw_passwd
227 AC_DEFUN([OL_STRUCT_PASSWD_PW_PASSWD], [# test for pw_passwd in struct passwd
228 AC_CACHE_CHECK([struct passwd for pw_passwd],ol_cv_struct_passwd_pw_passwd,[
229         AC_TRY_COMPILE([#include <pwd.h>],[
230         struct passwd pwd;
231         pwd.pw_passwd = pwd.pw_name;
232 ],
233         [ol_cv_struct_passwd_pw_passwd=yes],
234         [ol_cv_struct_passwd_pw_passwd=no])])
235 if test $ol_cv_struct_passwd_pw_passwd = yes ; then
236         AC_DEFINE(HAVE_PW_PASSWD,1, [define if struct passwd has pw_passwd])
237 fi
238 ])
239 dnl
240 dnl ====================================================================
241 dnl Berkeley DB macros
242 dnl
243 dnl --------------------------------------------------------------------
244 dnl Try to link
245 AC_DEFUN([OL_BERKELEY_DB_TRY],
246 [if test $ol_cv_lib_db = no ; then
247         AC_CACHE_CHECK([for Berkeley DB link (]ifelse($2,,default,$2)[)],[$1],
248 [
249         ol_DB_LIB=ifelse($2,,,$2)
250         ol_LIBS=$LIBS
251         LIBS="$ol_DB_LIB $LIBS"
252
253         AC_TRY_LINK([
254 #ifdef HAVE_DB_185_H
255 # include <db_185.h>
256 #else
257 # include <db.h>
258 #endif
259
260 #ifndef DB_VERSION_MAJOR
261 # define DB_VERSION_MAJOR 1
262 #endif
263
264 #ifndef NULL
265 #define NULL ((void*)0)
266 #endif
267 ],[
268 #if DB_VERSION_MAJOR > 1
269         {
270                 char *version;
271                 int major, minor, patch;
272
273                 version = db_version( &major, &minor, &patch );
274
275                 if( major != DB_VERSION_MAJOR ||
276                         minor < DB_VERSION_MINOR )
277                 {
278                         printf("Berkeley DB version mismatch\n"
279                                 "\texpected: %s\n\tgot: %s\n",
280                                 DB_VERSION_STRING, version);
281                         return 1;
282                 }
283         }
284 #endif
285
286 #if DB_VERSION_MAJOR > 2
287         db_env_create( NULL, 0 );
288 #elif DB_VERSION_MAJOR > 1
289         db_appexit( NULL );
290 #else
291         (void) dbopen( NULL, 0, 0, 0, NULL);
292 #endif
293 ],[$1=yes],[$1=no])
294
295         LIBS="$ol_LIBS"
296 ])
297
298         if test $$1 = yes ; then
299                 ol_cv_lib_db=ifelse($2,,yes,$2)
300         fi
301 fi
302 ])
303 dnl
304 dnl --------------------------------------------------------------------
305 dnl Try to locate appropriate library
306 AC_DEFUN([OL_BERKELEY_DB_LINK],
307 [ol_cv_lib_db=no
308 OL_BERKELEY_DB_TRY(ol_cv_db_none)
309 OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
310 OL_BERKELEY_DB_TRY(ol_cv_db_db3,[-ldb3])
311 OL_BERKELEY_DB_TRY(ol_cv_db_db2,[-ldb2])
312 OL_BERKELEY_DB_TRY(ol_cv_db_db1,[-ldb1])
313 ])
314 dnl
315 dnl --------------------------------------------------------------------
316 dnl Check if Berkeley DB supports DB_THREAD
317 AC_DEFUN([OL_BERKELEY_DB_THREAD],
318 [AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [
319         ol_LIBS="$LIBS"
320         if test $ol_cv_lib_db != yes ; then
321                 LIBS="$ol_cv_lib_db"
322         fi
323
324         AC_TRY_RUN([
325 #ifdef HAVE_DB_185_H
326         choke me;
327 #else
328 #include <db.h>
329 #endif
330 #ifndef NULL
331 #define NULL ((void *)0)
332 #endif
333 main()
334 {
335         int rc;
336         u_int32_t flags = DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL |
337 #ifdef DB_PRIVATE
338                 DB_PRIVATE |
339 #endif
340 #ifdef DB_MPOOL_PRIVATE
341                 DB_MPOOL_PRIVATE |
342 #endif
343                 DB_THREAD;
344
345 #if DB_VERSION_MAJOR > 2
346         DB_ENV *env = NULL;
347
348         rc = db_env_create( &env, 0 );
349
350         if( rc ) {
351                 printf("BerkeleyDB: %s\n", db_strerror(rc) );
352                 return rc;
353         }
354
355 #ifdef DB_CDB_ALLDB
356         rc = env->set_flags( env, DB_CDB_ALLDB, 1 );
357
358         if( rc ) {
359                 printf("BerkeleyDB: %s\n", db_strerror(rc) );
360                 return rc;
361         }
362 #endif
363
364 #if (DB_VERSION_MAJOR > 3) || (DB_VERSION_MINOR >= 1)
365         rc = env->open( env, NULL, flags, 0 );
366 #else
367         rc = env->open( env, NULL, NULL, flags, 0 );
368 #endif
369
370         if ( rc == 0 ) {
371                 rc = env->close( env, 0 );
372         }
373
374         if( rc ) {
375                 printf("BerkeleyDB: %s\n", db_strerror(rc) );
376                 return rc;
377         }
378
379 #else
380         DB_ENV env;
381         memset( &env, '\0', sizeof(env) );
382
383         rc = db_appinit( NULL, NULL, &env, flags );
384
385         if( rc == 0 ) {
386                 db_appexit( &env );
387         }
388
389         unlink("__db_mpool.share");
390         unlink("__db_lock.share");
391 #endif
392
393         return rc;
394 }],
395         [ol_cv_berkeley_db_thread=yes],
396         [ol_cv_berkeley_db_thread=no],
397         [ol_cv_berkeley_db_thread=cross])
398
399         LIBS="$ol_LIBS"
400
401         if test $ol_cv_berkeley_db_thread != no ; then
402                 AC_DEFINE(HAVE_BERKELEY_DB_THREAD, 1,
403                         [define if Berkeley DB has DB_THREAD support])
404         fi
405 ])])dnl
406 dnl
407 dnl --------------------------------------------------------------------
408 dnl Find any DB
409 AC_DEFUN([OL_BERKELEY_DB],
410 [ol_cv_berkeley_db=no
411 AC_CHECK_HEADERS(db.h)
412 if test $ac_cv_header_db_h = yes; then
413         OL_BERKELEY_DB_LINK
414         if test "$ol_cv_lib_db" != no ; then
415                 ol_cv_berkeley_db=yes
416                 OL_BERKELEY_DB_THREAD
417         fi
418 fi
419 ])
420 dnl
421 dnl --------------------------------------------------------------------
422 dnl Find old Berkeley DB 1.85/1.86
423 AC_DEFUN([OL_BERKELEY_COMPAT_DB],
424 [ol_cv_berkeley_db=no
425 AC_CHECK_HEADERS(db_185.h db.h)
426 if test $ac_cv_header_db_185_h = yes -o $ac_cv_header_db_h = yes; then
427         AC_CACHE_CHECK([if Berkeley DB header compatibility], [ol_cv_header_db1],[
428                 AC_EGREP_CPP(__db_version_1,[
429 #if HAVE_DB_185_H
430 #       include <db_185.h>
431 #else
432 #       include <db.h>
433 #endif
434
435  /* this check could be improved */
436 #ifndef DB_VERSION_MAJOR
437 #       define DB_VERSION_MAJOR 1
438 #endif
439
440 #if DB_VERSION_MAJOR == 1 
441         __db_version_1
442 #endif
443 ],      [ol_cv_header_db1=yes], [ol_cv_header_db1=no])])
444
445         if test $ol_cv_header_db1 = yes ; then
446                 OL_BERKELEY_DB_LINK
447                 if test "$ol_cv_lib_db" != no ; then
448                         ol_cv_berkeley_db=yes
449                 fi
450         fi
451 fi
452 ])
453 dnl
454 dnl ====================================================================
455 dnl Check if GDBM library exists
456 dnl Check for gdbm_open in standard libraries or -lgdbm
457 dnl
458 dnl defines ol_cv_lib_gdbm to 'yes' or '-lgdbm' or 'no'
459 dnl             'yes' implies gdbm_open is in $LIBS
460 dnl
461 dnl uses:
462 dnl             AC_CHECK_FUNC(gdbm_open)
463 dnl             AC_CHECK_LIB(gdbm,gdbm_open)
464 dnl
465 AC_DEFUN([OL_LIB_GDBM],
466 [AC_CACHE_CHECK(for GDBM library, [ol_cv_lib_gdbm],
467 [       ol_LIBS="$LIBS"
468         AC_CHECK_FUNC(gdbm_open,[ol_cv_lib_gdbm=yes], [
469                 AC_CHECK_LIB(gdbm,gdbm_open,[ol_cv_lib_gdbm=-lgdbm],[ol_cv_lib_gdbm=no])
470         ])
471         LIBS="$ol_LIBS"
472 ])
473 ])dnl
474 dnl
475 dnl --------------------------------------------------------------------
476 dnl Check if GDBM exists
477 dnl
478 dnl defines ol_cv_gdbm to 'yes' or 'no'
479 dnl 
480 dnl uses:
481 dnl             OL_LIB_GDBM
482 dnl             AC_CHECK_HEADERS(gdbm.h)
483 dnl
484 AC_DEFUN([OL_GDBM],
485 [AC_REQUIRE([OL_LIB_GDBM])
486  AC_CHECK_HEADERS(gdbm.h)
487  AC_CACHE_CHECK(for db, [ol_cv_gdbm], [
488         if test $ol_cv_lib_gdbm = no -o $ac_cv_header_gdbm_h = no ; then
489                 ol_cv_gdbm=no
490         else
491                 ol_cv_gdbm=yes
492         fi
493 ])
494  if test $ol_cv_gdbm = yes ; then
495         AC_DEFINE(HAVE_GDBM,1, [define if GNU DBM is available])
496  fi
497 ])dnl
498 dnl
499 dnl ====================================================================
500 dnl Check if MDBM library exists
501 dnl Check for mdbm_open in standard libraries or -lmdbm
502 dnl
503 dnl defines ol_cv_lib_mdbm to 'yes' or '-lmdbm' or 'no'
504 dnl             'yes' implies mdbm_open is in $LIBS
505 dnl
506 dnl uses:
507 dnl             AC_CHECK_FUNC(mdbm_set_chain)
508 dnl             AC_CHECK_LIB(mdbm,mdbm_set_chain)
509 dnl
510 AC_DEFUN([OL_LIB_MDBM],
511 [AC_CACHE_CHECK(for MDBM library, [ol_cv_lib_mdbm],
512 [       ol_LIBS="$LIBS"
513         AC_CHECK_FUNC(mdbm_set_chain,[ol_cv_lib_mdbm=yes], [
514                 AC_CHECK_LIB(mdbm,mdbm_set_chain,[ol_cv_lib_mdbm=-lmdbm],[ol_cv_lib_mdbm=no])
515         ])
516         LIBS="$ol_LIBS"
517 ])
518 ])dnl
519 dnl
520 dnl --------------------------------------------------------------------
521 dnl Check if MDBM exists
522 dnl
523 dnl defines ol_cv_mdbm to 'yes' or 'no'
524 dnl 
525 dnl uses:
526 dnl             OL_LIB_MDBM
527 dnl             AC_CHECK_HEADERS(mdbm.h)
528 dnl
529 AC_DEFUN([OL_MDBM],
530 [AC_REQUIRE([OL_LIB_MDBM])
531  AC_CHECK_HEADERS(mdbm.h)
532  AC_CACHE_CHECK(for db, [ol_cv_mdbm], [
533         if test $ol_cv_lib_mdbm = no -o $ac_cv_header_mdbm_h = no ; then
534                 ol_cv_mdbm=no
535         else
536                 ol_cv_mdbm=yes
537         fi
538 ])
539  if test $ol_cv_mdbm = yes ; then
540         AC_DEFINE(HAVE_MDBM,1, [define if MDBM is available])
541  fi
542 ])dnl
543 dnl
544 dnl ====================================================================
545 dnl Check if NDBM library exists
546 dnl Check for dbm_open in standard libraries or -lndbm or -ldbm
547 dnl
548 dnl defines ol_cv_lib_ndbm to 'yes' or '-lndbm' or -ldbm or 'no'
549 dnl             'yes' implies ndbm_open is in $LIBS
550 dnl
551 dnl uses:
552 dnl             AC_CHECK_FUNC(dbm_open)
553 dnl             AC_CHECK_LIB(ndbm,dbm_open)
554 dnl             AC_CHECK_LIB(dbm,dbm_open)
555 dnl
556 dnl restrictions:
557 dnl             should also check SVR4 case: dbm_open() in -lucb but that
558 dnl             would requiring dealing with -L/usr/ucblib
559 dnl
560 AC_DEFUN([OL_LIB_NDBM],
561 [AC_CACHE_CHECK(for NDBM library, [ol_cv_lib_ndbm],
562 [       ol_LIBS="$LIBS"
563         AC_CHECK_FUNC(dbm_open,[ol_cv_lib_ndbm=yes], [
564                 AC_CHECK_LIB(ndbm,dbm_open,[ol_cv_lib_ndbm=-lndbm], [
565                         AC_CHECK_LIB(dbm,dbm_open,[ol_cv_lib_ndbm=-ldbm],
566                                 [ol_cv_lib_ndbm=no])dnl
567                 ])
568         ])
569         LIBS="$ol_LIBS"
570 ])
571 ])dnl
572 dnl
573 dnl --------------------------------------------------------------------
574 dnl Check if NDBM exists
575 dnl
576 dnl defines ol_cv_ndbm to 'yes' or 'no'
577 dnl 
578 dnl uses:
579 dnl             OL_LIB_NDBM
580 dnl             AC_CHECK_HEADERS(ndbm.h)
581 dnl
582 dnl restrictions:
583 dnl             Doesn't handle SVR4 case (see above)
584 dnl
585 AC_DEFUN([OL_NDBM],
586 [AC_REQUIRE([OL_LIB_NDBM])
587  AC_CHECK_HEADERS(ndbm.h)
588  AC_CACHE_CHECK(for db, [ol_cv_ndbm], [
589         if test $ol_cv_lib_ndbm = no -o $ac_cv_header_ndbm_h = no ; then
590                 ol_cv_ndbm=no
591         else
592                 ol_cv_ndbm=yes
593         fi
594 ])
595  if test $ol_cv_ndbm = yes ; then
596         AC_DEFINE(HAVE_NDBM,1, [define if NDBM is available])
597  fi
598 ])dnl
599 dnl
600 dnl ====================================================================
601 dnl Check POSIX Thread version 
602 dnl
603 dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
604 dnl     'unknown' implies that the version could not be detected
605 dnl             or that pthreads.h does exist.  Existance of pthreads.h
606 dnl             should be tested separately.
607 dnl
608 AC_DEFUN([OL_POSIX_THREAD_VERSION],
609 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
610         AC_EGREP_CPP(pthread_version_final,[
611 #               include <pthread.h>
612                 /* this check could be improved */
613 #               ifdef PTHREAD_ONCE_INIT
614                         pthread_version_final;
615 #               endif
616         ], ol_pthread_final=yes, ol_pthread_final=no)
617
618         AC_EGREP_CPP(pthread_version_draft4,[
619 #               include <pthread.h>
620                 /* this check could be improved */
621 #               ifdef pthread_once_init
622                         pthread_version_draft4;
623 #               endif
624         ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
625
626         if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
627                 ol_cv_pthread_version=final
628         elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
629                 ol_cv_pthread_version=draft4
630         else
631                 ol_cv_pthread_version=unknown
632         fi
633 ])
634 ])dnl
635 dnl
636 dnl --------------------------------------------------------------------
637 AC_DEFUN([OL_PTHREAD_TEST_INCLUDES],
638 [/* pthread test headers */
639 #include <pthread.h>
640 #ifndef NULL
641 #define NULL (void*)0
642 #endif
643
644 static void *task(p)
645         void *p;
646 {
647         return (void *) (p == NULL);
648 }
649 ])
650 AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[
651         /* pthread test function */
652         pthread_t t;
653         int status;
654         int detach = 1;
655
656 #ifdef HAVE_PTHREADS_FINAL
657         /* Final pthreads */
658         pthread_attr_t attr;
659
660         status = pthread_attr_init(&attr);
661         if( status ) return status;
662
663 #if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
664         if( !detach ) {
665 #if defined( PTHREAD_CREATE_JOINABLE )
666                 status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
667 #else
668                 status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
669 #endif
670
671 #ifdef PTHREAD_CREATE_DETACHED
672         } else {
673                 status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
674 #endif
675         }
676         if( status ) return status;
677 #endif
678
679         status = pthread_create( &t, &attr, task, NULL );
680         if( status ) return status;
681
682 #if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
683         if( detach ) {
684                 /* give thread a chance to complete */
685                 /* it should remain joinable and hence detachable */
686                 sleep( 1 );
687
688                 status = pthread_detach( t );
689                 if( status ) return status;
690         }
691 #endif
692
693 #else
694         /* Draft 4 pthreads */
695         status = pthread_create( &t, pthread_attr_default, task, NULL );
696         if( status ) return status;
697
698         if( detach ) {
699                 /* give thread a chance to complete */
700                 /* it should remain joinable and hence detachable */
701                 sleep( 1 );
702
703                 status = pthread_detach( &t );
704                 if( status ) return status;
705         }
706 #endif
707
708 #ifdef HAVE_LINUX_THREADS
709         pthread_kill_other_threads_np();
710 #endif
711
712         return 0;
713 ])
714
715 AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
716 [OL_PTHREAD_TEST_INCLUDES
717
718 int main(argc, argv)
719         int argc;
720         char **argv;
721 {
722 OL_PTHREAD_TEST_FUNCTION
723 }
724 ])
725 dnl --------------------------------------------------------------------
726 AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
727 if test "$ol_link_threads" = no ; then
728         # try $1
729         AC_CACHE_CHECK([for pthread link with $1], [$2], [
730                 # save the flags
731                 ol_LIBS="$LIBS"
732                 LIBS="$1 $LIBS"
733
734                 AC_TRY_RUN(OL_PTHREAD_TEST_PROGRAM,
735                         [$2=yes], [$2=no],
736                         [AC_TRY_LINK(OL_PTHREAD_TEST_INCLUDES,OL_PTHREAD_TEST_FUNCTION,
737                                 [$2=yes], [$2=no])])
738
739                 # restore the LIBS
740                 LIBS="$ol_LIBS"
741         ])
742
743         if test $$2 = yes ; then
744                 ol_link_pthreads="$1"
745                 ol_link_threads=posix
746         fi
747 fi
748 ])
749 dnl
750 dnl ====================================================================
751 dnl Check GNU Pth pthread Header
752 dnl
753 dnl defines ol_cv_header linux_threads to 'yes' or 'no'
754 dnl             'no' implies pthreads.h is not LinuxThreads or pthreads.h
755 dnl             doesn't exists.  Existance of pthread.h should separately
756 dnl             checked.
757 dnl 
758 AC_DEFUN([OL_HEADER_GNU_PTH_PTHREAD_H], [
759         AC_CACHE_CHECK([for GNU Pth pthread.h],
760                 [ol_cv_header_gnu_pth_pthread_h],
761                 [AC_EGREP_CPP(__gnu_pth__,
762                         [#include <pthread.h>
763 #ifdef _POSIX_THREAD_IS_GNU_PTH
764         __gnu_pth__;
765 #endif
766 ],
767                         [ol_cv_header_gnu_pth_pthread_h=yes],
768                         [ol_cv_header_gnu_pth_pthread_h=no])
769                 ])
770 ])dnl
771 dnl ====================================================================
772 dnl Check for NT Threads
773 AC_DEFUN([OL_NT_THREADS], [
774         AC_CHECK_FUNC(_beginthread)
775
776         if test $ac_cv_func__beginthread = yes ; then
777                 AC_DEFINE(HAVE_NT_THREADS,1,[if you have NT Threads])
778         fi
779 ])
780 dnl ====================================================================
781 dnl Check LinuxThreads Header
782 dnl
783 dnl defines ol_cv_header linux_threads to 'yes' or 'no'
784 dnl             'no' implies pthreads.h is not LinuxThreads or pthreads.h
785 dnl             doesn't exists.  Existance of pthread.h should separately
786 dnl             checked.
787 dnl 
788 AC_DEFUN([OL_HEADER_LINUX_THREADS], [
789         AC_CACHE_CHECK([for LinuxThreads pthread.h],
790                 [ol_cv_header_linux_threads],
791                 [AC_EGREP_CPP(pthread_kill_other_threads_np,
792                         [#include <pthread.h>],
793                         [ol_cv_header_linux_threads=yes],
794                         [ol_cv_header_linux_threads=no])
795                 ])
796         if test $ol_cv_header_linux_threads = yes; then
797                 AC_DEFINE(HAVE_LINUX_THREADS,1,[if you have LinuxThreads])
798         fi
799 ])dnl
800 dnl --------------------------------------------------------------------
801 dnl     Check LinuxThreads Implementation
802 dnl
803 dnl     defines ol_cv_sys_linux_threads to 'yes' or 'no'
804 dnl     'no' implies pthreads implementation is not LinuxThreads.
805 dnl 
806 AC_DEFUN([OL_SYS_LINUX_THREADS], [
807         AC_CHECK_FUNCS(pthread_kill_other_threads_np)
808         AC_CACHE_CHECK([for LinuxThreads implementation],
809                 [ol_cv_sys_linux_threads],
810                 [ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np])
811 ])dnl
812 dnl
813 dnl --------------------------------------------------------------------
814 dnl Check LinuxThreads consistency
815 AC_DEFUN([OL_LINUX_THREADS], [
816         AC_REQUIRE([OL_HEADER_LINUX_THREADS])
817         AC_REQUIRE([OL_SYS_LINUX_THREADS])
818         AC_CACHE_CHECK([for LinuxThreads consistency], [ol_cv_linux_threads], [
819                 if test $ol_cv_header_linux_threads = yes -a \
820                         $ol_cv_sys_linux_threads = yes; then
821                         ol_cv_linux_threads=yes
822                 elif test $ol_cv_header_linux_threads = no -a \
823                         $ol_cv_sys_linux_threads = no; then
824                         ol_cv_linux_threads=no
825                 else
826                         ol_cv_linux_threads=error
827                 fi
828         ])
829 ])dnl
830 dnl
831 dnl ====================================================================
832 dnl Check for POSIX Regex
833 AC_DEFUN([OL_POSIX_REGEX], [
834 AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[
835         AC_TRY_RUN([
836 #include <sys/types.h>
837 #include <regex.h>
838 static char *pattern, *string;
839 main()
840 {
841         int rc;
842         regex_t re;
843
844         pattern = "^A";
845
846         if(regcomp(&re, pattern, 0)) {
847                 return -1;
848         }
849         
850         string = "ALL MATCH";
851         
852         rc = regexec(&re, string, 0, (void*)0, 0);
853
854         regfree(&re);
855
856         return rc;
857 }],
858         [ol_cv_c_posix_regex=yes],
859         [ol_cv_c_posix_regex=no],
860         [ol_cv_c_posix_regex=cross])])
861 ])
862 dnl
863 dnl ====================================================================
864 dnl Check if toupper() requires islower() to be called first
865 AC_DEFUN([OL_C_UPPER_LOWER],
866 [AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[
867         AC_TRY_RUN([
868 #include <ctype.h>
869 main()
870 {
871         if ('C' == toupper('C'))
872                 exit(0);
873         else
874                 exit(1);
875 }],
876         [ol_cv_c_upper_lower=no],
877         [ol_cv_c_upper_lower=yes],
878         [ol_cv_c_upper_lower=safe])])
879 if test $ol_cv_c_upper_lower != no ; then
880         AC_DEFINE(C_UPPER_LOWER,1, [define if toupper() requires islower()])
881 fi
882 ])
883 dnl
884 dnl ====================================================================
885 dnl Check for declaration of sys_errlist in one of stdio.h and errno.h.
886 dnl Declaration of sys_errlist on BSD4.4 interferes with our declaration.
887 dnl Reported by Keith Bostic.
888 AC_DEFUN([OL_SYS_ERRLIST],
889 [AC_CACHE_CHECK([declaration of sys_errlist],ol_cv_dcl_sys_errlist,[
890         AC_TRY_COMPILE([
891 #include <stdio.h>
892 #include <sys/types.h>
893 #include <errno.h>
894 #ifdef WINNT
895 #include <stdlib.h>
896 #endif ],
897         [char *c = (char *) *sys_errlist],
898         [ol_cv_dcl_sys_errlist=yes
899         ol_cv_have_sys_errlist=yes],
900         [ol_cv_dcl_sys_errlist=no])])
901 #
902 # It's possible (for near-UNIX clones) that sys_errlist doesn't exist
903 if test $ol_cv_dcl_sys_errlist = no ; then
904         AC_DEFINE(DECL_SYS_ERRLIST,1,
905                 [define if sys_errlist is not declared in stdio.h or errno.h])
906
907         AC_CACHE_CHECK([existence of sys_errlist],ol_cv_have_sys_errlist,[
908                 AC_TRY_LINK([#include <errno.h>],
909                         [char *c = (char *) *sys_errlist],
910                         [ol_cv_have_sys_errlist=yes],
911                         [ol_cv_have_sys_errlist=no])])
912 fi
913 if test $ol_cv_have_sys_errlist = yes ; then
914         AC_DEFINE(HAVE_SYS_ERRLIST,1,
915                 [define if you actually have sys_errlist in your libs])
916 fi
917 ])dnl
918 dnl
919 dnl ====================================================================
920 dnl Early MIPS compilers (used in Ultrix 4.2) don't like
921 dnl "int x; int *volatile a = &x; *a = 0;"
922 dnl     -- borrowed from PDKSH
923 AC_DEFUN(OL_C_VOLATILE,
924  [AC_CACHE_CHECK(if compiler understands volatile, ol_cv_c_volatile,
925     [AC_TRY_COMPILE([int x, y, z;],
926       [volatile int a; int * volatile b = x ? &y : &z;
927       /* Older MIPS compilers (eg., in Ultrix 4.2) don't like *b = 0 */
928       *b = 0;], ol_cv_c_volatile=yes, ol_cv_c_volatile=no)])
929   if test $ol_cv_c_volatile = yes; then
930     : 
931   else
932     AC_DEFINE(volatile,,[define as empty if volatile is not supported])
933   fi
934  ])dnl
935 dnl
936 dnl ====================================================================
937 dnl Look for fetch(3)
938 AC_DEFUN([OL_LIB_FETCH],
939 [ol_LIBS=$LIBS
940 LIBS="-lfetch -lcom_err $LIBS"
941 AC_CACHE_CHECK([fetch(3) library],ol_cv_lib_fetch,[
942         AC_TRY_LINK([
943 #include <sys/param.h>
944 #include <stdio.h>
945 #include <fetch.h>],
946         [struct url *u = fetchParseURL("file:///"); ],
947         [ol_cv_lib_fetch=yes],
948         [ol_cv_lib_fetch=no])])
949 LIBS=$ol_LIBS
950 if test $ol_cv_lib_fetch != no ; then
951         ol_link_fetch="-lfetch -lcom_err"
952         AC_DEFINE(HAVE_FETCH,1,
953                 [define if you actually have FreeBSD fetch(3)])
954 fi
955 ])dnl
956 dnl
957 dnl ====================================================================
958 dnl Define sig_atomic_t if not defined in signal.h
959 AC_DEFUN(OL_TYPE_SIG_ATOMIC_T,
960  [AC_CACHE_CHECK(for sig_atomic_t, ol_cv_type_sig_atomic_t,
961     [AC_TRY_COMPILE([#include <signal.h>], [sig_atomic_t atomic;],
962                 ol_cv_type_sig_atomic_t=yes, ol_cv_type_sig_atomic_t=no)])
963   if test $ol_cv_type_sig_atomic_t = no; then
964     AC_DEFINE(sig_atomic_t,int,
965                 [define to atomic type if sig_atomic_t is not available])
966   fi
967  ])dnl
968 dnl
969 dnl ====================================================================
970 dnl Define socklen_t if not defined in sys/types.h or sys/socket.h
971 AC_DEFUN(OL_TYPE_SOCKLEN_T,
972  [AC_CACHE_CHECK(for socklen_t, ol_cv_type_socklen_t,
973     [AC_TRY_COMPILE([
974 #ifdef HAVE_SYS_TYPES_H
975 #include <sys/types.h>
976 #endif
977 #ifdef HAVE_SYS_SOCKET_H
978 #include <sys/socket.h>
979 #endif
980 ], [socklen_t len;],
981                 ol_cv_type_socklen_t=yes, ol_cv_type_socklen_t=no)])
982   if test $ol_cv_type_socklen_t = no; then
983     AC_DEFINE(socklen_t, int,
984                 [define to int if socklen_t is not available])
985   fi
986  ])dnl
987 dnl
988 dnl ====================================================================
989 dnl Define inet_aton is available
990 AC_DEFUN(OL_FUNC_INET_ATON,
991  [AC_CACHE_CHECK([for inet_aton()], ol_cv_func_inet_aton,
992     [AC_TRY_LINK([
993 #ifdef HAVE_SYS_TYPES_H
994 #       include <sys/types.h>
995 #endif
996 #ifdef HAVE_SYS_SOCKET_H
997 #       include <sys/socket.h>
998 #       ifdef HAVE_SYS_SELECT_H
999 #               include <sys/select.h>
1000 #       endif
1001 #       include <netinet/in.h>
1002 #       ifdef HAVE_ARPA_INET_H
1003 #               include <arpa/inet.h>
1004 #       endif
1005 #endif
1006 ], [struct in_addr in;
1007 int rc = inet_aton( "255.255.255.255", &in );],
1008                 ol_cv_func_inet_aton=yes, ol_cv_func_inet_aton=no)])
1009   if test $ol_cv_func_inet_aton != no; then
1010     AC_DEFINE(HAVE_INET_ATON, 1,
1011                 [define to you inet_aton(3) is available])
1012   fi
1013  ])dnl
1014 dnl
1015 dnl ====================================================================
1016 dnl check no of arguments for ctime_r
1017 AC_DEFUN(OL_FUNC_CTIME_R_NARGS,
1018  [AC_CACHE_CHECK(number of arguments of ctime_r, ol_cv_func_ctime_r_nargs,
1019    [AC_TRY_COMPILE([#include <time.h>],
1020                 [time_t ti; char *buffer; ctime_r(&ti,buffer,32);],
1021                         ol_cv_func_ctime_r_nargs3=yes,
1022                         ol_cv_func_ctime_r_nargs3=no)
1023
1024         AC_TRY_COMPILE([#include <time.h>],
1025                 [time_t ti; char *buffer; ctime_r(&ti,buffer);],
1026                         ol_cv_func_ctime_r_nargs2=yes,
1027                         ol_cv_func_ctime_r_nargs2=no)
1028
1029         if test $ol_cv_func_ctime_r_nargs3 = yes -a \
1030                 $ol_cv_func_ctime_r_nargs2 = no ; then
1031
1032                 ol_cv_func_ctime_r_nargs=3
1033
1034         elif test $ol_cv_func_ctime_r_nargs3 = no -a \
1035                 $ol_cv_func_ctime_r_nargs2 = yes ; then
1036
1037                 ol_cv_func_ctime_r_nargs=2
1038
1039         else
1040                 ol_cv_func_ctime_r_nargs=0
1041         fi
1042   ])
1043
1044   if test $ol_cv_func_ctime_r_nargs -gt 1 ; then
1045         AC_DEFINE_UNQUOTED(CTIME_R_NARGS, $ol_cv_func_ctime_r_nargs,
1046                 [set to the number of arguments ctime_r() expects])
1047   fi
1048 ])dnl
1049 dnl
1050 dnl --------------------------------------------------------------------
1051 dnl check return type of ctime_r()
1052 AC_DEFUN(OL_FUNC_CTIME_R_TYPE,
1053  [AC_CACHE_CHECK(return type of ctime_r, ol_cv_func_ctime_r_type,
1054    [AC_TRY_COMPILE([#include <time.h>],
1055                 [extern int (ctime_r)();],
1056                         ol_cv_func_ctime_r_type="int", ol_cv_func_ctime_r_type="charp")
1057         ])
1058   if test $ol_cv_func_ctime_r_type = "int" ; then
1059         AC_DEFINE(CTIME_R_RETURNS_INT,1, [define if ctime_r() returns int])
1060   fi
1061 ])dnl
1062 dnl ====================================================================
1063 dnl check no of arguments for gethostbyname_r
1064 AC_DEFUN(OL_FUNC_GETHOSTBYNAME_R_NARGS,
1065  [AC_CACHE_CHECK(number of arguments of gethostbyname_r,
1066         ol_cv_func_gethostbyname_r_nargs,
1067         [AC_TRY_COMPILE([#include <sys/types.h>
1068 #include <sys/socket.h>
1069 #include <netinet/in.h>
1070 #include <netdb.h>
1071 #define BUFSIZE (sizeof(struct hostent)+10)],
1072                 [struct hostent hent; char buffer[BUFSIZE];
1073                 int bufsize=BUFSIZE;int h_errno;
1074                 (void)gethostbyname_r("segovia.cs.purdue.edu", &hent,
1075                         buffer, bufsize, &h_errno);],
1076                 ol_cv_func_gethostbyname_r_nargs5=yes, 
1077                 ol_cv_func_gethostbyname_r_nargs5=no)
1078
1079         AC_TRY_COMPILE([#include <sys/types.h>
1080 #include <sys/socket.h>
1081 #include <netinet/in.h>
1082 #include <netdb.h>
1083 #define BUFSIZE (sizeof(struct hostent)+10)],
1084                 [struct hostent hent;struct hostent *rhent;
1085                 char buffer[BUFSIZE];
1086                 int bufsize=BUFSIZE;int h_errno;
1087                 (void)gethostbyname_r("localhost", &hent, buffer, bufsize,
1088                         &rhent, &h_errno);],
1089                 ol_cv_func_gethostbyname_r_nargs6=yes,
1090                 ol_cv_func_gethostbyname_r_nargs6=no)
1091
1092         if test $ol_cv_func_gethostbyname_r_nargs5 = yes -a \
1093                 $ol_cv_func_gethostbyname_r_nargs6 = no ; then
1094
1095                 ol_cv_func_gethostbyname_r_nargs=5
1096
1097         elif test $ol_cv_func_gethostbyname_r_nargs5 = no -a \
1098                 $ol_cv_func_gethostbyname_r_nargs6 = yes ; then
1099
1100                 ol_cv_func_gethostbyname_r_nargs=6
1101
1102         else
1103                 ol_cv_func_gethostbyname_r_nargs=0
1104         fi
1105   ])
1106   if test $ol_cv_func_gethostbyname_r_nargs -gt 1 ; then
1107         AC_DEFINE_UNQUOTED(GETHOSTBYNAME_R_NARGS,
1108                 $ol_cv_func_gethostbyname_r_nargs,
1109                 [set to the number of arguments gethostbyname_r() expects])
1110   fi
1111 ])dnl
1112 dnl
1113 dnl check no of arguments for gethostbyaddr_r
1114 AC_DEFUN(OL_FUNC_GETHOSTBYADDR_R_NARGS,
1115  [AC_CACHE_CHECK(number of arguments of gethostbyaddr_r,
1116         [ol_cv_func_gethostbyaddr_r_nargs],
1117         [AC_TRY_COMPILE([#include <sys/types.h>
1118 #include <sys/socket.h>
1119 #include <netinet/in.h>
1120 #include <netdb.h>
1121 #define BUFSIZE (sizeof(struct hostent)+10)],
1122            [struct hostent hent; char buffer[BUFSIZE]; 
1123             struct in_addr add;
1124             size_t alen=sizeof(struct in_addr);
1125             int bufsize=BUFSIZE;int h_errno;
1126                 (void)gethostbyaddr_r( (void *)&(add.s_addr),
1127                         alen, AF_INET, &hent, buffer, bufsize, &h_errno);],
1128                 ol_cv_func_gethostbyaddr_r_nargs7=yes,
1129                 ol_cv_func_gethostbyaddr_r_nargs7=no)
1130
1131         AC_TRY_COMPILE([#include <sys/types.h>
1132 #include <sys/socket.h>
1133 #include <netinet/in.h>
1134 #include <netdb.h>
1135 #define BUFSIZE (sizeof(struct hostent)+10)],
1136                 [struct hostent hent;
1137                 struct hostent *rhent; char buffer[BUFSIZE]; 
1138                 struct in_addr add;
1139                 size_t alen=sizeof(struct in_addr);
1140                 int bufsize=BUFSIZE;int h_errno;
1141                 (void)gethostbyaddr_r( (void *)&(add.s_addr),
1142                         alen, AF_INET, &hent, buffer, bufsize, 
1143                         &rhent, &h_errno);],
1144                 ol_cv_func_gethostbyaddr_r_nargs8=yes,
1145                 ol_cv_func_gethostbyaddr_r_nargs8=no)
1146
1147         if test $ol_cv_func_gethostbyaddr_r_nargs7 = yes -a \
1148                 $ol_cv_func_gethostbyaddr_r_nargs8 = no ; then
1149
1150                 ol_cv_func_gethostbyaddr_r_nargs=7
1151
1152         elif test $ol_cv_func_gethostbyaddr_r_nargs7 = no -a \
1153                 $ol_cv_func_gethostbyaddr_r_nargs8 = yes ; then
1154
1155                 ol_cv_func_gethostbyaddr_r_nargs=8
1156
1157         else
1158                 ol_cv_func_gethostbyaddr_r_nargs=0
1159         fi
1160   ])
1161   if test $ol_cv_func_gethostbyaddr_r_nargs -gt 1 ; then
1162     AC_DEFINE_UNQUOTED(GETHOSTBYADDR_R_NARGS,
1163                 $ol_cv_func_gethostbyaddr_r_nargs,
1164                 [set to the number of arguments gethostbyaddr_r() expects])
1165   fi
1166 ])dnl
1167 dnl